CLI commands
This file is generated from the shared
bvcommand metadata used by CLI handlers and help. Runtask docs:generateafter changing the CLI surface.
The bv CLI is a single Go binary. It supports the global flags below and the subcommands that follow.
Global flags
--json— emit a single JSON document on stdout instead of human-readable text.--api-url URL— override the control-plane endpoint.--token TOK— override the bearer token.--help, -h— show usage.--version, -v— print the CLI version.
bv login [--api-url URL] [--gh-token TOK] [--token TOK]
Resolve and persist a butverify installation token.
Default flow: exchange a GitHub user token via POST /v1/auth/login. Token sources are —gh-token, GH_TOKEN, GITHUB_TOKEN, the gh CLI, or a TTY prompt.
Direct flow: pass an installation token via —token, BV_TOKEN, the global —token flag, or piped stdin to skip the exchange.
Flags:
--api-url URL— control-plane base URL.--gh-token TOK— GitHub user token for the exchange flow.--token TOK— butverify installation token for the direct-token flow.
bv logout
Clear saved authentication and switch default mode to local.
bv mode [local|remote]
Print or set the default publish mode.
Fresh installs default to local. A successful bv login switches the default to remote.
bv push [--mode local|remote] [--upload-id ID] [--ttl-seconds N] [--image-quality N] [--include-hidden] [--skip-gitleaks-check] <dir>
Bundle a directory and publish it in local or remote mode.
Local mode serves the filtered publish bundle on 127.0.0.1 until interrupted.
Remote mode uploads a tar bundle as a new private site. Pass —upload-id to retry the same logical upload idempotently.
Image optimization recompresses JPEGs with —image-quality and recompresses PNGs losslessly when smaller. Persist a default by setting image_quality in the bv config JSON.
Flags:
--mode local|remote— override the configured publish mode.--upload-id ID— explicit upload_id for idempotent retry.--ttl-seconds N— site TTL in seconds; 0 uses the server default.--image-quality N— image optimization quality; JPEG uses this value and PNG is recompressed losslessly when smaller; 0 uses config/default.--include-hidden— include dot-files in the bundle.--skip-gitleaks-check— skip the pre-upload gitleaks secret scan.
bv ls [--expired]
List sites for the authenticated tenant.
By default, expired sites are hidden. Pass —expired to include them.
The EXPIRES column shows each site’s expiry as an absolute timestamp in the user’s local timezone, plus a humanized magnitude in parentheses. Pinned sites and sites without an expiry render as an em dash.
Flags:
--expired— also include expired sites in the listing.
bv rm <site-id>
Soft-delete a site.
bv cat <site-id> <path>
Print a single file from a site to stdout.
bv get <site-id> <dest>
Download a site’s files into a destination directory.
bv manifest <site-id>
Print the site’s manifest.json.
bv pin <site-id>
Pin a site to disable TTL-based expiry.
bv unpin <site-id>
Unpin a site and re-stamp the default TTL.
bv report --from <out.json|-> [--out DIR] [--push] [--upload-id ID] [--ttl-seconds N] [--image-quality N] [--mode local|remote]
Render a static report site from JSON.
Without —push, the rendered site is written to —out or ./bv-report-out. With —push, the rendered directory is published through the standard push flow.
Image optimization recompresses JPEGs with —image-quality and recompresses PNGs losslessly when smaller. Persist a default by setting image_quality in the bv config JSON.
Flags:
--from PATH|-— input JSON file or stdin.--out DIR— output directory.--push— after rendering, push the directory as a new site.--upload-id ID— explicit upload_id for idempotent —push retry.--ttl-seconds N— site TTL in seconds; 0 uses the server default.--image-quality N— image optimization quality; JPEG uses this value and PNG is recompressed losslessly when smaller; 0 uses config/default.--mode local|remote— publish mode for —push.
bv dashboard --from <data.csv|-> [--out DIR] [--title T] [--subtitle T] [--max-table-rows N] [--push] [--upload-id ID] [--ttl-seconds N] [--image-quality N] [--mode local|remote]
Render a static dashboard site from CSV.
With —push, image optimization recompresses JPEGs with —image-quality and recompresses PNGs losslessly when smaller. Persist a default by setting image_quality in the bv config JSON.
Flags:
--from PATH|-— input CSV file or stdin.--out DIR— output directory.--title T— page title.--subtitle T— page subtitle.--max-table-rows N— cap rows shown in the HTML table; 0 means no cap.--push— after rendering, push the directory as a new site.--upload-id ID— explicit upload_id for idempotent —push retry.--ttl-seconds N— site TTL in seconds; 0 uses the server default.--image-quality N— image optimization quality; JPEG uses this value and PNG is recompressed losslessly when smaller; 0 uses config/default.--mode local|remote— publish mode for —push.
bv evidence (--schema | --from <evidence.json|-> [--out DIR] [--push] [--upload-id ID] [--ttl-seconds N] [--image-quality N] [--mode local|remote])
Render a static evidence/gallery site from JSON.
Use —schema to print the JSON Schema for the input without rendering.
Manifest metadata may include issue_url, issue_id, and issue_title at the top level for the work-management item the whole gallery proves, or under an individual item when a capture maps to a specific Jira/Linear/GitHub issue.
Rendered evidence pages include a viewer-side stacked/carousel layout switcher.
With —push, image optimization recompresses JPEGs with —image-quality and recompresses PNGs losslessly when smaller. Persist a default by setting image_quality in the bv config JSON.
Flags:
--from PATH|-— input JSON file or stdin.--out DIR— output directory.--push— after rendering, push the directory as a new site.--schema— print the JSON Schema for the evidence input and exit.--upload-id ID— explicit upload_id for idempotent —push retry.--ttl-seconds N— site TTL in seconds; 0 uses the server default.--image-quality N— image optimization quality; JPEG uses this value and PNG is recompressed losslessly when smaller; 0 uses config/default.--mode local|remote— publish mode for —push.--enable-reviews— opt the site into the review/annotation system (paid plan required).
bv agent-init [--project] [--force] [--uninstall] [--enable-hook|--no-hook]
Install the /butverify agent skills for the current agent environment.
v1 installs the Claude Code /butverify:prove-it and /butverify:review skills, plus a deprecated /butverify alias. Future versions may install additional skills, hooks, or MCP servers.
Flags:
--project— install into ./.claude/skills/butverify/ instead of $HOME/.claude/skills/butverify/.--force— overwrite an existing install.--uninstall— remove the deterministic install file set.--enable-hook— install Claude Code SessionStart and Stop hooks that surface unacknowledged reviews (skip the TTY prompt).--no-hook— skip hook installation regardless of TTY state.
Examples:
bv agent-initbv agent-init --project
bv install-skill [--project] [--force] [--uninstall] [--enable-hook|--no-hook] <agent>
Install the /butverify agent skills (prove-it + review).
Supported agent in v1: claude.
Installs three skill files under
On a TTY, prompts to enable session-start and session-end hooks that surface unacknowledged reviews. —enable-hook forces yes (useful for CI); —no-hook forces no.
Flags:
--project— install into ./.claude/skills// instead of $HOME/.claude/skills/ /. --force— overwrite an existing install.--uninstall— remove the deterministic install file set.--enable-hook— install Claude Code SessionStart and Stop hooks that surface unacknowledged reviews (skip the TTY prompt).--no-hook— skip hook installation regardless of TTY state.
Examples:
bv install-skill claudebv install-skill claude --projectbv install-skill claude --enable-hook
bv review <list|get|acknowledge|request> [args...]
Manage reviews on review-enabled evidence sites.
bv review list [—site
bv review get
bv review acknowledge
bv review request
Examples:
bv review list --unacknowledgedbv review list --unacknowledged --format=idsbv review get rev_abcbv review acknowledge rev_abcbv review request abcd1234 --to ryanh
bv whoami
Print the resolved tenant for the configured token.
bv version
Print the CLI version.
Exit codes
| code | meaning |
|---|---|
| 0 | success |
| 1 | API or runtime error |
| 2 | invalid arguments |