fail GitHub Actions
before the push.
GitHub Actions for agents — your workflows from .github/workflows, in isolated Docker runners, failing fast. Get a green run faster.

Install
One line, then run it before you push.
Installs a single binary into ~/.greenrun. Requires Git and Docker — the GitHub CLI is optional and unlocks real pull request events plus remote run imports. No account, no key.
$ curl -fsSL https://greenrun.sh/install.sh | shgreenrun # infer event and fail fast
greenrun plan # inspect what will run
greenrun run --complete # collect all failures
greenrun show latest # compact agent-readable result
greenrun logs latest --failed # failed logs only# secrets are explicit — .env is never read implicitly
greenrun --secret NPM_TOKEN
greenrun --secret TOKEN=value
greenrun --secret-file ./local-ci.secretsThe runner
Your workflows, unchanged. No second pipeline.
Greenrun has no repository configuration — it reads .github/workflows as-is. GitHub Actions remains the only pipeline definition.
- 01 fail fast
The first useful failure
Runs stop at the first failure worth reading, not twenty minutes later.
greenrun run --completecollects all failures when you want the full picture. - 02 isolated
Docker runners, explicit secrets
Every job runs in an isolated Docker runner. Nothing reads your
.envimplicitly — secrets are passed by name, value, or file, and only when you say so. - 03 agent-ready
Results built for context windows
Each run saves
result.gr— compact, optimized for agent context — plus a versioned canonicalresult.json.greenrun path latestresolves the location; no storage layout to learn. - 04 honest boundary
Partial beats false confidence
ubuntu-latest,24.04, and22.04run locally. macOS, Windows, self-hosted, OIDC, and approval-gated jobs are reportedremote_only, producing apartialresult instead of a fake green. - 05 github
Remote failures, imported
With the optional GitHub CLI, greenrun builds real pull request events and pulls remote failures down to your machine:
greenrun github latest-failed.
How it runs
On your machine. Out of your tree.
- 01 zero config
Nothing to set up per repo
No config file, no YAML dialect, no annotations. Greenrun infers the event from your branch state — or run
greenrun planto inspect what it would do first. - 02 storage
Runs live outside the checkout
Logs, artifacts, events, and results are stored under
~/.greenrun, never in your working tree. Your diff stays yours. - 03 apple silicon
Native arm64 by default
Runs native arm64 images and labels the result
compatible. Usegreenrun --arch githubforlinux/amd64emulation when you need exact parity. - 04 local · MIT
No model calls, no account
A single Go binary with a pinned, MIT-licensed
nektos/actengine inside. No telemetry, no uploads. MIT-licensed — read it, fork it, self-host it.