
June 15, 2026 · 9:20 AM
jj-gh: manage GitHub PRs from the terminal, the jj way
`jj-gh` (Rust, MIT, v0.2.7, 24★) is a Jujutsu VCS extension that replaces GitHub's web UI for the full PR lifecycle — create, view, fetch, edit, merge — from the terminal. v0.2.7 shipped June 14 with a new `pr url` subcommand, `--no-edit` flag, interactive title selection, and diff-in-editor for `pr edit`. Four install paths: `cargo install jj-gh`, `cargo binstall jj-gh`, Nix flake, or prebuilt binaries.
If you switched to Jujutsu (
jj), a Git-compatible VCS designed around a cleaner mental model for stacked changes, you probably noticed that GitHub's PR workflow didn't come with you. gh (GitHub CLI) works against Git's branch model. jj's change-centric model doesn't map cleanly onto it. The result: you write code in jj, then tab out to a browser to manage the PR.jj-gh fills that gap. It's a
jj extension that handles the full GitHub PR lifecycle — create, view, fetch, edit, re-stack, merge — without touching GitHub's web UI. 1Loading content card…
Rust, MIT license, v0.2.7 released 2026-06-14 — within the past 24 hours. 14 releases in under four weeks. 1
Loading stats card…
What it does
The tool surfaces as a
jj gh subcommand set — or, if you alias it, directly as jj-gh. Each subcommand maps to something you'd normally do in the GitHub UI: 1| Subcommand | What it does |
|---|---|
jj gh pr create | Open a PR from the current change, drop into your editor for title + body |
jj gh pr log | List all open PRs with numbers and CI status in the terminal |
jj gh pr view <n> | Read a PR's description and metadata without leaving the terminal |
jj gh pr edit <n> | Edit PR title/description — now shows diffs in the edit view (v0.2.7) |
jj gh pr fetch <n> | Pull a PR's changes into your local working copy as a jj change |
jj gh pr merge <n> | Merge a PR and rebase the stack if needed |
jj gh pr url <n> | Print a PR's URL by number or revision ID (new in v0.2.7) |
The author's stated goal in the README: "all from the comfort of your terminal, without touching GitHub's clunky web UI." 1
What's new in v0.2.7
This release, cut yesterday, adds a few quality-of-life features that fill gaps in the PR creation flow: 2
pr url— new subcommand. Pass a PR number or a revision ID and get the URL back, useful for piping into clipboard tools or CI scripts--no-edit— skip the editor entirely when creating a PR, useful when the commit message is already the PR description--title-templateand--pick-title—--title-templatepasses a format string;--pick-titleopens an interactive selector to choose the title from recent commits in the stackpr editnow shows diffs in the editor view, so you see what's actually in the change while writing the description- Force-interactive editor fix — the editor now runs interactively even when
jj ghis part of a piped command chain, which previously caused it to silently do nothing - Generated manpage for
jj-gh
A real scenario
You're maintaining a feature branch using
jj's stacked-change model — five interconnected changes, each a separate logical step. You've pushed them all. Now you need to open PRs for each, set descriptions, and track CI status.Without jj-gh, this means five browser sessions. With it:
# Create a PR for the current change, editor pops open for title+body
jj gh pr create
# Already have a good commit message — skip the editor
jj gh pr create --no-edit
# See all open PRs and their CI state
jj gh pr log
# Review PR #3's description before merging
jj gh pr view 3
# Merge it and let jj-gh rebase the stack
jj gh pr merge 3
# Print PR #4's URL to pipe elsewhere
jj gh pr url 4 | pbcopyEverything that used to pull you to the browser now stays in the terminal. The workflow composes with
jj's native tooling — you don't have to context-switch between jj's change model and GitHub's branch model.
jj pr log terminal output — PR numbers, branch names, CI indicators, all in the terminal. AI-generated illustration. Install
Four options, all confirmed working: 1
Cargo (cross-platform, builds from source):
cargo install jj-ghcargo-binstall (installs prebuilt binaries via Cargo, faster):
cargo binstall jj-ghNix flake:
inputs.jj-gh.url = "github:mrjones2014/jj-gh";Prebuilt binaries — Linux (x86_64), macOS (x86_64 + Apple Silicon) builds on the releases page.
Once installed, configure it with your GitHub token (loaded lazily — it won't prompt until the first command that actually needs it):
jj gh auth loginPrerequisite:
jj must be installed and configured. If you're not already on Jujutsu, this is not the entry point.Momentum
24 stars, 348 commits, 14 releases — repository created May 21, 2026. 1 Growth rate is roughly one star per day, which fits the
jj user base: still a small community, but tight and technically engaged. No HN or Reddit threads yet — this hasn't surfaced on public discovery channels. The Jujutsu Discord and forum are the most likely places it gets found organically.The repo was pushed as recently as 2026-06-15T16:52 UTC — active development with same-day commits. 2
Loading stats card…
Caveats
- jj users only. This tool has no value if you're on standard Git +
git branchworkflows. It's designed entirely aroundjj's change and stack model. If you're curious aboutjjitself, start with the official docs. - 24 stars, early release cycle. v0.2.7 is the 14th release in under a month — the pace is real, but edge cases in complex stacking scenarios aren't fully documented. Expect rough edges in less common subcommand combinations.
- No community validation yet. No HN thread, no Reddit post with a 500-comment pile-on of "actually, you should do X instead." The tool hasn't been stress-tested by a broader audience. The design makes sense, but trust it the way you trust any pre-1.0 project: back up your stacks, read the manpage (
jj-gh --help), and don't runpr mergeon something you can't reconstruct. - GitHub only. No GitLab, no Gitea. The name says it:
jj-gh, GitHub-specific by design.
Quick start:
cargo install jj-gh && jj gh pr log



Add more perspectives or context around this Post.