Open source · MIT
factory
Orchestrator should be fun.
factory takes the open issues in a GitHub repository and works them end to end on its own: plan, code, tests, review, pull request, CI. Up to three issues run at once. A live console shows every lane as a production line, so you can follow what each one is doing and step in at any point.
git clone https://github.com/dihannahdi/factory
cd factory
npm run demoA simulator plays three lanes working through a made-up shop’s backlog, and the real console opens in your browser. Pause the line, queue an issue, steer a lane. Nothing leaves your machine.

How it works
Every issue goes through the same four stations. Each station can stop the issue and say why.
- 1
Pick
Every minute it reads your open issues. It takes the next one that has a milestone, no assignee, and no open dependency. Write “Depends on: #12” in an issue and it waits for #12.
- 2
Plan and build
A model reads the issue and the code, writes a plan with one line per requirement, then builds it with tests. Your repo’s AGENTS.md or CLAUDE.md sets the rules it follows.
- 3
Check
Your build and tests run in the sandbox. A second model reviews the diff against the plan and checks each requirement against real code and a real test.
- 4
Ship
It opens the PR and waits for your CI. If CI fails, it reads the log and tries a fix. By default it then stops and labels the PR for you to merge. If you allow it, it merges and checks your deploy too.
Why this one
You can watch it work
The console draws your backlog as a small factory floor. Each lane is a production line, and you can see the file the model is reading or editing, the CI checks coming in, and the token count rising.
You can steer it mid-run
Send a lane a note, such as “keep the limit check in one SQL statement”, and the model reads it on its next turn. You can also pause the whole line, push an issue to the front, skip one, or stop a lane.
The agent holds no secrets
Each lane runs as an unprivileged user in a locked-down systemd unit. It has no token and no keys, and it can’t reach your other services. Commits leave the sandbox as a git bundle, and root checks them before pushing.
$0, or $10 a month
It runs on OpenCode Zen’s free models out of the box. When free capacity runs short, add OpenCode Go for $10 a month. factory keeps spending under the caps you set per 5 hours, per week and per month.
It says when it gives up
If it can’t finish an issue, it comments with the reason and a link to the log, labels the issue, and moves on. You never come back to a lane that quietly stalled.
Good to know
- Cost
- $0 on OpenCode Zen’s free models. $10 a month with OpenCode Go, which factory keeps under your caps. Your CI minutes are separate, and a PR may run CI more than once after a fix.
- Merging
- Off by default. It opens the PR, waits for green CI and its own review, then hands the PR to you. Automatic merge and deploy checks are one setting away.
- Runs on
- The demo runs anywhere Node 22 runs. Real lanes need Linux with systemd and root today; running in containers without root, and on macOS, is next on the roadmap. Run
factory doctorto see what your machine is missing. - Trust
- Anyone who can write an issue it picks can steer the model. Your CI also runs the agent’s code with your repo’s secrets. Use it on repos where you trust everyone who files issues, and keep deploy secrets in protected environments.
- Terminal
factory demo,factory doctorandfactory status --watchare here now. Next:init,logs,steerandspend.
It started as a private harness for working through one project’s backlog on free models, and has been doing that every day since October 2026. Most of what’s in it exists because a lane failed in some way: a free model got rate-limited mid-turn, a test database disappeared during a run, CI went red because of a test the PR never touched, or a model checked off a requirement it hadn’t done. The console exists because watching the agent work turned out to be the best way to trust it.
Get it on GitHub