Jujutsu Cheatsheet
SkillDev toolsTrack changes, rebase modifications, resolve conflicts, and manage bookmarks with Jujutsu (jj). Use when committing changes, navigating history, squashing/splitting commits, or pushing to Git remotes.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Jujutsu Cheatsheet skill
What this skill tells your AI
The instructions your AI receives, as published by swamp-club/swamp in .agents/skills/jujutsu/SKILL.md and read by ahel’s review.
Jujutsu (JJ) is a Git-compatible VCS with a focus on concurrent development and ease of use.
Key Commands
| Command | Description |
|---|---|
jj st | Show working copy status |
jj log | Show change log |
jj diff | Show changes in working copy |
jj new | Create new change |
jj desc | Edit change description |
jj squash | Move changes to parent |
jj split | Split current change |
jj rebase -s src -d dest | Rebase changes |
jj absorb | Move changes into stack of mutable revisions |
jj bisect | Find bad revision by bisection |
jj fix | Update files with formatting fixes |
jj sign | Cryptographically sign a revision |
jj metaedit | Modify metadata without changing content |
Project Setup
jj git init # Init in existing git repo
jj git init --colocate # Side-by-side with git
Basic Workflow
jj new # Create new change
jj desc -m "feat: add feature" # Set description
jj log # View history
jj edit change-id # Switch to change
jj new --before @ # Time travel (create before current)
jj edit @- # Go to parent
Time Travel
jj edit change-id # Switch to specific change
jj next --edit # Next child change
jj edit @- # Parent change
jj new --before @ -m msg # Insert before current
Merging & Rebasing
jj new x yz -m msg # Merge changes
jj rebase -s src -d dest # Rebase source onto dest
jj abandon # Delete current change
Conflicts
jj resolve # Interactive conflict resolution
# Edit files, then continue
Templates & Revsets
jj log -T 'commit_id ++ "\n" ++ description'
jj log -r 'heads(all())' # All heads
jj log -r 'remote_bookmarks()..' # Not on remote
jj log -r 'author(name)' # By author
Git Interop
jj bookmark create main -r @ # Create bookmark
jj git push --bookmark main # Push bookmark
jj git fetch # Fetch from remote
jj bookmark track main@origin # Track remote
Advanced Commands
jj absorb # Auto-move changes to relevant commits in stack
jj bisect start # Start bisection
jj bisect good # Mark current as good
jj bisect bad # Mark current as bad
jj fix # Run configured formatters on files
jj sign -r @ # Sign current revision
jj metaedit -r @ -m "new message" # Edit metadata only
Tips
- No staging: changes are immediate
- Use conventional commits:
type(scope): desc jj undoto revert operationsjj op logto see operation history- Bookmarks are like branches
- Concurrent development encouraged
jj absorbis powerful for fixing up commits in a stack
Signals
- GitHub stars
- 605
- Forks
- 43
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
jujutsu- Source
- github.com/swamp-club/swamp