ReviewPack 1.2.4.322
dotnet tool install --global ReviewPack --version 1.2.4.322
dotnet new tool-manifest
dotnet tool install --local ReviewPack --version 1.2.4.322
#tool dotnet:?package=ReviewPack&version=1.2.4.322
nuke :add-package ReviewPack --version 1.2.4.322
ReviewPack (dotnet tool)
ReviewPack is a .NET global tool that generates a review pack for a Git branch.
A review pack captures the full branch delta from HEAD back to the merge-base with a chosen base branch such as origin/main, then renders that delta into Markdown parts that are easy for both humans and LLMs to inspect.
It is designed for:
- pre-PR self-review
- reviewer-assist PR review workflows
- LLM-assisted code review
- packaging the full branch context up front instead of reconstructing it commit by commit
ReviewPack can run in two modes:
- CLI mode for one-shot generation
- MCP server mode so an agent can generate and read review packs on demand
Each generated pack is human-readable and LLM-friendly. It includes:
- a summary part with reviewer instructions, branch context, totals, and a changed-files index
- one or more diff parts containing the actual rendered patches
Requirements
- .NET 10 SDK/runtime
gitavailable on yourPATH- access to the Git working tree you want to review
- an existing output folder where ReviewPack can create per-run subfolders
Install
dotnet tool install --global ReviewPack
The command name is:
pr-review-pack
Update
dotnet tool update --global ReviewPack
Uninstall
dotnet tool uninstall --global ReviewPack
CLI usage
Basic example
- Make sure your base branch ref is up to date:
git fetch origin
- Create an output folder if you do not already have one:
mkdir C:\temp\reviewpacks
- Run ReviewPack from inside the repo:
pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__basebranch "origin/main" --allowConsoleLogging
If --tool__basebranch is omitted, ReviewPack falls back to origin/main.
Running from outside the repo
If the process is not started from the Git working tree, provide the repo folder explicitly:
pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__branchfolder "C:\src\my-repo" --tool__basebranch "origin/main" --allowConsoleLogging
Preserving large patches in CLI mode
By default, ReviewPack may truncate or reduce very large diffs, especially for bulky text-based files such as large JSON documents.
If you want the generated review pack to keep those patches in full, pass:
pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__basebranch "origin/main" --tool__keeplargepatches
CLI note about review mode
CLI execution always generates the default pre-PR / self-audit instruction set in part 0.
If you want the embedded instructions to use reviewer-assist PR wording instead, that is currently available through the MCP GenerateReviewPack tool by passing reviewMode: "pr".
Output
Each run writes a new subfolder under the configured output path. The subfolder name is the run id.
Typical output on disk looks like this:
review-pack-0000.md— Summary and Instructionsreview-pack-0001.md— Diff Patchesreview-pack-0002.md— Diff Patches- ...
When used through MCP, GenerateReviewPack returns:
- the run id
- the list of available review-pack parts for that run
The normal MCP workflow is:
- call
GenerateReviewPack - read part 0 first with
ReadReviewPackPart - continue reading the remaining parts by part number
Options
| Option | Required | Description |
|---|---|---|
--tool__outputpath <path> |
Yes | Existing folder where ReviewPack creates a run subfolder for each execution. This same root is also used by the MCP read tool and by MCP file logging. |
--tool__basebranch <ref> |
No | Base Git reference used for comparison. Defaults to origin/main when not otherwise configured. Examples: origin/main, main, origin/release/1.2. |
--tool__branchfolder <path> |
No | Repository working folder used to resolve the Git repository. Defaults to the current directory. Useful when running outside the repo or when hosting ReviewPack as an MCP server. |
--tool__maxmarkdownsize <n> |
No | Approximate maximum rendered diff content per generated part. When the next file would push the current part over this size, a new part is started. Default: 15000. |
--tool__keeplargepatches <true/false> |
No | Preserves large rendered diffs instead of truncating them or reducing them to metadata-only output. Default: false. Useful when the branch mainly changes bulky files such as large JSON payloads. |
--tool__runasmcpserver <true/false> |
No | Starts ReviewPack as an MCP server over stdio instead of performing a one-shot CLI execution. |
--allowConsoleLogging |
No | Enables console logging for CLI mode. Do not enable this in MCP mode because stdout is reserved for the protocol. |
MCP server mode
When --tool__runasmcpserver true is set, ReviewPack runs as an MCP server over stdio.
It exposes:
Tools
GenerateReviewPackReadReviewPackPart
Prompts
Pre_PR_LLM_Review_1.3PR_LLM_Review_1.3
MCP tool behavior
GenerateReviewPack
Use this tool when the user wants to:
- review branch changes before opening a PR
- review a checked-out PR branch
- prepare the current branch for LLM review
- inspect the full branch delta in review-pack form
- generate a multi-part review pack for a specific repo and base branch
The tool:
- resolves the effective review settings
- compares
HEADto the merge-base with the effective base branch - writes a multi-part review pack to disk
- returns the run id and the available review-pack parts for that run
- lets the caller choose whether the embedded review instructions are for a self-audit (
pre-pr) or a reviewer-assist pass (pr) - optionally preserves large patches instead of truncating them
It accepts optional arguments for:
baseBranchbranchFolderreviewModekeepLargePatches
These are resolved with the following precedence:
- server configuration for
BaseBranchandBranchFolder - tool call arguments
- fallbacks
- base branch →
origin/main - branch folder → current directory
- review mode →
pre-pr - keep large patches → configured
tool:KeepLargePatches, otherwisefalse
- base branch →
That means if BaseBranch and/or BranchFolder are fixed in the MCP server configuration, those configured values win and any values passed in the tool call are ignored.
After generation, the intended flow is:
- read part 0 first
- follow the instructions embedded there
- continue by reading the remaining parts in ascending part-number order
ReadReviewPackPart
Use this tool to read the content of a generated review-pack part.
Inputs:
runId— the run identifier previously returned byGenerateReviewPackpartNumber— the review-pack part number to read
Reading order:
- start with part 0
- then read the remaining parts in ascending numeric order unless the user explicitly asks for a specific part
Part kinds:
- part 0 →
Summary and Instructions - parts 1+ →
Diff Patches
This tool is intended to be the normal way for an agent to load generated review-pack content after generation.
MCP prompt workflows
ReviewPack also exposes MCP prompts that guide an agent through a sensible review workflow.
Pre_PR_LLM_Review_1.3
Use this prompt when reviewing your own branch before opening a PR.
It guides the agent to:
- generate the review pack
- read part 0 first
- continue by reading the remaining parts in order
- compare the requested folder/base branch with what part 0 reports, and only flag a mismatch when it is real and material
PR_LLM_Review_1.3
Use this prompt when reviewing someone else's PR branch that is currently checked out locally.
It guides the agent to:
- generate the review pack
- read part 0 first
- continue by reading the remaining parts in order
- compare the requested folder/base branch with what part 0 reports, and only flag a mismatch when it is real and material
Prompt note for large patches
There is no separate prompt variant for preserving large patches.
If an agent should keep bulky diffs in full, the user can simply ask for that in natural language, for example:
- "Generate the review pack and preserve large patches."
- "Use the PR prompt, but keep large patches."
The important part is that the agent should call GenerateReviewPack with keepLargePatches: true when that behavior is needed.
Recommended agent workflow
Whether the agent is driven by the MCP prompt or by a direct user request, the ideal workflow is:
- Call
GenerateReviewPack - Read part 0 first
- Follow the instructions in part 0
- Read the remaining review-pack parts in order
- Only then perform the actual review or summary
Example: fixed workspace/server configuration
This is the best fit when the MCP configuration is tied to one repo or workspace and you want the base branch and repo folder to stay fixed.
{
"servers": {
"pr-review-pack-mcp": {
"type": "stdio",
"command": "pr-review-pack",
"args": [
"--tool__runAsMcpServer",
"--tool__outputPath",
"C:\\temp\\reviewpacks",
"--tool__baseBranch",
"origin/main",
"--tool__branchFolder",
"C:\\src\\my-repo"
]
}
}
}
In this setup, MCP tool arguments for baseBranch and branchFolder are effectively advisory only, because the configured values already win.
keepLargePatches still remains invocation-controllable in this setup: a tool call can override the configured value, and the configured value is used only when the tool call omits keepLargePatches.
If you always want full bulky diffs in that MCP server instance, you can also pin:
{
"servers": {
"pr-review-pack-mcp": {
"type": "stdio",
"command": "pr-review-pack",
"args": [
"--tool__runAsMcpServer",
"--tool__outputPath",
"C:\\temp\\reviewpacks",
"--tool__baseBranch",
"origin/main",
"--tool__branchFolder",
"C:\\src\\my-repo",
"--tool__keepLargePatches",
"true"
]
}
}
}
Example: loose/global configuration
This is the best fit when you do not want the MCP config to live in the repo and you want to target different repos or branches per invocation.
{
"servers": {
"pr-review-pack-mcp": {
"type": "stdio",
"command": "pr-review-pack",
"args": [
"--tool__runAsMcpServer",
"--tool__outputPath",
"C:\\temp\\reviewpacks"
]
}
}
}
In this setup, an agent can call GenerateReviewPack with a specific baseBranch and branchFolder for the current request.
It can also pass reviewMode: "pre-pr" or reviewMode: "pr" depending on the initial user request.
If needed, it can also pass keepLargePatches: true to preserve bulky diffs.
MCP notes
- In MCP mode, avoid console logging because stdout is reserved for the protocol.
- ReviewPack writes a file log to
<tool__outputpath>\mcp-rev-pack.log. ReadReviewPackPartis intended to be the normal way for an agent to load generated review-pack content after generation.- If prompt text appears stale in an MCP client, make sure the client is actually launching the updated server build and has reloaded the server capabilities.
reviewMode: "pr"is an MCP tool argument, not a CLI switch.keepLargePatchescan be controlled either by CLI/server configuration or by the MCPGenerateReviewPacktool argument; when both are present, the MCP tool argument wins for that invocation.
Prompting an agent that has ReviewPack configured
Useful requests include:
- "Generate a PR review pack for my current branch."
- "Generate a review pack for
C:\src\my-repoagainstorigin/release/2.0." - "Generate the review pack, then read part 0 and continue through the remaining parts."
- "Generate the review pack and preserve large patches."
- "Use the
Pre_PR_LLM_Review_1.3prompt." - "Use the
PR_LLM_Review_1.3prompt and preserve large patches."
If you also want the agent to actually review the code, ask for it as part of the same request or immediately after generation, but it should still begin with part 0 and then continue through the generated parts.
What is included in the review pack
Each run captures:
- current branch name
- base branch name
HEADcommit SHA- merge-base commit SHA
- total changed files
- total added lines
- total deleted lines
- changed-files index by part
- review instructions embedded in part 0
- per-file diffs in fenced
diffblocks
Diff rendering behavior
ReviewPack always computes the real branch diff, but not every patch is rendered in full by default.
Default rendered patch behavior is:
- full for normal-sized diffs
- truncated for larger diffs
- metadata only for very large diffs
- more aggressive truncation/omission for bulky text-based files such as:
.json.md.xml.ini.conf.txt
When keepLargePatches is enabled, ReviewPack preserves those large patches in full instead of truncating them or reducing them to metadata-only output.
That is especially useful when a branch mainly consists of changes to large JSON files and the actual diff content matters for the review.
When a patch is omitted due to size under the default behavior, the review pack still includes file metadata such as:
- file path
- status
- added/deleted line counts
If Git returns no patch content for a file, ReviewPack writes a placeholder message instead of failing.
Notes
- ReviewPack diffs
merge-base..HEAD, notbase-branch..HEADdirectly. OutputPathmust already exist.MaxMarkdownSizemust be non-negative.- In detached HEAD scenarios, the current branch is reported as
(detached).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.4.322 | 31 | 4/11/2026 |
| 1.2.0.321 | 38 | 4/9/2026 |
| 1.1.11.300 | 90 | 4/3/2026 |
| 1.1.11-dev.299 | 52 | 4/3/2026 |
| 1.1.11-dev.298 | 41 | 4/3/2026 |
| 1.1.10.297 | 87 | 4/3/2026 |
| 1.1.10-dev.296 | 44 | 4/3/2026 |
| 1.1.9.295 | 76 | 4/3/2026 |
| 1.1.9-dev.294 | 48 | 4/3/2026 |
| 1.1.8.293 | 85 | 4/2/2026 |
| 1.1.8-dev.292 | 48 | 4/2/2026 |
| 1.1.7.290 | 94 | 4/1/2026 |
| 1.1.7-dev.289 | 39 | 4/1/2026 |
| 1.1.7-dev.288 | 37 | 4/1/2026 |
| 1.1.7-dev.287 | 48 | 4/1/2026 |
| 1.1.6.286 | 84 | 3/31/2026 |
| 1.1.6-dev.285 | 40 | 3/31/2026 |
| 1.1.5.284 | 80 | 3/31/2026 |
| 1.1.5-dev.283 | 43 | 3/31/2026 |
| 1.1.3.275 | 100 | 3/27/2026 |