{"id":50654622,"url":"https://github.com/stefanvictora/revpack","last_synced_at":"2026-06-07T23:03:04.319Z","repository":{"id":357815046,"uuid":"1238610432","full_name":"stefanvictora/revpack","owner":"stefanvictora","description":"🤖 AI-ready review bundles for GitHub and GitLab.","archived":false,"fork":false,"pushed_at":"2026-06-05T22:36:05.000Z","size":878,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-05T23:04:17.869Z","etag":null,"topics":["ai","ai-code-review","cli","code-review","coding-agent","github","gitlab","merge-request","pull-request"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanvictora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-14T09:27:00.000Z","updated_at":"2026-06-05T22:36:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/stefanvictora/revpack","commit_stats":null,"previous_names":["stefanvictora/revpack"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/stefanvictora/revpack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanvictora%2Frevpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanvictora%2Frevpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanvictora%2Frevpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanvictora%2Frevpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanvictora","download_url":"https://codeload.github.com/stefanvictora/revpack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanvictora%2Frevpack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34041090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-code-review","cli","code-review","coding-agent","github","gitlab","merge-request","pull-request"],"created_at":"2026-06-07T23:03:03.657Z","updated_at":"2026-06-07T23:03:04.310Z","avatar_url":"https://github.com/stefanvictora.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# revpack\n\n[![build](https://github.com/stefanvictora/revpack/actions/workflows/ci.yml/badge.svg)](https://github.com/stefanvictora/revpack/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/%40stefanvictora%2Frevpack.svg)](https://www.npmjs.com/package/@stefanvictora/revpack)\n[![npm downloads](https://img.shields.io/npm/dm/%40stefanvictora%2Frevpack.svg)](https://www.npmjs.com/package/@stefanvictora/revpack)\n[![license](https://img.shields.io/npm/l/%40stefanvictora%2Frevpack.svg)](https://www.npmjs.com/package/@stefanvictora/revpack)\n[![node](https://img.shields.io/node/v/%40stefanvictora%2Frevpack.svg)](https://www.npmjs.com/package/@stefanvictora/revpack)\n\n**Local AI review bundles for GitHub and GitLab — with humans in control of what gets published.**\n\n`revpack` turns a GitHub PR, GitLab MR, or local branch range into a local review bundle for coding agents. The bundle contains the diff, unresolved review discussions, previous review state, and valid line-comment positions.\n\nYour agent reviews that local bundle and writes proposed outputs: findings, thread replies, summaries, and review notes. Nothing is posted to GitHub or GitLab until you publish it.\n\n```text\nprepare review context → run your agent → inspect pending output → publish intentionally\n```\n\nUse `revpack` when you want AI-assisted review that is conversation-aware, agent-neutral, and human-controlled.\n\n## Quick start\n\nInstall the CLI:\n\n```bash\nnpm install -g @stefanvictora/revpack\n```\n\nOpen the repository you want to review, then configure a GitHub or GitLab profile:\n\n```bash\nrevpack config setup\nexport REVPACK_GITHUB_TOKEN=ghp_xxxxxxxxxxxx\n# or\nexport REVPACK_GITLAB_TOKEN=glpat-xxxxxxxxxxxx\nrevpack config doctor\n```\n\nOptionally, add review guidance:\n\n```bash\nrevpack setup\n```\n\nCustomize `REVIEW.md` when you want agents to follow project-specific review priorities.\n\nThen add instructions for your agent:\n\n```bash\n# Pick one:\nrevpack setup agent claude\nrevpack setup agent codex\nrevpack setup agent cursor\nrevpack setup agent copilot\n```\n\nThis writes project-level instruction files, such as an agent command, skill, or prompt. It does not install or run the agent.\n\nUse `--dry-run` to preview generated files before writing them.\n\nPrepare, review, inspect, and publish:\n\n```bash\nrevpack prepare\n# Start the review in your agent:\n# Claude, Copilot, or Cursor: /revpack-review\n# Codex: $revpack-review\n# Or ask any agent to perform a revpack review.\nrevpack status\nrevpack publish all\n```\n\n## How it works\n\n`revpack prepare` creates or refreshes `.revpack/` for the current PR/MR or local branch range.\n\nThe bundle gives the agent the review context it needs:\n\n```text\n.revpack/\n  CONTEXT.md              # agent entry point\n  description.md          # PR/MR description\n  threads/                # unresolved review discussions\n  diffs/\n    latest.patch          # full diff\n    incremental.patch     # follow-up changes, when a checkpoint exists\n    line-map.ndjson       # valid line-comment locations\n  outputs/\n    new-findings.json     # new line comments\n    replies.json          # replies to existing threads\n    summary.md            # PR/MR summary\n    review.md             # optional review-level note\n```\n\nThe 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.\n\nThe agent reads the input files and writes only to `.revpack/outputs/`. You can inspect or edit those files before publishing.\n\n## Publishing\n\nYou decide what goes back to GitHub or GitLab.\n\n| Output                      | Command                      |\n| --------------------------- | ---------------------------- |\n| All pending outputs         | `revpack publish all`        |\n| New line comments           | `revpack publish findings`   |\n| Replies to existing threads | `revpack publish replies`    |\n| PR/MR summary               | `revpack publish summary`    |\n| Review note                 | `revpack publish review`     |\n| Review checkpoint           | `revpack publish checkpoint` |\n\nUseful variants:\n\n```bash\nrevpack publish findings --dry-run\nrevpack publish replies T-001\n```\n\n\u003e [!IMPORTANT]\n\u003e When publishing selected outputs, publish `checkpoint` last. It records the reviewed PR/MR state used for future incremental reviews.\n\n## When revpack fits\n\n`revpack` is useful when the agent should review more than a patch.\n\nIt helps when you want to:\n\n- include unresolved PR/MR discussions in the agent run\n- avoid repeating already-raised feedback\n- draft replies to reviewer or author questions\n- focus follow-up reviews on what changed since the last checkpoint\n- inspect AI-generated output before it reaches the PR/MR\n- use your preferred agent instead of a fixed review bot\n\nYou 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.\n\n`revpack` does not replace CI or human review judgment. It prepares the review context; your agent reviews it; you decide what gets published.\n\n## Common workflows\n\n### Refresh after follow-up commits\n\n```bash\nrevpack prepare\n```\n\nIf a checkpoint exists, `revpack` includes the latest code and thread changes since that checkpoint so the agent can focus its follow-up review.\n\n### Review a local branch before opening a PR/MR\n\n```bash\nrevpack prepare --local\nrevpack prepare --local main\nrevpack prepare --local main...HEAD\n```\n\nLocal mode reviews committed branch changes against an inferred or explicit base branch. Uncommitted working-tree changes are not included.\n\n### Review a PR/MR that is not checked out\n\n```bash\nrevpack checkout https://gitlab.example.com/group/project/-/merge_requests/42\nrevpack checkout !42 --repo group/project --profile myGitlab\nrevpack checkout 58 --repo user/project --profile myGithub\n```\n\nInside 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.\n\n### Use an unsupported agent\n\nAfter `revpack prepare`, ask the agent:\n\n```text\nRead `.revpack/CONTEXT.md` first, then follow the referenced revpack contract and instruction files.\n```\n\nFor repeated use, add project-level instructions for your agent with `revpack setup agent \u003ctarget\u003e`.\n\n## Reference\n\n- [Command reference](docs/commands.md)\n- [Architecture](docs/architecture.md)\n\n## Development\n\n```bash\nnpm install\nnpm run dev -- prepare !42\nnpm test\nnpm lint:fix\nnpm format\n```\n\n## Status\n\n`revpack` is early but usable for local AI-assisted PR/MR reviews. Expect CLI details and bundle internals to evolve while the GitHub/GitLab review workflow stabilizes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanvictora%2Frevpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanvictora%2Frevpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanvictora%2Frevpack/lists"}