Queue a plan. Walk away. Review the evidence.
AI coding agents can do real work. The workflow around them is still manual, fragile, and unrecorded. Three pains, specifically:
You feed the agent a step, watch it, feed the next. A multi-step plan is a string of supervised sessions. You are the for-loop.
Your agent hits a usage limit mid-task and you're stuck, even though another capable agent is sitting right there, idle.
The reasoning, the exact prompt, the changes: all of it scrolls off in a terminal. Nothing auditable, nothing to hand to a teammate.
Think of a CI runner: it doesn't compile your code, it runs the steps that do, in order, and keeps the logs. Springfield is that, for AI coding agents. You hand it a plan; it runs each piece through an agent in an isolated worktree, and keeps the evidence.
A plan compiles into a batch of work units grouped into phases that run in declared order — parallel phases run their units concurrently — each with its own stories and acceptance criteria.
Homebrew installs the CLI; one slash-command in Claude Code or Codex installs the skills. Teammates pick it up in minutes.
State lives in project-local .springfield/. No global machine state, and nothing outbound from Springfield itself.
A plan compiles into a batch of units, each with user stories. Springfield runs them phase by phase in declared order — parallel phases run concurrently in per-plan-branches mode — each in its own worktree, tracking story-level completion as the agent reports it.
Units → stories → acceptance criteria.
plan validates & compiles it.
Auto-branch off main; each unit in isolation.
Commits on a feature branch; full trail on disk.
For each unit, Springfield runs a loop: build the prompt, run an agent, scan the output for completion markers. Not done? Iterate. Agent rate-limited? Fall sideways to the next agent. All stories pass? Merge and bank the evidence.
A Ralph loop (while …; do claude -p "$PROMPT"; done) is a great hack and the right ancestor to credit. Springfield is that loop, made durable, multi-agent, and shareable.
| Dimension | Ralph bash loop | Springfield |
|---|---|---|
| Unit of work | One prompt, looped until you stop it | A batch of units, each with tracked stories |
| Isolation | Runs in your working tree | Dedicated git worktree per run |
| Branching | You manage it by hand | Auto-cuts a feature branch off main, switches back when done |
| Completion | You eyeball output / grep for a string | Structured markers tracked to pass/fail per story |
| Evidence | Terminal scrollback only | Per-iteration prompt, events, response & verdict on disk |
| Multi-agent | One agent; hard stop on limit | Priority chain Claude → Codex → Gemini, lateral fallback |
| Resume | Re-run from scratch | Resumes from saved progress, so finished units aren't redone |
| State | Ad-hoc / in your head | Project-local .springfield/, no global state, nothing outbound |
A Ralph loop gets one agent through one prompt; Springfield gets a plan through a fleet, with a paper trail.
When the active agent is rate-limited, Springfield doesn't sit and wait for the limit to reset. It stamps a cooldown and tries the next agent in your priority chain, so the batch keeps moving. With several agents configured, a usage limit becomes a transparent hiccup instead of a hard stop.
This is the biggest jump over a bash loop. For each unit, Springfield writes a per-iteration record plus a rollup, so "what did the agent actually do?" has a real answer.
# per unit .springfield/execution/plans/<id>/evidence/ iter-1/ prompt.txt # the exact prompt the runner built events.jsonl # full dispatched event stream assistant_text.txt # the agent's raw response meta.json # verdict: agent, exit_code, timing iter-2/ … iter-N/ summary.json # iteration_count, terminal_status, exit_reason
Surfaced through springfield status. The files are there when you need to prove what happened.
Springfield ships as a CLI (the binary that does the work) and a plugin (the skills and slash-commands your agent runs). Install both.
Linux or Windows: grab a tarball from Releases, or run go install . from source (Go 1.26+).
Same skills either way: /springfield:plan, /springfield:status, and /springfield:recover. Install on whichever host CLI you use, or both.
An interactive menu opens. Pick the Brent Guistwite marketplace, then install springfield.
A git repo, and at least one supported agent CLI installed and authenticated: Claude Code, Codex, or Gemini.
brew upgrade springfield is the upgrade you'll actually run. The plugin is a thin shim over the CLI verbs, so plugin updates are manual and rare. Run one only when a skill tells you to.