A fullscreen terminal UI for Jujutsu VCS. Commit graph, diffs, bookmarks, git remotes, and AI commit messages — without leaving your terminal.

Everything you reach for in jj, one keystroke away.
Scrollable commit graph with change IDs, authors, dates, bookmarks, and working-copy highlighting.
File-status summary plus a syntax-highlighted diff for any commit, powered by chroma.
Create, delete, move, rename, set, track, and untrack bookmarks — with tab-completion.
Fetch, push, and manage remotes from inside the TUI. No context switch.
Generate a description from a commit's diff via any OpenAI-compatible API.
One-key jj undo / jj redo. Experiment fearlessly.
Captured live with VHS.




Pick your poison. Requires jj v0.44+ in your PATH.
$ curl -fsSL https://gojo.rocks/install.sh | sh# detects your os — brew · pacman · apt · dnf · zypper · tarball
$ brew tap hackrdotsh/gojo https://github.com/hackrdotsh/gojo$ brew install --cask gojo
$ scoop bucket add gojo https://github.com/hackrdotsh/gojo$ scoop install gojo/gojo# installs the latest stable GitHub release + jj · prereleases excluded# update later with: scoop update gojo
$ nix run github:hackrdotsh/gojo
$ git clone https://github.com/hackrdotsh/gojo$ cd gojo && go build -o gojo .# requires Go 1.26+
Then run gojo inside any jj repository. That's it.
Press ? in-app for the full reference.
| j / k | navigate commits |
| enter | open diff panel |
| d | describe ($EDITOR) |
| D | AI commit message |
| e | jj edit |
| n | jj new |
| a | jj abandon |
| b | bookmark mode |
| g | git mode (fetch/push/remotes) |
| u | jj undo |
| U | jj redo |
| ? | help |
| q | quit / close |
| c | create |
| m | move to commit |
| s | set to commit |
| r | rename |
| t / T | track / untrack |
| tab | autocomplete |
Optional. Lives at ~/.config/gojo/gojo.toml.
#:schema https://gojo.rocks/schemas/gojo.json # AI-generated commit messages (optional) ai_api_key = "sk-or-..." ai_base_url = "https://openrouter.ai/api/v1" ai_model = "anthropic/claude-sonnet-4"
The schema comment enables autocomplete, hover documentation, and validation in Taplo-compatible editors. The config schema covers AI settings, themes, and keybindings in the standalone gojo file. For custom themes, use the theme schema by adding this comment at the top of the theme file:
#:schema https://gojo.rocks/schemas/theme.json