A fast, beautiful terminal UI for Jujutsu version control
jjkk brings the power of lazygit-style interfaces to Jujutsu VCS. Navigate your repository, stage changes, create commits, and manage bookmarks—all from a sleek, keyboard-driven TUI.
Intuitive Interface
- Split-pane view with file list and colorized diff viewer
- Vim-style navigation (hjkl), but thats really it
- Tab-based workflow: Working Copy, Bookmarks, Log
Essential Operations
- View and navigate file changes with live diffs
- Describe and commit changes with popup prompts
- Create new commits, set bookmarks, and rebase
- Fetch from and push to remote repositories
- Checkout bookmarks interactively
- Jujutsu must be installed and in your PATH
- Rust nightly (for building from source)
git clone https://github.com/mikkurogue/jjkk.git
cd jjkk
cargo install --path .Run jjkk from any directory within a Jujutsu repository:
jjkkq- Quit1/2/3- Switch to Working Copy / Bookmarks / Log tabTab/Shift+Tab- Cycle through tabsR- Refresh statusX- Restore
j/k(or↓/↑) - Navigate filesShift+J/Shift+K- Scroll diff viewd- Describe current commitc- Commit changesn- Create new empty commitb- Set bookmark on current commitr- Rebase current commitf- Git fetchp- Git push (auto-detects current bookmark)
j/k(or↓/↑) - Navigate bookmarksEnter- Checkout selected bookmark
j/k(or↓/↑) - Navigate commits
Enter- SubmitEsc- Cancel- Type to enter text,
Backspaceto delete
Configuration file location: ~/.config/jjkk/config.toml
[ui]
log_commits_count = 20 # Number of commits to show in Log tab- Full syntax highlighting using syntect
- Help screen (
?key) - Commit details view
- Bookmark management (delete, rename)
- Direct jj-lib integration (currently uses subprocess)
- Customizable themes
- Split/squash commits
Contributions are welcome! Feel free to open issues or submit pull requests.
A License - See LICENSE for details