ReviewPack 1.1.9.295

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global ReviewPack --version 1.1.9.295
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ReviewPack --version 1.1.9.295
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ReviewPack&version=1.1.9.295
                    
nuke :add-package ReviewPack --version 1.1.9.295
                    

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)
  • git available on your PATH
  • 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

  1. Make sure your base branch ref is up to date:
git fetch origin
  1. Create an output folder if you do not already have one:
mkdir C:\temp\reviewpacks
  1. 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 index
  • review-pack-0001.md — first diff part
  • review-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:

  • GenerateReviewPack
  • ReadReviewPackFile

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:

  • baseBranch
  • branchFolder

These are resolved with the following precedence:

  1. server configuration (tool:BaseBranch, tool:BranchFolder)
  2. tool call arguments (baseBranch, branchFolder)
  3. fallbacks
    • base branch → origin/main
    • branch folder → current directory

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.

  1. Call GenerateReviewPack
  2. Read review-pack-0000.md first
  3. Use the summary/index in part 0000 to decide which additional parts need to be read
  4. 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.
  • ReadReviewPackFile is 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-repo against origin/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.md and 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 diff blocks

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 .txt are 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, not base-branch..HEAD directly.
  • If Git returns no patch content for a file, ReviewPack writes a placeholder message instead of failing.
  • OutputPath must already exist.
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.11.300 37 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
Loading failed