Programmator

Autonomous coding agent orchestrator that executes multi-task plans without supervision. Supports Claude Code, pi coding agent, OpenCode, and Codex as executors.
Coding agents are interactive — they require you to watch, approve, and guide each step. For complex features spanning multiple tasks, this means hours of babysitting. As context fills up during long sessions, the model starts making mistakes and producing worse code.
Programmator splits work into isolated sessions with fresh context windows. Each task runs independently, gets reviewed by parallel agents, and can be auto-committed on completion with no supervision needed.
Install with Claude Code
The plugin can help you install and configure programmator. For manual installation without the plugin, see Manual Install.
1. Install the plugin:
claude plugin marketplace add alexander-akhmetov/programmator
claude plugin install -s user programmator
2. Ask Claude to install and configure programmator:
Claude will help you install the binary, verify your executor is available, and optionally create a config file. Just ask — for example: "install and configure programmator".
3. Use it:
Create plans manually or use /plan-to-file to convert Claude Code plans. Then run programmator start ./plan.md.
Manual Install
Download a binary from GitHub Releases, or install with Go (requires 1.26+):
go install github.com/alexander-akhmetov/programmator/cmd/programmator@latest
You'll also need at least one executor: Claude Code, pi coding agent, OpenCode, or Codex.
Quick Start
Write a plan file (plan.md):
# Plan: Fix calculator bugs
## Validation Commands
- `go test ./...`
## Tasks
- [ ] Fix add() to return a + b instead of a - b
- [ ] Fix off-by-one error in loop
- [ ] Add missing nil check in User handler
Run it:
programmator start ./plan.md
Programmator picks up the first unchecked task, invokes Claude Code to complete it, marks it done, and moves to the next. After all tasks complete, it runs a multi-agent code review. When everything passes (or safety limits are hit), it stops.
Examples
Use pi coding agent instead of Claude Code
Create ~/.config/programmator/config.yaml:
executor: pi
pi:
provider: anthropic # optional
model: sonnet # optional
Then programmator start ./plan.md uses pi for all tasks instead of Claude Code.
Minimal config: your own executor + one custom review agent
By default, programmator runs 9 review agents after task completion. You can replace them all with a single custom one:
executor: pi
review:
agents:
- name: code-review
focus:
- correctness
- error handling
- test coverage
This runs pi for coding and a single code-review agent for the final review pass. You can also point to a full custom prompt file:
review:
agents:
- name: code-review
prompt_file: ".programmator/prompts/review/code-review.md"
And in .programmator/prompts/review/code-review.md:
Do a good code review please.
Code with pi, review with Claude Opus
executor: pi
review:
executor:
name: claude
claude:
flags: "--model opus"
How It Works
Each iteration:
- Reads the plan file and finds the first uncompleted task
- Builds a prompt with the task context and instructions
- Invokes the configured executor in a fresh session
- Parses the executor's
PROGRAMMATOR_STATUS output block (YAML with status, files changed, summary)
- Updates the task checkbox and logs progress
- Checks safety limits, then loops back
After all tasks are done, a multi-agent review runs automatically.
Plan
When you run programmator start <thing>, the source type is auto-detected from the argument: file paths → plan file, everything else → ticket ID.
Tickets
If you have ticket CLI installed, programmator can use it to get the plan from the ticket. Tickets are markdown files with YAML frontmatter and checkbox phases.
Files