Asi lazyjj
lazyjj — Ratatui TUI for Jujutsu (jj) with interactive log, files, bookmarks, and diff panels
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/lazyjj" ~/.claude/skills/plurigrid-asi-lazyjj && rm -rf "$T"
manifest:
skills/lazyjj/SKILL.mdsource content
lazyjj
Interactive TUI for Jujutsu/jj. Built in Rust with Ratatui. Wraps
jj CLI.
Trit: 0 (ERGODIC) — Coordinator role: visual interface mediating between jj operations and user intent
Overview
lazyjj presents jj repository state as interactive panels — log, files, bookmarks — with keyboard-driven commands for all common operations. Think lazygit but for jj.
- Log tab — scroll commit graph, view diffs in side panel
- Files tab — current change's files with inline diff
- Bookmarks tab — manage bookmarks with track/untrack/rename
- Conflicts — view and navigate conflict markers
- Mouse support — clickable panels
Installation
# macOS (Homebrew) brew install lazyjj # Cargo cargo install lazyjj # From source git clone https://github.com/Cretezy/lazyjj cd lazyjj && cargo install --path .
Requires
jj CLI installed and on PATH.
Usage
# Launch in current repo lazyjj # Specify repo path lazyjj -p /path/to/repo
Keybindings
Global
| Key | Action |
|---|---|
/ / | Switch to Log / Files / Bookmarks tab |
/ | Back / Quit |
| Help |
/ or / | Navigate |
| Select / Expand |
Log Tab
| Key | Action |
|---|---|
| New change from selected |
/ | Edit selected change |
| Describe (set commit message) |
| Abandon change |
/ | Squash into selected |
| Set bookmark on selected |
| Change revset filter |
| Git fetch |
| Git push |
| Toggle color-word / git diff |
| View files of selected change |
Files Tab
| Key | Action |
|---|---|
| Toggle color-word / git diff |
| View file diff |
Bookmarks Tab
| Key | Action |
|---|---|
| Create bookmark |
| Rename bookmark |
| Delete bookmark |
| Track remote bookmark |
| Untrack bookmark |
| Forget bookmark |
| New change from bookmarked change |
Workflow Examples
Quick Review & Squash
lazyjj → Log tab: scroll to fixup commit → s to squash into parent → d to update description → p to push
Interactive Rebase-like Flow
lazyjj → Log tab: navigate to change → e to edit (jj edit) → make changes in editor → return to lazyjj → changes auto-snapshotted
Bookmark Management
lazyjj → 3 for Bookmarks tab → c to create, type name → f to fetch latest → t to track remote bookmark
Configuration
lazyjj reads jj's config. Custom diff tool:
# ~/.config/jj/config.toml [ui] diff.tool = ["delta", "--side-by-side"]
Triadic Composition
lazyjj (0) + jj (+1) + pijul (-1) = 0 ✓ Coordinator Generator Validator
lazyjj coordinates user interaction, jj generates changes, pijul validates patch-theoretic soundness.
References
- lazyjj on GitHub (970+ ★)
- lazyjj on Homebrew
- lazyjj on crates.io
- Ratatui — TUI framework
- jj skill
- pijul skill