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/orch
orch "fix the typo in the README"
orch --ask "where is the CLI entrypoint?"
orch --quick "fix the typo in the README" --agent claude

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

  1. Triage
  2. Research
  3. Plan
  4. Tests
  5. Code
  6. Commit
test-writer ⇄ test-critic   →  tests frozen
code-writer ⇄ test-runner   →  commit on pass

Both 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 codeyes (quick or worktree)yes, in placenono
Artifacts / worktreecomplex onlynonono
Best forreal taskstiny known editsquestionssanity-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 --ask create none of this — no .orch/ directory, no worktree, no commits.

Run the pipeline.

Still developing. Come contribute.