gitpr

Review worktree branches as local pull requests.

A local Go CLI and TUI that turns worktree branches into lightweight pull requests against your local default branch — no server, no remote, no forge.

Install with Homebrew (macOS, Linux)

brew install wyrd-company/tools/gitpr
Creating, reviewing, commenting on, approving and merging a pull request in a local repository.
Creating, reviewing, commenting on, approving and merging a pull request in a local repository.

What it does

  1. Review a worktree branch as a pull request with no server, no remote and no forge.

  2. Review records live under refs/gitpr/, so every worktree and clone of a repository shares them.

  3. Each approve or reject appends an immutable review event for one exact source and base head pair.

  4. Merge needs an accepted latest event, both heads unchanged and a strict fast-forward.

  5. Comment threads anchor to file ranges, follow unchanged content and stay readable after the PR closes.

Install

brew install wyrd-company/tools/gitpr

Documentation

Releases

Latest 0.4.2 Release notes on GitHub

Features

  • Read comment text verbatim from a file or standard input with —text-file, preserving whitespace and shell-sensitive text.
  • Add gitpr review —summary for live review state and bounded interdiff file counts without patch or comment bodies.
  • Support lightweight and annotated tag review bases with preserved tag identity, atomic drift checks on verdicts, and external integration closure without changing tags.

Fixes

  • Use adaptive brand blue accents across the TUI and picker, respect colour-off terminals, and refresh the demo.
  • Keep terminal navigation, read-only review, selection and adaptive colour working with Charm v2.
  • Build development binaries into the gitignored ./bin directory and use ./bin/gitpr in source-build instructions and UAT helpers.
  • Update ANSI handling and Git diff parsing dependencies, and remove unused syntax highlighting dependencies.
  • Restore the read-only TUI diff with live review basis, per-file hunks, thread discussions, scrolling, and refresh.
  • Refuse missing detected bases before creating a PR, with explicit-base recovery guidance, and preserve full remote default branch names.
All releases