A TUI client for jj (Jujutsu VCS).
- Log View - Browse commit history with vim-like navigation
- Native Graph Display - jj's graph visualization with full ANSI color support
- Detail View - View commit metadata and diff summary
- Diff View - Browse changed files and view file-level diffs with syntax highlighting
- Conventional Commits - Automatic emoji formatting (
feat:→✨,fix:→🩹, etc.) - Incremental Loading - Load history on demand (default: 500 entries, auto-loads more as needed)
- Confirmation Dialogs - Safe destructive operations (abandon, squash, push, undo)
- Bookmark Management - Set bookmarks on any revision
- Rebase Support - Rebase revisions to any destination
- Git Integration - Fetch and push with jj's git backend
- Colocated Repository Support - Works with
.jj+.gitrepositories
- Rust 1.88+ (Edition 2024)
- jj 0.20+ (with
shortest()template support)
cargo install xorcistcargo install --git https://github.com/fpdy/xorcistgit clone https://github.com/fpdy/xorcist.git
cd xorcist
cargo install --path .# Navigate to a jj repository and run
cd /path/to/jj-repo
xor
# Options
xor -n 100 # Load only 100 entries initially (default: 500)
xor --all # Load entire history at startup (may be slow)xorcist automatically detects the jj repository root by walking up the directory tree. When scrolling near the end of the log, additional entries are loaded automatically.
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
g / Home |
Go to first entry |
G / End |
Go to last entry |
Ctrl+d / PageDown |
Scroll down (10 lines) |
Ctrl+u / PageUp |
Scroll up (10 lines) |
| Key | Action |
|---|---|
Enter |
Open detail view |
q / Esc |
Quit / Close view |
? |
Toggle help |
| Key | Command | Confirmation |
|---|---|---|
n |
jj new |
No |
N |
jj new -m (with message input) |
No |
e |
jj edit |
No |
d |
jj describe -m (message input) |
No |
b |
jj bookmark set (name input) |
No |
r |
jj rebase -d (destination input) |
No |
a |
jj abandon |
Yes |
s |
jj squash |
Yes |
f |
jj git fetch |
No |
p |
jj git push |
Yes |
u |
jj undo |
Yes |
| Key | Action |
|---|---|
j / ↓ |
Scroll down |
k / ↑ |
Scroll up |
d |
Open diff view |
Ctrl+d / PageDown |
Page down |
Ctrl+u / PageUp |
Page up |
q / Esc |
Back to log |
| Key | Action |
|---|---|
j / ↓ |
Select next file |
k / ↑ |
Select previous file |
Ctrl+d / PageDown |
Scroll diff down |
Ctrl+u / PageUp |
Scroll diff up |
← / → |
Scroll diff horizontally |
q / Esc |
Back to detail |
The log view shows jj's native graph visualization with full color support:
@- Working copy◆- Immutable commit○- Regular commit- Graph lines (
│,├─╮,├─╯, etc.) - Branch/merge visualization [bookmark]- Bookmarks shown in cyan- Conventional commit messages are displayed with emoji prefixes
MIT License - see LICENSE for details.