Dihan Nahdi

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.

Try it in one minute: no token, no API key, just Node 22
git clone https://github.com/dihannahdi/factory
cd factory
npm run demo

A 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.

The factory console. An isometric factory floor with three production lines; two have opened pull requests and are waiting on CI. A side panel shows each lane's issue, model, tokens and the commands it just ran.
Two lanes have opened their PRs and are waiting on CI. The third is parked. On the right: each lane’s issue, model, tokens, and the last things it read and ran.

How it works

Every issue goes through the same four stations. Each station can stop the issue and say why.

  1. 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. 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. 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. 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

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 doctor to 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 doctor and factory status --watch are here now. Next: init, logs, steer and spend.

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