ReviewPack 1.1.10-dev.296
See the version list below for details.
dotnet tool install --global ReviewPack --version 1.1.10-dev.296
dotnet new tool-manifest
dotnet tool install --local ReviewPack --version 1.1.10-dev.296
#tool dotnet:?package=ReviewPack&version=1.1.10-dev.296&prerelease
nuke :add-package ReviewPack --version 1.1.10-dev.296
ReviewPack (dotnet tool)
ReviewPack is a .NET global tool that builds a PR review pack for the Git branch you want to inspect.
A review pack is a set of Markdown files representing the full branch delta between HEAD and the merge-base with a chosen base branch such as origin/main. The output is designed for pre-PR self-review and for AI-assisted review workflows where you want the complete branch context packaged up front instead of reconstructed from individual commits.
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
The generated pack is structured to be both human-readable and LLM-friendly. It includes:
- a summary file with reviewer instructions, branch context, totals, and a changed-files index
- one or more additional Markdown files containing the per-file diffs, split into manageable parts
Requirements
- .NET 10 SDK/runtime (the tool targets
net10.0) gitavailable on yourPATH- access to the Git working tree you want to review
- an existing output folder where ReviewPack can create a run subfolder
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
Output
Each run writes a new subfolder under the configured output path. The subfolder is named using the run id. Typical output looks like this:
review-pack-0000.md— summary, reviewer instructions, branch context, changed-files indexreview-pack-0001.md— first diff partreview-pack-0002.md— second diff part- ...
GenerateReviewPack also returns the run id and the full paths to the generated files when used through MCP.
Options
| Option | Required | Description |
|---|---|---|
--tool__outputpath <path> |
Yes | Existing folder where ReviewPack will create a subfolder for each run. This value is also used by ReadReviewPackFile 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 | 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 patch content per generated part. When the next rendered patch would exceed this threshold, a new part is started. Default: 15000. |
--tool__runasmcpserver <true/false> |
No | Starts ReviewPack as an MCP server over stdio instead of running 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 and exposes two tools:
GenerateReviewPackReadReviewPackFile
Tool behavior
GenerateReviewPack
Generates the review pack Markdown files and returns:
- the run id
- the list of generated file paths
It accepts optional tool arguments for:
baseBranchbranchFolder
These are resolved with the following precedence:
- server configuration (
tool:BaseBranch,tool:BranchFolder) - tool call arguments (
baseBranch,branchFolder) - fallbacks
- base branch →
origin/main - branch folder → current directory
- 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.
ReadReviewPackFile
Reads a generated review-pack-*.md file, but only when:
- the file is under the configured output root
- the file name matches
review-pack-*.md
This is intended for agents that need the actual Markdown content after generating the pack.
Recommended agent workflow
- Call
GenerateReviewPack - Read
review-pack-0000.mdfirst - Use the summary/index in part
0000to decide which additional parts need to be read - Only then perform the actual review or summary
This matters because GenerateReviewPack does not return the Markdown content directly; it returns the generated file paths.
Example: fixed workspace/server configuration
This is the best fit when the MCP config 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, the MCP tool arguments for baseBranch and branchFolder are effectively advisory only, because the configured values already win.
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.
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. ReadReviewPackFileis intentionally restricted to generated review-pack files under the configured output root.
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." - "Prepare my current Git changes for LLM review and tell me which files were generated."
- "Generate the review pack, then read
review-pack-0000.mdand tell me which additional parts you need next."
If you also want the agent to actually review the code, ask for it as a second step or in the same request, but it should still start from review-pack-0000.md and then load the necessary diff parts.
What is included in the review pack
Each run captures:
- current branch name
- base branch name
- HEAD commit SHA
- merge-base commit SHA
- total changed files
- total added and deleted lines
- changed-files index by part
- reviewer instructions embedded in
review-pack-0000.md - per-file diffs in fenced
diffblocks
Diff rendering behavior
ReviewPack always computes the real branch diff, but some patches may be shortened in the rendered Markdown to keep the pack usable:
- normal-sized diffs are included in full
- large diffs may be truncated after a limited number of hunks
- very large diffs may be replaced with metadata only
- bulky text-based files such as
.json,.md,.xml,.ini,.conf, and.txtare truncated or omitted more aggressively
When a patch is omitted due to size, the pack still includes file metadata such as path, status, and added/deleted line counts.
Notes
- ReviewPack diffs
merge-base..HEAD, notbase-branch..HEADdirectly. - If Git returns no patch content for a file, ReviewPack writes a placeholder message instead of failing.
OutputPathmust already exist.
| 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.1.11.300 | 38 | 4/3/2026 |
| 1.1.11-dev.299 | 40 | 4/3/2026 |
| 1.1.11-dev.298 | 30 | 4/3/2026 |
| 1.1.10.297 | 37 | 4/3/2026 |
| 1.1.10-dev.296 | 33 | 4/3/2026 |
| 1.1.9.295 | 28 | 4/3/2026 |
| 1.1.9-dev.294 | 39 | 4/3/2026 |
| 1.1.8.293 | 37 | 4/2/2026 |
| 1.1.8-dev.292 | 38 | 4/2/2026 |
| 1.1.7.290 | 74 | 4/1/2026 |
| 1.1.7-dev.289 | 30 | 4/1/2026 |
| 1.1.7-dev.288 | 27 | 4/1/2026 |
| 1.1.7-dev.287 | 36 | 4/1/2026 |
| 1.1.6.286 | 73 | 3/31/2026 |
| 1.1.6-dev.285 | 30 | 3/31/2026 |
| 1.1.5.284 | 69 | 3/31/2026 |
| 1.1.5-dev.283 | 32 | 3/31/2026 |
| 1.1.3.275 | 99 | 3/27/2026 |
| 1.1.2.274 | 79 | 3/26/2026 |
| 1.1.1.273 | 80 | 3/26/2026 |