Local AI review bundles for GitHub, GitLab, Bitbucket Cloud, and local branches — with humans in control of what gets published.
revpack turns a GitHub PR, GitLab MR, Bitbucket Cloud PR, or local branch range into a local review bundle for coding agents. The bundle contains the diff, commit messages, unresolved review discussions, previous review state, and valid line-comment positions.
Your agent reviews that local bundle and writes proposed outputs: findings, thread replies, summaries, and review notes. Nothing is posted to the provider until you publish it.
prepare review context → run your agent → inspect pending output → publish intentionally
Use revpack when you want AI-assisted review that is conversation-aware, agent-neutral, and human-controlled.
Install the CLI:
npm install -g @stefanvictora/revpackOpen the repository you want to review, then set up provider authentication:
revpack auth setup
export REVPACK_GITHUB_TOKEN=ghp_xxxxxxxxxxxx
# or
export REVPACK_GITLAB_TOKEN=glpat-xxxxxxxxxxxx
# or
export REVPACK_BITBUCKET_EMAIL=you@example.com
export REVPACK_BITBUCKET_TOKEN=ATBBTxxxxxxxxxxxx
revpack auth doctorauth setup stores provider settings such as the provider type, host URL, and token environment variable name. It does not store your provider token directly.
Add review guidance and instructions for your agent:
# Pick one:
revpack setup --agent claude
revpack setup --agent codex
revpack setup --agent cursor
revpack setup --agent copilotThis creates REVIEW.md when missing and writes project-level instruction files, such as an agent command, skill, or prompt. It does not install or run the agent.
Use --dry-run to preview generated files before writing them.
Prepare, review, inspect, and publish:
revpack prepare
# Start the review in your agent:
# Claude, Copilot, or Cursor: /revpack-review
# Codex: $revpack-review
# Or ask any agent to perform a revpack review.
revpack status
revpack publish allrevpack prepare creates or refreshes .revpack/ for the current PR/MR or local branch range.
The bundle gives the agent the review context it needs:
.revpack/
CONTEXT.md # agent entry point
description.md # PR/MR description
commits.md # commit messages as intent context, when available
threads/ # active review discussions
resolved-threads/ # resolved review discussions kept as context
diffs/
latest.patch # full diff
incremental.patch # follow-up changes, when a checkpoint exists
files.json # changed-file index and per-file artifact paths
patches/by-file/ # standard per-file diffs
anchor-maps/ # compact per-file positional anchors
schemas/ # read-only schema references for JSON outputs
outputs/
new-findings.json # agent-created new line comments, when needed
replies.json # agent-created replies to existing threads, when needed
summary.md # agent-created PR/MR summary
review.md # agent-created optional review-level note, when needed
The bundle is local and disposable. Use revpack clean to remove it, then run revpack prepare to recreate it. Published checkpoints are stored with the PR/MR, so cleaning the local bundle does not reset incremental review history.
The agent reads the bundle inputs, including schema references under .revpack/schemas/, and writes draft material only to .revpack/outputs/. Missing conditional draft files mean there is nothing pending for that output. You can inspect or edit those files before publishing. Replies can target either active threads or resolved threads by T-NNN ID.
You decide what goes back to the provider.
| Output | Command |
|---|---|
| All pending outputs | revpack publish all |
| New line comments | revpack publish findings |
| Replies to existing threads | revpack publish replies |
| PR/MR summary | revpack publish summary |
| Review note | revpack publish review |
| Review checkpoint | revpack publish checkpoint |
Useful variants:
revpack publish findings --dry-run
revpack publish replies T-001Important
When publishing selected outputs, publish checkpoint last. It records the reviewed PR/MR state used for future incremental reviews.
revpack is useful when the agent should review more than a patch.
It helps when you want to:
- include unresolved PR/MR discussions in the agent run
- avoid repeating already-raised feedback
- draft replies to reviewer or author questions
- focus follow-up reviews on what changed since the last checkpoint
- inspect AI-generated output before it reaches the PR/MR
- use your preferred agent instead of a fixed review bot
You may not need revpack for quick local changes, reviews where the PR/MR discussion does not matter, or teams that prefer fully automatic bot comments.
revpack does not replace CI or human review judgment. It prepares the review context; your agent reviews it; you decide what gets published.
revpack prepareIf a checkpoint exists, revpack includes the latest code and thread changes since that checkpoint so the agent can focus its follow-up review.
revpack prepare --local
revpack prepare --local main
revpack prepare --local main...HEADLocal mode reviews committed branch changes against an inferred or explicit base branch. Uncommitted working-tree changes are not included.
revpack checkout https://gitlab.example.com/group/project/-/merge_requests/42
revpack checkout !42 --repo group/project --profile myGitlab
revpack checkout 58 --repo user/project --profile myGithubInside a repository, checkout fetches and switches to the review branch. Outside a repository, it creates a shallow clone. In both cases, it prepares the bundle after checkout.
After revpack prepare, ask the agent:
Read `.revpack/CONTEXT.md` first, then follow the referenced revpack contract and instruction files.
For repeated use, add project-level instructions for your agent with revpack setup agent <target>.
npm install
npm run dev -- prepare !42
npm test
npm lint:fix
npm formatrevpack is early but usable for local AI-assisted PR/MR reviews. Expect CLI details and bundle internals to evolve while the provider workflows stabilize.