name: agent-ci description: Run GitHub Actions CI locally with Agent CI to validate changes before pushing. Use when testing, running checks, or validating code changes. license: MIT compatibility: Requires Node.js 18+ and Docker metadata: author: redwoodjs version: "1.0.0"
Agent CI
Run the full CI pipeline locally before pushing. CI was green before you started — any failure is caused by your changes.
Run
npx @redwoodjs/agent-ci run --quiet --all --pause-on-failure
Pipes are safe — pause-on-failure works through | tee log, > log.txt, etc. When stdout isn't a TTY the launcher detaches the run and the foreground process exits 77 the moment a step pauses, freeing the pipe while the container stays paused for retry.
Retry
When a step fails, the run pauses automatically. Fix the issue, then retry:
npx @redwoodjs/agent-ci retry --name <runner-name>
To re-run from an earlier step:
npx @redwoodjs/agent-ci retry --name <runner-name> --from-step <N>
Repeat until all jobs pass. Do not push to trigger remote CI when agent-ci can run it locally.
Machine-readable output (--json)
For programmatic monitoring, add --json (or set AGENT_CI_JSON=1) to emit an NDJSON event stream on stdout — one JSON object per line. Events:
run.start(withschemaVersion: 1,runId)job.start,job.finish(status: passed|failed)step.start,step.finish(status: passed|failed|skipped)run.paused(carriesrunner+retry_cmd)run.finish(status: passed|failed)diagnostic
--json is decoupled from --quiet, and the diff renderer is auto-suppressed under --json so ANSI sequences don't collide with the stream. Combined with the exit-77 pause signal above, this gives agents a robust contract: parse run.paused events, react, and call retry — no plaintext grep required.