Open source · Go · single binary
CI that runs your pipeline
and your agents
steps runs Concourse-style YAML pipelines — get, task, put — out of one Go binary, with no server to stand up and nothing to host. An agent step is a first-class step type — an LLM with tool calls, sub-agent delegation, and MCP servers — and any task can attach one as its fix:, so a green build never constructs an agent at all and a red one gets repaired and re-run before the step reports. Every step is content-addressed and cached in SQLite, so a rerun skips what hasn't changed — and assert: plus steps test make a pipeline self-verifying like the code it builds.
Get the launch email One note when it ships. Nothing else.
cat pipeline.yml
defaults: model: openrouter/anthropic/claude-haiku-4.5 # No resource_types: block — `git` is built in. Only a resource steps has no # transport for (an artifact store, an issue tracker) needs one defined. resources: - name: repo type: git source: uri: https://github.com/you/app.git branch: main agents: - name: fixer system: | You repair a failing build with the smallest change that makes it pass. Fix the cause in the code under test. Never delete, skip, or weaken a test to make it green. tools: [read_file, list_dir, run_shell] tasks: - name: unit run: cd repo && go test ./... inputs: [repo] fix: fixer # constructed only when the command exits non-zero jobs: - name: test plan: - get: repo trigger: true - task: unit
steps run pipeline.yml — the day a test breaks
$ steps run pipeline.yml get: repo (version: map[ref:b9de920]) task: unit [unit] --- FAIL: TestSum (0.00s) [unit] mathx_test.go:7: Sum([1 2 3]) = 5, want 6 [unit] FAIL task "unit" failed (exit 1); invoking fix agent "fixer" [fixer] ok example.com/mathx 0.309s [unit] ok example.com/mathx note: unit makes this chain uncacheable (fix: agent) usage: 21,385 tokens across 1 agent step(s)
The task is the honest step. It failed, so the fixer was constructed, handed the failure output and the task itself as a rerun tool; then the command ran once more, and that exit code is the verdict. Had the tests passed, no agent would exist and the run would cost nothing.
steps watch pipeline.yml --interval 30s
Early access
steps is being built in the open. Leave an email and you get one message when it ships — a release you can download and a pipeline you can run. No newsletter, no drip.
Your address is stored for this one announcement and nothing else.