I got tired of babysitting coding agents A developer built Rig, an open-source orchestration harness that sits between coding agents rather than acting as another chat-based code generator. Rig uses a parent CLI to convert intent into scoped work, dispatches it to worker agents over MCP, and only marks a workflow verified after the parent runs real checks, with parallel work organized as a DAG of disjoint workers that never spawn children. The project is free and open source on GitHub. I love coding agents. I also got tired of being their night-shift project manager. The loop looks familiar: prompt → wait → almost right → correct → wait → open a second agent → they step on the same files → exit 0 → you still will not merge. That last part is the one that broke me. Process finished. Tests maybe green in the agent's story. Diff still not something I would put on main without another human pass. I was paying twice: once for the models, again with my attention. So I built Rig https://github.com/Brasth/Rig . Rig is not a chat box that "codes for you." It is the harness between agents you already use. You keep talking to a parent CLI Codex, Grok, OpenCode, and friends . When the work is real fix, implement, change code , the parent does not dump your messy thread into another model and pray. It turns intent into scoped work. A worker runs that work over MCP. The parent then verifies with real checks. Done means verified, not exit 0 vibes. If one agent in one thread is enough for your life, you do not need this. Rig is for people who already bounce between tools, already try parallel work, and already got burned by "it said done." The spine is boring on purpose: That last step is the product. I do not want another agent that feels finished. I want a control plane that refuses to call it done until checks pass. New default behavior: when the work should split, the parent owns a DAG of disjoint workers . Parallel only when file and resource scopes do not overlap. Children never spawn children. The parent advances the graph, handles ASK/allow/deny, and alone marks the workflow verified after its own checks. So parallelism stays under the parent instead of a pile of nested agents inventing more agents. You can still run single-job mode if you want; adaptive is the default in .rig/harness.toml under orchestration . Demo: https://youtu.be/KuhHMH--oGk https://youtu.be/KuhHMH--oGk Repo: https://github.com/Brasth/Rig https://github.com/Brasth/Rig curl -fsSL https://raw.githubusercontent.com/Brasth/Rig/main/install.sh | bash cd your-repo rig init rig doctor Prefer configuring parent and workers in .rig/harness.toml : parent = "codex" workers codex = false grok = true claude = true cursor = false opencode = false omp = false pi = false agy = false devin = false orchestration mode = "adaptive" max nodes = 12 Enable only workers you actually have installed. Fully quit the parent once after install, open a new thread in that repo, and type a normal prompt for example: Fix the failing tests in tests/test cli.py . Do not use rig run for everyday work. Questions stay on the parent. Side ideas can park in the queue without derailing a live job. Jobs and file ownership live under .rig/ in the repo, not in a chat you already lost. I built Rig because I was tired of babysitting. Same models. Less glue. Free and open source: https://github.com/Brasth/Rig https://github.com/Brasth/Rig Demo again if you want the one-minute version: https://youtu.be/KuhHMH--oGk https://youtu.be/KuhHMH--oGk I am on X as @brasthapp https://x.com/brasthapp if you want to yell at the founder about MCP or verification.