Skip to content

fpdy/xorcist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xorcist

A TUI client for jj (Jujutsu VCS).

Features

  • 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 + .git repositories

Requirements

  • Rust 1.88+ (Edition 2024)
  • jj 0.20+ (with shortest() template support)

Installation

From crates.io (recommended)

cargo install xorcist

From source (GitHub)

cargo install --git https://github.com/fpdy/xorcist

From local source

git clone https://github.com/fpdy/xorcist.git
cd xorcist
cargo install --path .

Usage

# 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 Bindings

Navigation

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)

Actions

Key Action
Enter Open detail view
q / Esc Quit / Close view
? Toggle help

jj Commands

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

Detail View

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

Diff View

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

Display

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

License

MIT License - see LICENSE for details.

About

Simple TUI Client for jj-vcs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages