jj
npx skills add https://github.com/schpet/toolbox --skill jj
Agent 安装分布
Skill 文档
Jujutsu (jj) Version Control
Agent Usage
When reading data from jj, always use --ignore-working-copy to avoid snapshotting the working copy (which is slow and unnecessary for read operations).
Non-interactive Commands (Critical)
Many jj commands spawn $EDITOR or interactive diff tools by default. These will hang indefinitely when run by agents. Always use the non-interactive alternatives:
| Command | Problem | Solution |
|---|---|---|
jj describe |
Opens editor | Always use -m "message" |
jj commit |
Opens editor | Always use -m "message" |
jj split |
Opens diff editor + may open editor for description | Provide filesets to select files; use -m for description |
jj squash |
May open editor for combined description | Use -m "message" or -u (use destination message) |
Commands to avoid entirely (no non-interactive mode):
jj diffeditâ usejj restoreor edit files directly insteadjj config editâ usejj config set <key> <value>insteadjj sparse editâ usejj sparse set --add <path>or--remove <path>insteadjj resolveâ edit conflict markers directly in files, or use--tool :ours/--tool :theirs
Agent-Friendly Output Formats
jj’s default diff and conflict formats differ from Git’s. For easier parsing, use Git-compatible formats:
Diffs: Use the --git flag for unified diff output:
jj diff --git
jj log -p --git
jj show --git
Conflicts: jj uses diff-based conflict markers by default (%%%%%%%, +++++++). For standard Git-style markers (<<<<<<<, =======, >>>>>>>), pass --config when running commands that may create conflicts:
jj --config ui.conflict-marker-style=git rebase ...
jj --config ui.conflict-marker-style=git new --insert-before ...
The conflict style is applied when conflicts are materialized to the working copy, so the config must be set before the conflict occurs.
JSON: For structured/programmatic output, use the json(self) template:
jj log --ignore-working-copy --no-graph -T 'json(self) ++ "\n"'
Outputs one JSON object per line with commit_id, change_id, description, author, etc. Works with jj log, jj show, and other commands that support -T.
Common Commands
| Command | Description |
|---|---|
jj status |
Show working copy status |
jj log |
Show commit history |
jj new |
Create a new change |
jj describe -m "msg" |
Set commit message |
jj squash |
Squash into parent |
jj diff |
Show changes |
jj git push |
Push to remote |
jj git fetch |
Fetch from remote |
jj bookmark create name |
Create a bookmark |
Topics
In-depth guides on jj concepts and syntax.
Command Reference
Documentation generated from jj manpages. For details on any command, read the corresponding reference file.
Bisect
Bookmark
- jj-bookmark-create
- jj-bookmark-delete
- jj-bookmark-forget
- jj-bookmark-list
- jj-bookmark-move
- jj-bookmark-rename
- jj-bookmark-set
- jj-bookmark-track
- jj-bookmark-untrack
Config
File
- jj-file-annotate
- jj-file-chmod
- jj-file-list
- jj-file-search
- jj-file-show
- jj-file-track
- jj-file-untrack
General
- jj
- jj-abandon
- jj-absorb
- jj-bisect
- jj-bookmark
- jj-commit
- jj-config
- jj-describe
- jj-diff
- jj-diffedit
- jj-duplicate
- jj-edit
- jj-evolog
- jj-file
- jj-fix
- jj-gerrit
- jj-git
- jj-help
- jj-interdiff
- jj-log
- jj-metaedit
- jj-new
- jj-next
- jj-operation
- jj-parallelize
- jj-prev
- jj-rebase
- jj-redo
- jj-resolve
- jj-restore
- jj-revert
- jj-root
- jj-show
- jj-sign
- jj-sparse
- jj-split
- jj-squash
- jj-status
- jj-tag
- jj-undo
- jj-unsign
- jj-util
- jj-version
- jj-workspace
Gerrit
Git
- jj-git-clone
- jj-git-colocation
- jj-git-colocation-disable
- jj-git-colocation-enable
- jj-git-colocation-status
- jj-git-export
- jj-git-fetch
- jj-git-import
- jj-git-init
- jj-git-push
- jj-git-remote
- jj-git-remote-add
- jj-git-remote-list
- jj-git-remote-remove
- jj-git-remote-rename
- jj-git-remote-set-url
- jj-git-root
Operation
- jj-operation-abandon
- jj-operation-diff
- jj-operation-log
- jj-operation-restore
- jj-operation-revert
- jj-operation-show
Simplify
Sparse
Tag
Util
- jj-util-completion
- jj-util-config-schema
- jj-util-exec
- jj-util-gc
- jj-util-install-man-pages
- jj-util-markdown-help
Workspace
- jj-workspace-add
- jj-workspace-forget
- jj-workspace-list
- jj-workspace-rename
- jj-workspace-root
- jj-workspace-update-stale
Generated from jj manpages (jj 0.37.0)
License
The content in the references/ directory is derived from the jj (Jujutsu) project and is licensed under the Apache License 2.0.