Skip to main content

bencher

Guide for using Bencher continuous benchmarking. Use when the user wants to: benchmark code, track performance, detect regressions, set up CI performance checks, run bare metal benchmarks, configure thresholds, or use the bencher CLI. Also use when you see BENCHER_API_KEY, BENCHER_API_TOKEN, bencher_run_ or bencher_user_ API keys, bencher CLI usage, bencher.dev URLs, mcp.bencher.dev (Bencher MCP server), or port 6610 (Bencher self-hosted default) in the project.

Source facts

Repository
bencherdev/bencher
Last source activity
October 4, 2026 at 16:59
Detected SKILL.md language
English
Stars
909
Forks
41

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
8 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
bencher
description
Guide for using Bencher continuous benchmarking. Use when the user wants to: benchmark code, track performance, detect regressions, set up CI performance checks, run bare metal benchmarks, configure thresholds, or use the bencher CLI. Also use when you see BENCHER_API_KEY, BENCHER_API_TOKEN, bencher_run_ or bencher_user_ API keys, bencher CLI usage, bencher.dev URLs, mcp.bencher.dev (Bencher MCP server), or port 6610 (Bencher self-hosted default) in the project.
argument-hint
["task"]
# Bencher Bencher is a continuous benchmarking platform that tracks performance over time and detects regressions before they reach production. ## Quick Start Check if the CLI is installed: ```bash bencher --version 2>/dev/null || echo "bencher CLI not installed. See https://bencher.dev/docs/how-to/install-cli/" ``` Choose your workflow: | Goal | Workflow | |------|---------| | Run benchmarks locally | See [local-runs.md](./local-runs.md) | | Run benchmarks on dedicated hardware (Bencher Cloud) | See [bare-metal.md](./bare-metal.md) | | Set up CI regression detection | See [ci.md](./ci.md) | | Configure statistical thresholds | See [thresholds.md](./thresholds.md) | | Set up a self-hosted Bencher instance | See [self-hosted.md](./self-hosted.md) | | Query data via MCP (no CLI required) | See [mcp.md](./mcp.md) | | Quick command reference | See [reference.md](./reference.md) | Simplest possible run (generates mock data to verify setup): ```bash bencher run "bencher mock" ``` ## Authentication Bencher authenticates with an **API key** via `--key` or `BENCHER_API_KEY`. The prefix selects one of two kinds. **Project key (`bencher_run_*`), preferred for CI:** scoped to a single existing project. Submits runs and reads that project's data; cannot create or claim a project, nor perform manage-level operations such as renaming resources or managing keys (least privilege). ```bash export BENCHER_API_KEY=bencher_run_... bencher run --project my-project "cargo bench" ``` The project must be identified by `--project` or derived from a `--image` whose repository names the project. A project key cannot create a project on the fly. **User key (`bencher_user_*`), good for local/interactive use:** authenticates as the owning user across everything a session can do (except minting other keys), and can create a project on the fly, so `--project` is optional. ```bash export BENCHER_API_KEY=bencher_user_... bencher run "cargo bench" ``` **Deprecated, user API token (`--token` / `BENCHER_API_TOKEN`, a JWT):** existing tokens still work, but new ones can no longer be created. Use an API key instead. `--key` and `--token` are mutually exclusive: supplying both is an error, even when one comes from an environment variable. When migrating, unset `BENCHER_API_TOKEN` before setting `BENCHER_API_KEY`. ## Common Options Every `bencher run` accepts these project-scoping options: | Flag | Env Var | Purpose | |------|---------|---------| | `--project` | `BENCHER_PROJECT` | Project slug or UUID | | `--branch` | `BENCHER_BRANCH` | Branch name/slug/UUID (auto-created if needed) | | `--testbed` | `BENCHER_TESTBED` | Testbed name/slug/UUID (auto-created if needed) | | `--host` | `BENCHER_HOST` | API host (default: `https://api.bencher.dev`) | ## Reading Project Data A project key reads its own project; a user key spans all the user's projects. Query existing data: ```bash bencher project view <project> bencher branch list <project> bencher report list <project> bencher alert list <project> bencher threshold list <project> ``` Use `--format json` on any command for machine-readable output. Without the CLI, the same data is available through the hosted MCP server (a Bencher Plus feature): see [mcp.md](./mcp.md). The CLI remains the recommended route when it is installed.
View on GitHub