# hushrun > hushrun skips a check when this exact code already passed it. `hushrun run -- COMMAND`, in front of a test, lint or typecheck command, runs it only when no pass is recorded for the same files, check name and command, on a laptop, in CI or in a coding agent's sandbox. hushrun also runs a promotion pipeline: CI builds and validates each change once, then every later environment deploys the exact artifact by digest, with signed evidence in an append-only log. The docs, for people and agents, are at https://hushrun.com/docs. Every page is also Markdown at its address with .md added, listed below; https://hushrun.com/llms-full.txt has all of them in one file. - A skip needs the same repository files (as they are now, committed or not, ignored files left out), the same check name, the same exact command and the same directory. The machine, the branch, the commit and the CI provider aren't part of it. When hushrun can't tell, it runs the check. It keeps the command's exit code, and a skip exits 0. - Results go to the org's backend on hushrun's hosted service, which the team's laptops, CI and agents share; without one, they stay on the machine. Any server that speaks the results protocol can be the backend. - GitHub Actions records results with the job's ID token, with no secret to store. Agents in sandboxes, and other CI, use an agent token in HUSHRUN_TOKEN and the key made with it in HUSHRUN_MACHINE_KEY: every result from a person or an agent is signed by a registered machine. - For promotion, it computes a source digest of each deployable scope's files, independent of commits and the VCS. - Pipelines record checks, artifacts and deploys as signed DSSE events in a hosted, append-only log over HTTPS, with a transparency log of every write. In GitHub Actions, CI signs keylessly as its workflow (Sigstore). - Membership is the policy: an event counts toward a promotion when it was signed by a machine that a member of the repository's org registered by signing in to hushrun, by one of the org's agents, or by the repository's own CI, keylessly. Removing a member, or revoking a machine, stops what it signs from then on counting. In the dashboard, an admin can set a stage to take its evidence from CI only, and have a repository's CI reuse only results CI recorded. There is no list of signers to merge, and the hosted service never makes a deploy decision. - Before doing any work, a stage asks the planner what is left for the digest. Modes: promote, refresh, full, wait, skip, blocked. - GitHub Actions is supported today; GitLab CI is next. Any language, any VCS. - The CLI is free. The hosted plan for teams (shared evidence log, dashboard, audit trail) is free to start at https://app.hushrun.com/sign-up, with GitHub or Google. Pilot teams set it up together with us and get a founding price. Prices are below. ## Set up hushrun in a repository At the repository's root, a person runs: npx hushrun init It finds the checks in the root package.json's scripts (test, lint, typecheck and the like) and the GitHub Actions workflows that run them, and signs the terminal in with a link that a person approves in the browser. Then it shows the changes and asks before making them: each check's script wrapped in `hushrun run --`, the repository's backend under "hushrun" in package.json, the `hushrun` npm package in devDependencies, `id-token: write` for the workflow jobs that run a wrapped check, and, once the org has the repository, a hushrun.yaml that names the repository's URL on hushrun and pins its transparency log's key. A coding agent, or anything else without a terminal, adds `--yes` to apply without asking: npx hushrun init --yes It still prints the sign-in link, which a person approves in their browser. `--dry-run` shows the plan and changes nothing. Without `--yes` and without a terminal, it prints the plan and exits with status 2. The prompt to give a coding agent, word for word: > Add hushrun to this repository. Run `npx hushrun init --yes` at the repository root; it prints a sign-in link, which I'll approve in my browser. Then show me the diff it made, run the checks it wrapped once, and commit the change on a new branch. ## Docs - [Skip checks this code already passed](https://hushrun.com/docs.md): hushrun skips a check when this exact code already passed it, on laptops, in CI and in coding agents' sandboxes. Set it up in about three minutes. - [Quickstart](https://hushrun.com/docs/quickstart.md): Add hushrun to a repository with one command, npx hushrun init, and see a check skip, in about three minutes. - [For coding agents](https://hushrun.com/docs/for-agents.md): What a coding agent needs to know to set hushrun up, and to work in a repository whose checks skip when this exact code already passed them. - [How skipping works](https://hushrun.com/docs/run.md): What hushrun run compares before it skips a check, how checks are named, what each line it prints means, and when it runs a check anyway. - [Where results go](https://hushrun.com/docs/results.md): Where hushrun run looks for earlier results and records new ones, how signing in works, which credential goes where, and how to use your own server. - [In CI](https://hushrun.com/docs/ci.md): Skip checks in CI that this exact code already passed. GitHub Actions needs no secret, only an ID token; other CI uses an agent token. - [Agents and sandboxes](https://hushrun.com/docs/agents.md): Coding agents skip the checks this exact code already passed. On your machine they use your sign-in; in sandboxes, an agent token and its key. - [Your team on hushrun](https://hushrun.com/docs/teams.md): Sign up with GitHub or Google, invite your team, and manage roles, machines, agent tokens and repositories on hushrun's hosted service. - [Plans and limits](https://hushrun.com/docs/plans.md): What counts as a recorded check, what happens at your plan's limit, and where to see and change your organization's usage on hushrun's hosted service. - [Promotion](https://hushrun.com/docs/promotion.md): Promotion has CI build and validate each change once, then deploys that exact artifact to every later stage by digest, with signed evidence. - [Promotion on GitHub Actions](https://hushrun.com/docs/promotion/github.md): Set up promotion on GitHub Actions: keyless signing, the plan job and the jobs that carry it out, guard, pull requests and the reusable workflow. - [Promotion on GitLab CI](https://hushrun.com/docs/promotion/gitlab.md): Set up promotion on GitLab CI: the agent key a pipeline signs with, the CI/CD variables, the pipeline itself, merge requests and doctor. - [Evidence from agents and laptops](https://hushrun.com/docs/promotion/evidence.md): Let coding agents and laptops record evidence CI's plan counts: isolated runs in pinned images, agent machine keys, signed-in machines and approvals. - [Transparency log](https://hushrun.com/docs/promotion/transparency.md): How hushrun checks its own server: the log key hushrun.yaml pins, the checks on every command, an hourly monitor, and who may read or write. - [Commands](https://hushrun.com/docs/reference/cli.md): Every hushrun command with its usage, the flags that matter and their defaults, plus the global options, output formats and exit codes. - [Environment variables](https://hushrun.com/docs/reference/environment.md): Every environment variable hushrun reads, grouped by what it's for, with its default, its effect and whether it holds a secret. - [Configuration](https://hushrun.com/docs/reference/configuration.md): package.json's hushrun key, hushrun.yaml key by key, where hushrun keeps its files on each OS, and where configuration comes from in CI and locally. - [Troubleshooting](https://hushrun.com/docs/troubleshooting.md): Why a check runs when you expected a skip, what each of hushrun's warnings means, and how to fix setup, sign-in and token problems. ## Pricing hushrun's hosted service charges for recorded checks: a pass or a fail it records, from `hushrun run` or a pipeline's check event. Skips, reads and every other event are free, and retries and re-runs of the same CI run count once. At the limit it fails open: new results aren't recorded, checks run, and exit codes don't change. Results kept on your own machine, or on a server you run, are free. Paid plans have a 60-day refund guarantee. - Free: $0. 2,000 recorded checks a month. At the limit, recording pauses until the next month and checks still run. Start free. - Team: $49/month, billed monthly, or $490 billed yearly. 10,000 recorded checks a month. Then $3 per 1,000 more, up to your spend cap (by default $30 of overage). Checkout in the dashboard. - Growth: $99/month, billed monthly, or $990 billed yearly. 75,000 recorded checks a month. Then $1.50 per 1,000 more, up to your spend cap (by default $112.50 of overage). Checkout in the dashboard. - Scale: ~$399/month, billed yearly. 300,000 recorded checks a month. Never cut off; a contract sets what is included. Talk to the founder. - Enterprise: From $1,500/month, billed yearly. Recorded checks as a contract sets them. Never cut off; a contract sets what is included. Contact form. ## Pages - [What it does and why](https://hushrun.com/): the problem of duplicated CI from coding agents, how hushrun works, security, FAQ. - [CI waste calculator](https://hushrun.com/calculator): minutes and money spent re-validating identical files. It accepts query parameters: pushes_per_day, branches, pipeline_minutes, cost_per_minute, working_days. - [Pricing](https://hushrun.com/pricing): the plans, what counts as a recorded check, the limits, the refund, and the form to talk to the founder about Scale or Enterprise. - [Terms](https://hushrun.com/terms): the CLI's license and the hosted service's terms. - [Docs](https://hushrun.com/docs): every page above, as HTML. - [Spanish](https://hushrun.com/es) - [Start free](https://app.hushrun.com/sign-up): the dashboard's sign-up, with GitHub or Google.