Run Bumpkit inside your coding agents and coordinate several of them.
MCP server
To connect Claude without installing anything, use the hosted connector: claude mcp add --transport http bumpkit https://bumpkit.dev/mcp in Claude Code, or https://bumpkit.dev/mcp as a custom connector in the Claude desktop app. bumpkit mcp connect prints both, and bumpkit mcp connections list and bumpkit mcp connections revoke manage the apps you connected.
Run the built-in server with bumpkit mcp. Your agent starts this command and communicates over stdio. It uses your saved bumpkit login credentials or BUMPKIT_API_KEY, with the same workspace permissions and feature access.
bumpkit login
claude mcp add bumpkit -- bumpkit mcpbumpkit mcp config prints copyable JSON for Cursor, Claude Desktop, and other MCP clients without changing files or including credentials. bumpkit mcp --help explains how to connect. See MCP Server for client configuration and tools.
bumpkit guard
Beta, early access. Flag:
agent_guard.
Check an agent's work before it finishes or pushes. guard gates the working tree against --base with the policy at the base. As an agent's hook, it sends the agent back with the proven problems or the approval it needs. Run directly, as the git pre-push hook does, a change that only needs approval prints the approval the pull request will need and its dashboard link, then exits 0 so the pull request can be opened; proven problems still exit 1. Every message names the workspace it checked, because approvals recorded in another workspace don't count. When Bumpkit can't be reached or the feature is off, it prints a note and exits 0. With Close the loop on (Beta, flag close_the_loop), it also blocks while fix tasks are open on this branch, even when the gate passes. See Agent Hooks.
bumpkit guard [--base REF] [--hook claude|cursor|codex|gemini|windsurf|cline]| Flag | Default | Description |
|---|---|---|
--base |
Where this branch left the default branch; on the default branch itself, HEAD |
Ref to compare against |
--hook |
claude, cursor, codex, gemini, windsurf or cline to run as that agent's finish hook. codex, gemini, windsurf and cline need the agent_hooks_extended flag. |
bumpkit hooks
Beta, early access. Flag:
agent_guard.
Install the agent and git hooks in this repository. With no flags, hooks install installs the Cursor and git hooks, plus the Claude Code hooks when the repository has a .claude/ directory or a CLAUDE.md. See Agent Hooks.
bumpkit hooks install [--claude] [--cursor] [--git]| Flag | Default | Description |
|---|---|---|
--claude |
false |
Install Claude Code hooks in .claude/settings.json (recall at session start, pause before shell commands, reads and writes, guard when the agent stops) and the MCP server in .mcp.json |
--cursor |
false |
Install Cursor hooks in .cursor/hooks.json: recall at session start, pause before shell commands and guard when the agent stops |
--git |
false |
Install a git pre-push hook that runs bumpkit guard. An existing pre-push hook isn't overwritten: add the line bumpkit guard to it yourself. |
Beta: Codex, Gemini CLI, Windsurf, Cline and provenance
Beta, early access. Flags:
agent_hooks_extended,agent_pause,change_provenance.
bumpkit hooks install [--claude] [--cursor] [--git] [--codex] [--gemini] [--windsurf] [--cline] [--provenance [--prompts]]| Flag | Default | Description |
|---|---|---|
--codex |
false |
Install Codex hooks in .codex/hooks.json (recall at session start, pause before shell commands and patches, guard before the agent stops) and the MCP server in .codex/config.toml |
--gemini |
false |
Install Gemini CLI hooks and the MCP server in .gemini/settings.json: recall at session start and the release check after each agent turn |
--windsurf |
false |
Install Windsurf hooks in .windsurf/hooks.json (the release check before Cascade runs git push), the MCP server in your user config, and the git pre-push hook |
--cline |
false |
Install Cline hooks in .clinerules/hooks (recall when a task starts, the release check before attempt_completion), the MCP server in the Cline CLI settings, and the git pre-push hook |
--provenance |
false |
Also record AI change provenance from each agent's sessions and tool calls (opt-in) |
--prompts |
false |
With --provenance, also send a redacted summary of each prompt (opt-in) |
With agent pause, the Claude Code hooks also run bumpkit pause --hook claude before each shell command, read and write.
Beta: open a pull request that adds the hooks
Beta, early access. Flag:
agent_hooks_pr. Owners, admins and policy admins.
bumpkit hooks pr [--repo OWNER/NAME] [--json]Opens the Add Bumpkit agent hooks pull request through the GitHub App. It adds the Claude Code, Cursor and Codex hooks with provenance recording (no prompt summaries) and the MCP servers in .claude/settings.json, .mcp.json, .cursor/hooks.json, .codex/hooks.json and .codex/config.toml, merged into the files already on the default branch, byte for byte what bumpkit hooks install --claude --cursor --codex --provenance writes. Running it again returns the open pull request, and says so when the default branch already has the hooks. --repo defaults to the origin remote. See Agent Hooks.
bumpkit memory
Beta, early access. Flag:
codebase_memory.
What your team and agents learned about this code. See Agent Controls.
| Subcommand | Usage | Description |
|---|---|---|
add |
bumpkit memory add TEXT [flags] |
Save a decision, pitfall, note or incident about a path |
list (alias ls) |
bumpkit memory list [PATH] |
List memories for the repository or a path |
forget |
bumpkit memory forget MEMORY_ID |
Delete a memory |
| Flag | Default | Description |
|---|---|---|
--repository |
The origin remote | Repository URL (all memory subcommands) |
--kind |
note |
memory add: note, decision, pitfall or incident |
--path |
The whole repository | memory add: file or directory it's about |
bumpkit memory add "Never call the billing API from a migration" --kind pitfall --path db/migrationsBeta: memory approval
Beta, early access. Flag:
memory_approval.
| Subcommand | Usage | Description |
|---|---|---|
pending |
bumpkit memory pending |
List memories agents saved that wait for a person's approval |
approve |
bumpkit memory approve MEMORY_ID |
Approve a pending memory so agents recall it |
reject |
bumpkit memory reject MEMORY_ID |
Reject a pending memory; it is never recalled |
bumpkit recall
Beta, early access. Flag:
codebase_memory.
Print what your team learned about this code: approved lessons first (Beta, flag swarm_lessons), then memories for the repository or a path, and the finding kinds recent releases were flagged for. As a session start hook, it hands the same text to the agent as context. It exits 0 unless a flag is wrong.
bumpkit recall [--path PATH] [--hook claude|cursor|codex|gemini|cline]| Flag | Default | Description |
|---|---|---|
--hook |
claude, cursor, codex, gemini or cline to run as that agent's session start hook. codex, gemini and cline need the agent_hooks_extended flag. |
|
--path |
The whole repository | A file or directory |
bumpkit pause
Beta, early access. Flag:
agent_pause.
Check a command before an agent runs it: allow, ask a human, or deny. As a hook, pause reads the tool call from standard input and replies in the agent's hook format, always exiting 0. Run directly, it checks COMMAND, prints allow or the decision and reason, and exits 1 unless the command is allowed. Ask and deny decisions are recorded in Bumpkit; allowed commands aren't. With agents: budgets on (Beta, flag agent_budgets), the hooks also deny file writes outside the paths the agent is allowed, with the reason shown to the agent.
When you're not signed in, the feature is off for your workspace, or Bumpkit can't be reached, pause still checks the command, with the built-in local rules plus the repository's agent: section, and records nothing. See Agent Controls.
bumpkit pause [--hook claude|cursor|codex] [COMMAND...]| Flag | Default | Description |
|---|---|---|
--hook |
claude, cursor or codex to run as that agent's hook before a tool or shell command runs |
bumpkit pause rm -rf build/bumpkit provenance
Beta, early access. Flag:
change_provenance.
Turn on, turn off or read the record of who or what made a change: the agent, its version and model, the session, the tools it used and the human sponsor. See Agent Hooks.
bumpkit provenance enable [--prompts] | disable | record --hook AGENT [--prompts] | show CHECK_ID | attest CHECK_ID| Subcommand | Description |
|---|---|
enable |
Add provenance recording to the agent hooks already installed here. --prompts also sends a redacted summary of each prompt (opt-in). |
disable |
Remove provenance recording from the installed hooks |
record |
Record one hook event. --hook names the agent whose hook payload is on stdin: claude, cursor, codex, gemini, windsurf or cline. |
show CHECK_ID |
Print a check's provenance as JSON |
attest CHECK_ID |
Print a check's provenance attestation as JSON |
bumpkit claim
Beta, early access. Flag:
swarm_claims.
Lease a migration number, file, symbol, route, flag or env var before you use it, so other agents in the swarm don't take it at the same time. KIND is migration, path, symbol, route, flag, env or other. Leases expire after --ttl unless renewed with bumpkit renew. Release them with bumpkit unclaim. bumpkit claim migration without a number hands out the next free migration number, counting main, open branches, pull requests and other claims. See Agent Swarms.
bumpkit claim KIND [RESOURCE] [flags]| Flag | Default | Description |
|---|---|---|
--agent |
$BUMPKIT_AGENT_ID, or cli |
Who holds the lease |
--dir |
db/migrations |
The migrations directory, for claim migration |
--note |
Why you need it, shown to other agents | |
--repository |
The origin remote | owner/name |
--session |
$BUMPKIT_SESSION, or this host and shell |
Which run of the agent |
--ttl |
30m; 24h for claim migration without a number |
How long the lease lasts before it must be renewed (at most 24h) |
bumpkit claim path services/orders/helpers_test.go --ttl 2hbumpkit claims
Beta, early access. Flag:
swarm_claims.
List the active claims in this repository.
| Flag | Default | Description |
|---|---|---|
--kind |
Only claims of this kind | |
--mine |
false |
Only claims held by this agent ($BUMPKIT_AGENT_ID) |
--repository |
The origin remote | owner/name |
bumpkit renew
Beta, early access. Flag:
swarm_claims.
Extend a claim you hold.
bumpkit renew CLAIM_ID [flags]| Flag | Default | Description |
|---|---|---|
--agent |
$BUMPKIT_AGENT_ID, or cli |
Who holds the lease |
--session |
$BUMPKIT_SESSION, or this host and shell |
Which run of the agent |
--ttl |
30m |
How much longer the lease lasts |
bumpkit unclaim
Beta, early access. Flag:
swarm_claims.
Release a claim you hold, so other agents can use the resource.
bumpkit unclaim CLAIM_ID [flags]| Flag | Default | Description |
|---|---|---|
--agent |
$BUMPKIT_AGENT_ID, or cli |
Who holds the lease |
--session |
$BUMPKIT_SESSION, or this host and shell |
Which run of the agent |
bumpkit intent
Beta, early access. Flag:
conflict_prediction.
Declare what you will touch and see which branches, claims and agents it collides with. Bumpkit compares your declared paths and symbols, or your branch, with open pull requests, active claims and other agents' intents, and names each overlap. With no --paths, --symbols or --calls, the CLI reads your branch's changes since --base itself. It exits 1 when it predicts a conflict.
bumpkit intent [flags]| Flag | Default | Description |
|---|---|---|
--adds |
Symbols you will add, as pkg.Func |
|
--agent |
$BUMPKIT_AGENT_ID, or cli |
Who holds the lease |
--base |
origin/HEAD |
What your branch started from, when reading changes locally |
--branch |
Your branch, compared once it is pushed | |
--calls |
Symbols your change calls, as pkg.Func |
|
--paths |
Files or directories you will change | |
--repository |
The origin remote | owner/name |
--session |
$BUMPKIT_SESSION, or this host and shell |
Which run of the agent |
--symbols |
Symbols you will change, as pkg.Func |
|
--ttl |
2h |
How long other agents see this intent |
bumpkit intent --paths services/orders/reserve.go --symbols orders.Reservebumpkit merge-plan
Beta, early access. Flag:
merge_planning.
A safe merge order for the open pull requests, and what main broke in each. Pull requests with the fewest overlaps merge first, and stacked pull requests follow their base. With --recheck, each waiting pull request is checked against main for signatures main changed that it uses. Needs the Bumpkit GitHub App.
| Flag | Default | Description |
|---|---|---|
--recheck |
false |
Re-check every waiting pull request against main now |
--repository |
The origin remote | owner/name |
bumpkit stack
Beta, early access. Flag:
stacked_prs.
Show stacked pull requests, their merge order and each one's decision. A pull request whose base branch is another open pull request's head branch is stacked on it. Bumpkit tracks stacks from GitHub App events, checks each pull request on its own changes against its parent's head, and re-checks it when the parent's head moves or GitHub retargets it. Needs the Bumpkit GitHub App.
| Subcommand | Usage | Description |
|---|---|---|
list |
bumpkit stack list --repository OWNER/REPO |
List the repository's stacks in merge order with each pull request's decision |
show |
bumpkit stack show NUMBER --repository OWNER/REPO |
Show one pull request's stack, its position and what must merge first |
| Flag | Default | Description |
|---|---|---|
--repository |
The origin remote | owner/name |
--json |
false |
Print the stack as JSON |
A decision shows as current only when it was saved for the pull request's exact head and base commits. Otherwise the pull request reads Not checked at this head and base, and no decision is implied.
bumpkit stack list --repository acme/shop
bumpkit stack show 131 --repository acme/shop --jsonbumpkit contracts
Beta, early access. Flag:
contract_alerts.
Alert branches when an internal function, method or type they call changes. See Agent Swarms.
| Subcommand | Usage | Description |
|---|---|---|
sync |
bumpkit contracts sync [--base REF] [flags] |
Record this push's signature changes and the symbols this branch calls |
alerts |
bumpkit contracts alerts [flags] |
List contract alerts for a branch |
ack |
bumpkit contracts ack ALERT_ID |
Acknowledge an alert once the call sites are updated |
close |
bumpkit contracts close [--branch NAME] [flags] |
Stop tracking a merged or abandoned branch |
Run contracts sync on every push, in CI or by an agent. Other open branches calling a changed symbol's old signature are alerted by pull request comment, webhook and MCP. Alerts for this branch are printed, and the command exits 1 when there are any.
| Flag | Default | Description |
|---|---|---|
--base |
The pull request base, the push's before, or the merge base with origin | Where the change starts |
--branch |
The current branch | Branch |
--owner |
BUMPKIT_AGENT_ID, else this API key |
Who to alert for this branch |
--pr |
The one GitHub Actions is running for | This branch's pull request |
--repository |
The origin remote | Repository |
contracts alerts takes --all (include acknowledged alerts), --branch and --repository. contracts close takes --branch and --repository.
bumpkit coverage
Beta, early access. Flag:
verified_reports.
Upload CI coverage as evidence for agent reports.
| Subcommand | Usage | Description |
|---|---|---|
upload |
bumpkit coverage upload --profile cover.out [flags] |
Upload a Go coverage profile for a commit, signed by the CI job's OIDC token |
In GitHub Actions with permissions: id-token: write, the upload carries the job's OIDC token, so Bumpkit knows the profile came from CI for that repository and SHA, not from an agent. Bumpkit computes total coverage, and diff coverage against each report's diff.
| Flag | Default | Description |
|---|---|---|
--diff-percent |
Diff coverage as measured by CI (trusted only with an OIDC token) | |
--no-oidc |
false |
Upload with the API key only, without the CI job's OIDC token |
--profile |
cover.out |
The Go coverage profile |
--repository |
The origin remote | Repository |
--sha |
HEAD |
The commit the profile measured |
bumpkit agent-report
Beta, early access. Flag:
verified_reports.
Report what an agent claims about a commit and have Bumpkit verify each claim. Bumpkit checks each claim against the GitHub checks for that exact SHA, coverage uploaded by CI, and the real diff, and answers verified, contradicted or unverifiable per claim. The command exits 1 when any claim is contradicted, so an orchestrator can trust the exit code instead of the agent's summary.
bumpkit agent-report [claims] [flags]| Flag | Default | Description |
|---|---|---|
--agent |
BUMPKIT_AGENT_ID |
The agent making the claims |
--base |
The pull request's base, else the parent | The commit the change starts from |
--branch |
The current branch | Branch |
--coverage |
Claimed total coverage percent | |
--diff-coverage |
Claimed coverage percent of changed lines | |
--file |
A file the commit changes (repeatable; claims the exact set) | |
--files-count |
Claimed number of files changed | |
--lint-clean |
false |
Claim lint is clean |
--migration |
A migration the commit adds (repeatable) | |
--no-migrations |
false |
Claim the commit adds no migrations |
--pr |
The one GitHub Actions is running for | Pull request number to comment on |
--repository |
The origin remote | Repository |
--sha |
HEAD |
The full commit SHA the claims are about |
--tests-pass |
false |
Claim the tests pass (--tests-pass=false claims they fail) |
bumpkit agent-report --tests-pass --diff-coverage 100 --lint-clean --no-migrationsbumpkit test
Beta, early access. Flag:
flaky_tests.
Flaky test registry and regression evidence: upload results and triage failures.
| Subcommand | Usage | Description |
|---|---|---|
upload |
bumpkit test upload --file results.xml [flags] |
Upload a CI run's test results (JUnit XML or go test -json) |
triage |
bumpkit test triage [--file results.json] [--test NAME] [flags] |
Say whether failing tests are known flaky or likely real, with history |
flaky |
bumpkit test flaky [flags] |
List known flaky tests |
expected |
bumpkit test expected [--base REF] [--head REF] |
List the tests a change's blast radius expects, and why (Beta, flag regression_evidence) |
attest |
bumpkit test attest --file results.xml [--base REF] [--head REF] |
Upload test results and the tests expected for this commit, attested by the CI job (Beta, flag regression_evidence) |
evidence |
bumpkit test evidence [--sha SHA] [--pull-request N] |
Show which expected tests passed, failed or didn't run on a commit (Beta, flag regression_evidence) |
test upload flags:
| Flag | Default | Description |
|---|---|---|
--attempt |
GITHUB_RUN_ATTEMPT |
The run attempt |
--branch |
The current branch | Branch |
--file |
JUnit XML or go test -json output |
|
--format |
Detected | junit or go-test-json |
--repository |
The origin remote | Repository |
--run-key |
GITHUB_RUN_ID |
Identifies the CI run |
--sha |
HEAD |
The commit the tests ran on |
test triage reads failing tests from --test names or from the run's output in --file. It exits 1 when any failure is likely real, 0 when every one is known flaky. It takes --file, --format, --repository, --sha (the commit the tests failed on) and --test (a failing test's name, like pkg/path.TestName, repeatable). test flaky takes --limit (default 100, max 500) and --repository.
test expected takes --base (default: the pull request's base, else the latest tag), --head (default: the pull request's head, else HEAD) and --policy. test attest takes the same flags, plus --file, --format (junit or go-test-json, default detected) and --repository. It exits 0 when tests fail, because the gate reads them; it exits 1 when the upload fails. test evidence takes --repository, --sha and --pull-request, which counts merge-commit attestations only from that pull request. See Regression evidence.
bumpkit testdb
Beta, early access. Flag:
test_isolation.
Lease an isolated Postgres database for one agent run. The CLI creates each lease on your test server, the one in TEST_DB_ADMIN_URL, copied from TEST_DB_TEMPLATE when set, and refuses any server whose host isn't in TEST_DB_ALLOWED_HOSTS. Bumpkit records the lease. Once its TTL passes, the next testdb lease or a testdb sweep drops it; nothing drops it on a timer, so run testdb sweep on a schedule if leases can sit idle. The CLI only ever creates or drops databases named bk_lease_*, and caps the active leases on the server (TEST_DB_MAX_LEASES, default 20). See Beta variables.
| Subcommand | Usage | Description |
|---|---|---|
lease |
bumpkit testdb lease [--ttl 1h] [flags] |
Create a test database and print its URL |
list |
bumpkit testdb list |
List this workspace's leased test databases |
release |
bumpkit testdb release NAME |
Drop a leased test database now |
sweep |
bumpkit testdb sweep |
Drop every expired leased database on the test server |
testdb lease flags:
| Flag | Default | Description |
|---|---|---|
--agent |
BUMPKIT_AGENT_ID |
The agent run it's for |
--ttl |
1h |
How long the lease lasts before a sweep may drop it (1m to 24h) |
export DATABASE_URL=$(bumpkit testdb lease --agent "$BUMPKIT_AGENT_ID")
go test ./...bumpkit lessons
Beta, early access. Flag:
swarm_lessons.
Rules every agent in the swarm follows, proposed by agents and approved by people. A lesson has a kind (practice, pitfall, decision, or dropped for something the team chose not to build), applies to paths and areas, and is versioned: --supersedes proposes a new version, and approving it supersedes the old one. Approved lessons reach agents first in bumpkit recall, the session start hooks and the lessons MCP tool, capped at 20 lessons and about 4,000 characters. Pending, rejected and retired lessons never reach agents.
A key can't approve or reject a lesson proposed with a key of the same person, or with a key that was since deleted, and a key that isn't tied to a person can't approve anything. Review those in the dashboard inbox, or ask a teammate to use their key. The proposer's name comes from BUMPKIT_AGENT_ID, then BUMPKIT_AGENT.
| Subcommand | Usage | Description |
|---|---|---|
propose |
bumpkit lessons propose TEXT [flags] |
Propose a lesson (up to 1000 characters); it reaches agents once a person approves it |
list (alias ls) |
bumpkit lessons list [flags] |
List approved lessons, or others with --status |
approve |
bumpkit lessons approve LESSON_ID |
Approve a proposed lesson so every agent gets it |
reject |
bumpkit lessons reject LESSON_ID |
Reject a proposed lesson |
retire |
bumpkit lessons retire LESSON_ID --reason TEXT |
Retire an approved lesson that no longer holds; the reason (at least 10 characters) is kept with it |
Every subcommand takes --repository (repository URL, default: the origin remote).
| Flag | Subcommand | Default | Description |
|---|---|---|---|
--area |
propose, list |
An area it's about, like migrations, tests, auth, api, ui or billing (repeatable on propose) |
|
--kind |
propose |
practice |
practice, pitfall, decision or dropped |
--path |
propose, list |
The whole repository | A path or glob it applies to (repeatable on propose) |
--supersedes |
propose |
The lesson ID this is a new version of | |
--status |
list |
approved |
approved, pending, retired, superseded, rejected or all |
--reason |
retire |
Why it no longer holds |
bumpkit lessons propose "Every migration runs inside a transaction; never edit a migration that already shipped." --kind pitfall --path db/migrations --area migrations
bumpkit lessons list --status pendingbumpkit tried
Beta, early access. Flag:
tried_before.
Has this been tried? Before you build something, describe it, name the paths and symbols it touches, or both. Bumpkit searches release history for matching reverts, removed features and APIs, dropped decisions and past gate blocks. Each result links to its release and, for GitHub repositories, the commit.
bumpkit tried [DESCRIPTION] [flags]| Flag | Default | Description |
|---|---|---|
--path |
A path the change touches (repeatable) | |
--repository |
The origin remote | Repository URL |
--symbol |
A function, type or route it touches (repeatable) |
bumpkit tried "realtime websocket notifications" --path services/notify --symbol Streambumpkit inbox
Beta, early access. Flag:
approval_inbox.
One approval inbox for the swarm, ranked by risk (low, medium or high): gate decisions that need approval or failed, paused agent commands, memories waiting for approval and lesson proposals. Items are named KIND:ID, with kind gate, command, release_batch, release_publish, memory or lesson. The inbox needs a key tied to a person, and every decision is audited with the approver.
| Subcommand | Usage | Description |
|---|---|---|
list (alias ls) |
bumpkit inbox list [--filter all|releases|commands|context] |
What waits for a person, ranked by risk. Merged, closed and superseded releases are left out |
approve |
bumpkit inbox approve [KIND:ID] [--note TEXT] [--no-browser] [--timeout 10m] |
Approve one item |
deny |
bumpkit inbox deny [KIND:ID] [--note TEXT] [--no-browser] [--timeout 10m] |
Deny or reject one item |
batch |
bumpkit inbox batch KIND:ID... --confirm "approve N low-risk items" |
Approve several low-risk items at once |
Gate items (gate:ID) and paused commands (command:ID) need a person signed in to the dashboard, on the Approvals page. With an API key, approve and deny print a 403 HUMAN_APPROVAL_REQUIRED refusal with the link. On that page, approving a gate item needs a note of at least 10 characters and the override role (owners, admins and policy admins). It isn't an approval vote: it records a break-glass override of that exact commit. The gate's approval rules, such as "anyone except the author", don't count it, and someone else reviews it later with bumpkit override review. The pull request's GitHub check re-runs with the override right away. Gate items can't be denied from the inbox. A gate run on a local diff with no commit SHA doesn't appear; CI and API gate runs at a full SHA do.
A release draft (release_batch:ID) runs the same browser vote as bumpkit release approve ID or bumpkit release deny ID: it prints a link and a one-time code, and you confirm in your browser. Approving an approved release (release_publish:ID) publishes it, like bumpkit release publish ID.
Without KIND:ID, approve and deny list what's waiting. In a terminal you pick one by number, and a gate item asks for its note. Otherwise each item is printed with its exact command and the command exits 1.
batch approves up to 50 low-risk items, and --confirm must be exactly approve N low-risk items (item for one). The server checks this too, and refuses medium- and high-risk items: decide those one at a time.
bumpkit inbox listbumpkit agents
Beta, early access. Flags:
agent_budgets(spend,usage,violations),agent_track_records(records).
Agent budgets, scopes, violations and track records. Budgets and scopes live under agents: in bumpkit.yml, keyed by an agent id or a glob: max_open_prs, max_changed_lines, paths_allow, paths_deny, areas_deny, spend_limit (US dollars per calendar month, UTC) and on_violation (block or approve). The gate checks every agent on a change, and each broken limit becomes a reason that fails the gate or asks for approval. See the bumpkit.yml Reference.
| Subcommand | Usage | Description |
|---|---|---|
spend |
bumpkit agents spend --agent ID --usd AMOUNT [flags] |
Record what an agent spent, counted against spend_limit |
usage |
bumpkit agents usage |
Open pull requests, open changed lines and this month's spend per agent |
violations |
bumpkit agents violations [--limit 50] |
Recent times an agent went outside its budget or scope (max 500) |
records |
bumpkit agents records [--days 90] |
Each agent's track record by work type: releases, clean, reverted, fixed up within 7 days, blocked by the gate and failed required checks, with a score |
agents spend flags:
| Flag | Default | Description |
|---|---|---|
--agent |
BUMPKIT_AGENT_ID, then BUMPKIT_AGENT |
The agent id |
--note |
What it was for | |
--repository |
The repository the work was for | |
--usd |
Amount in US dollars |
Track records count checks of the same commits as one release, by work type (tests, migrations, auth, api, ui). gate.require_approval: [{agent_track_record_below: 0.8}] asks a person to approve changes from agents below the bar.
bumpkit agents spend --agent claude --usd 7.50 --note "model tokens for the refund task"
bumpkit agents usage
bumpkit agents records --days 90