Skip to content

██████╗ ██████╗ ███████╗███╗ ██╗ ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ╚██████╔╝██║ ███████╗██║ ╚████║ ╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗███████╗████████╗██████╗ █████╗ ████████╗ ██████╗ ██████╗ ██╔═══██╗██╔══██╗██╔════╝██║ ██║██╔════╝██╔════╝╚══██╔══╝██╔══██╗██╔══██╗╚══██╔══╝██╔═══██╗██╔══██╗ ██║ ██║██████╔╝██║ ███████║█████╗ ███████╗ ██║ ██████╔╝███████║ ██║ ██║ ██║██████╔╝ ██║ ██║██╔══██╗██║ ██╔══██║██╔══╝ ╚════██║ ██║ ██╔══██╗██╔══██║ ██║ ██║ ██║██╔══██╗ ╚██████╔╝██║ ██║╚██████╗██║ ██║███████╗███████║ ██║ ██║ ██║██║ ██║ ██║ ╚██████╔╝██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝

A multi-provider cockpit for parallel AI coding. Supervise Claude Code, Pi, Droid, and OpenCode across isolated git worktrees from one control plane.

git clone https://github.com/gitpcl/openorchestrator.git && cd openorchestrator
terminal
$ owt new "Add user authentication with JWT"
✓ Branch: feat/add-user-auth-jwt
✓ Worktree created at ../myapp-feat-add-user-auth-jwt
✓ Detected: node (npm) → installing deps...
✓ tmux session: owt-add-user-auth-jwt
✓ Started Claude Code → sent task
$ owt
CONTROL PLANE ▸ READY TO SHIP (1) ▸ IN FLIGHT (1)
Control Plane UI — Textual decision surface with three prioritized lanes (NEEDS YOU / READY TO SHIP / IN FLIGHT) and verb-per-row actions
Pluggable Backends — tmux by default, opt in to the herdr multiplexer with --herdr or [backend] mode
Branch Modeowt branch runs an agent in the current checkout, no worktree, zero extra disk
Conflict Guard — real-time file overlap detection between parallel agents; warns before merge
Plan-First Workflowowt new "task" --workflow launches a native plan-first Claude Code workflow (plan mode + plan-then-execute) in the worktree
Usage Insightsowt usage shows local-only counts of control-plane launches, worktrees started, and native workflows — nothing leaves your machine
Agent Broadcastowt send --all fans out instructions to all active agents at once
Merge Queueowt queue shows optimal merge order; --ship ships all completed work
Context Bridgeowt note shares context across all agent sessions via CLAUDE.md injection
Headless Modeowt new --headless for CI/CD; owt wait polls until agent finishes
Ship in one shotowt ship auto-commits, merges to main, and tears down worktree + session
Multi-AI support — auto-detects Claude Code, Pi, Droid, and OpenCode (plus codex, gemini-cli, aider, amp, kilo-code) with a picker when multiple are found
Two-phase merge — catch conflicts in feature branch with file overlap warnings, then auto-clean
Project detection — Python, Node.js, Rust, Go, PHP with auto dep install
Templates — pre-configured workflows for feature, bugfix, and hotfix tasks
Multi-palette Theming — OSC 11 terminal background auto-detection across multiple palettes; --theme to override
20+Commands
~15KLines of Code
7Dependencies

The Control Plane

Run owt to launch the decision surface. Three prioritized lanes, a verb action on every row — empty lanes stay hidden so the most important thing is always on top.

open-orchestrator
  open-orchestrator · 4 rows · 14:32:08

  ▸ NEEDS YOU      (1)
  ▶ auth-jwt        merge conflict — needs manual resolution   [f] [a]

  ▸ READY TO SHIP  (2)
    fix-login       +3 commits · queued #1/2                   [s] [a]
    docs-update     +1 commits · queued #2/2                   [s] [a]

  ▸ IN FLIGHT      (1)
    api-refactor    45m · opencode · Refactoring REST routes   [a]

  ↑↓ nav | s ship | a attach | f fix | m merge | n new | q quit

All Commands

20+ commands, 7 dependencies. Lean surface, no bloat.

owtLaunch the Control Plane
owt new "task"Create worktree + AI agent
owt new --workflowNative plan-first workflow
owt branch "task"Branch session, no worktree
owt listList worktrees with status
owt switch <name>Jump to tmux session
owt attach <name>Hand off via active backend
owt send <name> "msg"Message the AI agent
owt merge <name>Two-phase merge + conflict guard
owt ship <name>Commit + merge + delete
owt delete <name>Delete worktree + session
owt queueOptimal merge order
owt wait <name>Poll until agent finishes
owt note "msg"Share context across agents
owt sync [name]Sync with upstream
owt cleanupRemove stale worktrees
owt usageLocal-only usage counts
owt config validateValidate config file
owt config showDisplay effective config
owt db purgeDelete old messages
owt db vacuumOptimize the database
owt db healthDatabase diagnostics
owt doctorDiagnose orphaned resources
owt versionShow version