Install with Homebrew.
Local-first from the start. Install the CLI, capture a parcel, then optionally expose the same store to agents over MCP.
- 01
Install with Homebrew
Tap the BugParcel Homebrew formula, trust it on Homebrew 7+, then install. That puts the CLI and MCP server on your PATH.
$ brew tap AayushGokhale2005/bugparcel $ brew trust AayushGokhale2005/bugparcel $ brew install bugparcel - 02
Verify the install
Confirm the binary responds and that bugparcel-mcp is on PATH.
$ bugparcel --version bugparcel 0.1.1 $ which bugparcel-mcp - 03
Choose a parcel store
Set BUGPARCEL_HOME to a dedicated directory. If unset, BugParcel uses ./.bugparcel in the current working directory.
$ export BUGPARCEL_HOME="$HOME/bugparcel-runs" $ mkdir -p "$BUGPARCEL_HOME" - 04
Capture a failure
Point capture at the command that fails. BugParcel records Git state, the command, and the failure contract.
$ bugparcel capture --name failing-auth -- npm test -- auth # with environment + optional Docker image $ bugparcel capture --name checkout \ --env LOG_LEVEL=debug \ --docker-image ghcr.io/example/checkout-test:sha-abc123 \ -- python3 -m pytest -q $ bugparcel show <parcel-id> $ bugparcel reproduce <parcel-id> - 05
Wire the MCP server
Hand the same store to coding agents through bugparcel-mcp over stdio.
Add this to your MCP client config (Cursor, Claude Code, etc.):
{ "mcpServers": { "bugparcel": { "command": "bugparcel-mcp", "env": { "BUGPARCEL_HOME": "./bugparcel-runs" } } } }
Optional: FastAPI middleware
Attach the adapter so unhandled exceptions write a sanitized event and invoke the CLI. Capture is disabled during isolated replay when BUGPARCEL_REPLAY=1.
$ pip install bugparcel-fastapifrom pathlib import Path
from bugparcel_fastapi import BugParcelFastAPIMiddleware, BugParcelSettings
app.add_middleware(
BugParcelFastAPIMiddleware,
settings=BugParcelSettings(
project_root=Path("/path/to/your/fastapi-project"),
reproduction_command=["/path/to/.venv/bin/python", "-m", "pytest", "-q"],
parcel_store=Path("/path/to/bugparcel-store"),
cli_command=["bugparcel"],
),
)