Run GitHub Actions on your machine.

Caching in ~0 ms. Pause on failure. Let your AI agent fix it and retry — without pushing.

agent-ci-terminal

npx agent-ci run --workflow .github/workflows/ci.yml

Initializing local runner environment...

Mounting local workspace: /Users/dev/project

Starting job: test-and-build


✓ Run actions/checkout@v4 (0s)

✓ Run actions/setup-node@v4 (0s)

✓ Run npm install (0s - cached)

▶ Run npm run test

✖ 1 failing test

Error: Expected true to be false


⚠️ Step failed. Runner paused.

Container state preserved. Fix the issue and run:

npx agent-ci retry --name runner-test-and-build

Principles

Principle

Instant Feedback

Reality

Cloud CI takes minutes to spin up, install dependencies, and run tests. The feedback loop is broken.

Advantage

By bind-mounting your local node_modules and tool caches, Agent CI starts in ~0ms. Your first run warms the cache; subsequent runs are instant.

Principle

Debug in Place

Reality

When a cloud CI job fails, the container is destroyed. You have to guess the fix, push, and wait again.

Advantage

Agent CI pauses on failure. The container stays alive with all state intact. Fix the issue on your host, then retry just the failed step.

Principle

True Compatibility

Reality

Other local runners use custom re-implementations of the GitHub Actions spec, leading to subtle bugs and drift.

Advantage

Agent CI emulates the server-side API surface and feeds jobs to the unmodified, official GitHub Actions runner binary.

Architecture Comparison

FeatureGitHub ActionsOther local runnersAgent CI
Runner binaryOfficialCustom re-implementationOfficial
API layerGitHub.comCompatibility shimFull local emulation
Cache round-tripNetwork (~seconds)Varies~0 ms (bind-mount)
On failureStart overStart overPause → fix → retry step
Container stateDestroyedDestroyedKept alive

In Developers' Own Words

x.com/jessmartin

"Waiting for CI could be the subtitle of the book of the last 3 weeks of my life
The Factory Life: Waiting for CI"

Jess Martin

Jess Martin

@jessmartin

x.com/ericclemmons

"An alternative to Act for AI? I'll take it!"

Eric Clemmons

Eric Clemmons 🍊☁️

@ericclemmons

Quick Start

1. Install

Terminal
npm install -D @redwoodjs/agent-ci

2. Run

Terminal
# Run a specific workflow
npx agent-ci run --workflow .github/workflows/ci.yml

# Run all relevant workflows for current branch
npx agent-ci run --all

3. Retry

Terminal
npx agent-ci retry --name <runner-name>

AI Agent Integration

Agent CI is designed for AI-agent-driven development loops. Add this snippet to your project's CLAUDE.md or AGENTS.md:

AGENTS.md
## agent-ci

- Use `npx @redwoodjs/agent-ci run --quiet --workflow .github/workflows/ci.yml` to run CI locally
- When a step fails, the run pauses automatically. Use `npx @redwoodjs/agent-ci retry --name <runner>` to retry after fixing the failure
- Do NOT push to trigger remote CI when agent-ci can run it locally — it's instant and free
- CI was green before you started. Any failure is caused by your changes — do not assume pre-existing failures
- Use `--no-matrix` to collapse matrix jobs into a single run when you don't need full matrix coverage