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 | sh
greenrun                       # 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.secrets
then just run greenrun — push when it’s green.

The 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.

  1. 01 fail fast

    The first useful failure

    Runs stop at the first failure worth reading, not twenty minutes later. greenrun run --complete collects all failures when you want the full picture.

  2. 02 isolated

    Docker runners, explicit secrets

    Every job runs in an isolated Docker runner. Nothing reads your .env implicitly — secrets are passed by name, value, or file, and only when you say so.

  3. 03 agent-ready

    Results built for context windows

    Each run saves result.gr — compact, optimized for agent context — plus a versioned canonical result.json. greenrun path latest resolves the location; no storage layout to learn.

  4. 04 honest boundary

    Partial beats false confidence

    ubuntu-latest, 24.04, and 22.04 run locally. macOS, Windows, self-hosted, OIDC, and approval-gated jobs are reported remote_only, producing a partial result instead of a fake green.

  5. 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.

  1. 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 plan to inspect what it would do first.

  2. 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.

  3. 03 apple silicon

    Native arm64 by default

    Runs native arm64 images and labels the result compatible. Use greenrun --arch github for linux/amd64 emulation when you need exact parity.

  4. 04 local · MIT

    No model calls, no account

    A single Go binary with a pinned, MIT-licensed nektos/act engine inside. No telemetry, no uploads. MIT-licensed — read it, fork it, self-host it.