jip
jip is a CLI tool for managing stacked pull requests using
jj (Jujutsu) and GitHub.
Each commit is a self-contained, atomic unit of change that gets its own pull
request. When you update a PR, jip posts a comment showing what you changed
(rebase noise is filtered out), so reviewers don't have to re-read everything.
Features
- One commit = one PR — each commit gets its own focused, reviewable PR
- Review comments on update — when you update a PR, jip posts a diff
showing only what you changed (rebase noise is filtered out)
- Automatic bookmarks — no need to manually create jj bookmarks
- Fork workflow — works without write access to the target repo
- Normal GitHub merge — no special "land" command, just merge PRs as usual
- Merge commits in stacks — supports non-linear revision graphs
Installation
Single binary, no runtime dependencies.
go install github.com/omarkohl/jip@latest
Pre-built binaries for Linux, macOS, and Windows are available on the
releases page.
Requirements: jj (Jujutsu) and a GitHub
repository. jip does not work with Git directly.
Quick start
# Make your changes as a stack of jj commits
jj commit -m "feat: add data model"
jj commit -m "feat: add migration"
# Create/update PRs for the stack
jip send
# After review feedback, update a commit
jj new <change-id>
# ... make changes ...
jj squash
jip send
# After bottom PR is merged upstream
jj git fetch
jj rebase -o main
jip send
Documentation
License
MIT