eliaskc/kajji
{ "createdAt": "2025-12-30T19:10:19Z", "defaultBranch": "main", "description": "A simple TUI for Jujutsu (jj), building for agentic coding DX", "fullName": "eliaskc/kajji", "homepage": null, "language": "TypeScript", "name": "kajji", "pushedAt": "2026-01-07T22:39:07Z", "stargazersCount": 4, "topics": [], "updatedAt": "2026-01-07T08:55:36Z", "url": "https://github.com/eliaskc/kajji"}██╗ ██╗ █████╗ ██╗ ██╗██╗██║ ██╔╝██╔══██╗ ██║ ██║██║█████╔╝ ███████║ ██║ ██║██║██╔═██╗ ██╔══██║██ ██║██ ██║██║██║ ██╗██║ ██║╚█████╔╝╚█████╔╝██║╚═╝ ╚═╝╚═╝ ╚═╝ ╚════╝ ╚════╝ ╚═╝The rudder for your jj
A simple terminal UI for Jujutsu, inspired by lazygit. Built with OpenTUI and SolidJS.
![kajji screenshot]!(./assets/kajji.png)
While learning jj I found myself coming back to lazygit to view diffs and traverse the changes I’d made quickly and easily, which has become increasingly important to me with the rise of coding agents. While there are existing jj TUIs, none quite scratched that lazygit itch.
Kajji is my attempt to bring the simplicity and polish of lazygit to jj, while also leveraging coding agents effectively and building a TUI for the first time.
Disclaimer: almost all code in this project has been written by coding agents (primarily Claude Opus 4.5 through OpenCode).
Principles
Section titled “Principles”- Polish & simplicity - Do less, but do it well.
- Intuitive UX - Sensible defaults, consistent patterns.
- Snappy - If it feels slow, it’s a bug.
Features
Section titled “Features”Core jj operations:
- View commit log with graph
- View diffs (difftastic, delta, etc.)
- New / edit / describe / squash / abandon
- Undo / redo with preview
- Bookmarks (create, delete, rename, move)
- Git fetch / push
- Operation log with restore
- Rebase
- Split
- Conflict resolution
TUI polish:
- Vim-style navigation (j/k, ctrl+u/d)
- Mouse support (click, double-click, scroll)
- Collapsible file tree with status colors
- Help palette with fuzzy search (
?) - Multi-select for batch operations
- Search and filter
Installation
Section titled “Installation”Requirements: jj
# recommended (standalone binary, no dependencies)curl -fsSL https://raw.githubusercontent.com/eliaskc/kajji/main/install.sh | bash
# or via package managernpm install -g kajjibun install -g kajjipnpm add -g kajjiyarn global add kajji
# or run directly without installingnpx kajjibunx kajjiFrom source
Section titled “From source”Requirements: Bun
git clone https://github.com/eliaskc/kajji.gitcd kajjibun installbun devRun kajji in any jj repository:
kajjiKeybindings
Section titled “Keybindings”| Key | Action |
|---|---|
j / k | Move down / up |
Tab | Cycle focus between panels |
Enter | Drill into commit / file |
Escape | Back / close modal |
? | Show help with fuzzy search |
q | Quit |
Operations
Section titled “Operations”| Key | Action |
|---|---|
n | New change |
e | Edit change |
d | Describe change |
s | Squash into parent |
a | Abandon change |
u / U | Undo / redo |
f / F | Git fetch / fetch all |
p / P | Git push / push all |
Bookmarks
Section titled “Bookmarks”| Key | Action |
|---|---|
c | Create bookmark |
d | Delete bookmark |
r | Rename bookmark |
b | Set bookmark on commit |
m | Move bookmark |
See [PROJECT]!(./context/PROJECT.md) for the full roadmap.
Built With
Section titled “Built With”- OpenTUI + SolidJS - Modern TypeScript TUI framework
- Bun - Fast JavaScript runtime
- jj (Jujutsu) - Git-compatible VCS
Related Projects
Section titled “Related Projects”License
Section titled “License”MIT