Skip to content

Questions about hushrun

Updated

Short answers to what people ask first, each with a link to the details.

The basics

What is hushrun?

hushrun is a free command-line tool that skips a check when this exact code already passed it, on a laptop, in CI or in a coding agent's sandbox. You put hushrun run -- in front of a test, lint or typecheck command, and it runs only when no pass is recorded for the same files. It also runs a delivery pipeline, promotion, which you don't need in order to skip checks.

How does hushrun know the code is the same?

It hashes the repository's files as they are now, committed or not, with ignored files left out, and combines that with the check's name, its exact command and the directory it runs in. The machine, the branch, the commit and the CI provider aren't part of it, so a pass on a laptop can skip the same check in CI. How skipping works has the details.

How long does setup take?

About three minutes. npx hushrun init at the repository's root finds your checks, signs you in, shows every change it would make, and makes them once you agree. See the Quickstart.

Does it work with any language?

Yes. hushrun run NAME -- COMMAND wraps any command, such as hushrun run unit -- cargo test, in a git repository. npx hushrun init finds checks in a root package.json and in your CI files: Rust, Go, Python, Java, Kotlin, Ruby, PHP, .NET, Elixir and Swift, and make, just and task targets. For a tool it doesn't know, add the wrapper by hand: see In CI.

Is hushrun open source?

No. The CLI is free but closed source. Its releases and GitHub Action are public at github.com/hushrun/hushrun. Open source, non-commercial projects can apply for free checks on the hosted service.

Who makes hushrun?

hushrun is built by Camilo. Write to [email protected] about anything.

Skipping safely

Is it safe to skip tests?

A skip means the same check, with the same command, already passed on exactly these files. What it doesn't cover is anything outside the files, such as an environment variable, a service or the Node.js version: when a check depends on one, give each variant its own name, such as unit-node22 and unit-node24. When hushrun can't tell whether this code passed, it runs the check.

Can a pass on a laptop replace a CI run?

By default, yes: CI skips a check a laptop or an agent already passed on the same files. An admin can turn on CI reuses only CI's results for a repository, and then CI skips only on passes CI recorded.

Could someone record a pass without running the check?

A member of your organization, or an agent with your organization's token, could: hushrun trusts the machines and agents your organization registered. Results from people and agents must carry a registered machine's signature, and GitHub Actions results are tied to the repository by GitHub's ID token. For checks that must come from CI, use CI reuses only CI's results, and for deploys, CI-only stages.

What happens with a flaky test?

A failure is recorded too, and the newest result for a key decides the next run, so a check that last failed always runs again. A pass and a fail on the same code means the check gave two answers, and the dashboard marks it as flaky.

Does a skip save the whole CI job?

It saves the check's time, not the job's. The job still starts, checks out the code and installs dependencies, then the wrapped command exits 0 at once. To reduce the jobs themselves, see Skip CI on unchanged code and promotion, whose plan decides what a stage still has to do before any work starts.

Does it work in a monorepo?

Yes. By default a check's key covers every file in the repository, so hushrun.yaml can split it into scopes, and a change under api/ then doesn't run web's checks again. See Several projects in one repository.

Your data

What does hushrun send?

For each result: the check's name, whether it passed, the exit code, the command, the directory, the digest of the files, the commit, the repository's name, the times, and a link to the CI run. Not your source code. Where results go shows a whole result.

Do I need an account?

No. With no backend, results stay in a cache on your machine and nothing leaves it, which is enough for one person or one agent. Sharing results between laptops, CI and agents takes a backend: hushrun's hosted service, or a server of your own.

Can I run my own server?

Yes. Any server that speaks hushrun's results protocol, hushrun-results/v0, can be a backend. It's three HTTP requests, described in Your own server, and results kept there are free.

What happens if hushrun's service is down?

Your checks run. hushrun run gives a run's requests 10 seconds in all, then runs the command and keeps its exit code, so it never fails because a backend is unreachable. Promotion is different: its commands read and write events on hushrun's server, so a pipeline stops until the server answers.

Plans

What does hushrun cost?

The CLI is free. The hosted service is free for 2,000 recorded checks a month. Team is $49 a month and Growth $99, tax included. Skipping a check that already passed costs nothing. Plans and limits has every plan.

What happens at the plan's limit?

hushrun fails open: new results stop being recorded, your checks run as they did before hushrun, and exit codes don't change. See At the limit, checks still run.

With other tools

Does it replace Nx, Turborepo or Bazel?

No, and it works alongside them. Those are build systems that replay task results from a cache and need a project set up for them. hushrun wraps commands you already have, compares the whole repository's files, and adds promotion. hushrun and the alternatives sets them side by side.

Which CI systems does it work with?

GitHub Actions needs no secret, only an ID token. GitLab CI, CircleCI, Buildkite, Jenkins and others record with an agent token and its key: see In CI.

Which coding agents work with it?

Any agent that runs your scripts. Claude Code, Codex or Cursor's agent on your laptop use your sign-in, with nothing to set up. An agent in a sandbox, such as a Claude Code cloud session or an E2B or Docker sandbox, uses an agent token and its key: see Agents and sandboxes.

Promotion

What is promotion?

Promotion has CI build and validate each change once, then deploys that exact artifact to every later stage, copied by digest, with a signed record of what ran. When a stage's plan says promote, it rebuilds nothing and repeats no check. See Promotion.

Do I need promotion to skip checks?

No. hushrun run works alone. You want promotion when each environment should deploy the artifact the one before it validated, when a deploy needs a person's approval, or when you want a signed record of every check, build and deploy.

What is a source digest?

A hash of the files of a deployable scope. Commits, branches and the version control system don't enter it, so two commits with the same files have the same digest. That's how hushrun sees that main holds what develop already tested. See Source digests and scopes.

Markdown