orch
The local multi-agent coding pipeline.
Turns a task into staged, verified, committed code — triage for small fixes, full pipeline + worktree for complex work — with Cursor, Claude, or agn.
You: orch "add a --verbose flag that streams agent output to stderr"
orch: triage: complex — staging a worktree and test loop
orch: [test-writer 1/5] wrote 3 cases covering the new flag
orch: [code-writer 2/5] implemented the flag; tests pass
orch: commit: a1b2c3d on orch/verbose-flag-x7q2
Install
Get orch on your PATH. Requires agent (Cursor), claude (Claude Code), or agn on PATH.
npm install -g @welluable/orchorch "fix the typo in the README"orch --ask "where is the CLI entrypoint?"orch --quick "fix the typo in the README" --agent claudeWhy orch?
- Triage respects small work. A one-line typo fix doesn't get a worktree, a test-writer, or a five-round loop — triage routes it straight to a quick-fix agent editing your current tree.
- Verify before you implement. Tests or acceptance criteria are written and frozen before any implementation code exists, so "done" means "passes the check," not "the agent said so."
- Isolated implementation. Complex tasks run in a persistent sibling git worktree on an orch/<slug> branch, so your working tree stays untouched until you decide to merge.
- Agent-agnostic backends. Pick the CLI you already trust with --agent cursor|claude|agn — orch owns the pipeline, the agent CLI does the reading and writing.
- Readable runs. Every stage prints a one-paragraph natural-language summary of what it did; add -v if you also want the raw thinking/output deltas.
- Escape hatches when you don't need the pipeline. --ask for a read-only question, --quick for a direct edit — both skip triage and artifacts entirely.
How it works
Every run starts at triage. Complex work gets research, plan, worktree, and two verify loops before commit.
- Triage
- Research
- Plan
- Tests
- Code
- Commit
test-writer ⇄ test-critic → tests frozen
code-writer ⇄ test-runner → commit on passBoth loops iterate up to --max-rounds (default 5). If a loop exhausts its rounds, orch exits non-zero and leaves the worktree and status.md in place to inspect.
Execution modes
Same binary. Pick the path that matches the work.
| Default | --quick | --ask | --dry-run | |
|---|---|---|---|---|
| Writes code | yes (quick or worktree) | yes, in place | no | no |
| Artifacts / worktree | complex only | no | no | no |
| Best for | real tasks | tiny known edits | questions | sanity-checking setup |
--dry-run checks the selected agent CLI is on PATH and exits without running the pipeline.
Artifacts and worktrees
Complex tasks get a run directory under the invocation cwd, plus a sibling git worktree and branch:
<invocation-cwd>/.orch/<slug>/
research.md
task.md
status.md
<parent-of-repo>/<repo-name>-<slug> # worktree
orch/<slug> # branch- The worktree is never auto-deleted — it stays in place after the run so you can inspect, continue, or merge it whenever you’re ready.
- Default,
--quick, and--askcreate none of this — no.orch/directory, no worktree, no commits.