Open Orchestrator supports multiple AI coding tools, allowing you to choose the best tool for each task or use your preferred tool across all worktrees.
Supported AI Tools
Open Orchestrator natively supports four AI coding tools:
Claude Code (Default)
Claude Code is Anthropic's official CLI for Claude. It is the default AI tool in Open Orchestrator.
# Create worktree with Claude Code (default)
owt new "Add user authentication"
# Explicitly specify Claude
owt new "Add user authentication" --ai-tool claudePi
Pi is a TUI agent supported alongside Claude Code, OpenCode, and Droid. It is auto-detected via which pi and selectable with --ai-tool pi. As a TUI agent, it submits prompts via Enter, which makes it especially relevant under the herdr backend. Pi is wired through the same AgentLauncher / ToolRegistry path as the other tools, so it behaves like any other supported tool.
# Create worktree with Pi
owt new "Add caching layer" --ai-tool piOpenCode
OpenCode is a Go-based AI coding assistant.
# Create worktree with OpenCode
owt new "Build REST API" --ai-tool opencodeDroid
Droid is Factory's AI coding tool with configurable autonomy levels.
# Create with default autonomy
owt new "Refactor user service" --ai-tool droidDroid Autonomy Levels
| Level | Description |
|---|---|
low | Asks for confirmation on most actions |
medium | Balanced automation with checkpoints |
high | Maximum autonomy, minimal confirmations |
Auto-Detection from PATH
Open Orchestrator automatically detects which AI tools are available by checking your PATH:
which claude # Claude Code
which pi # Pi
which opencode # OpenCode
which droid # DroidIf the configured AI tool is not found in PATH, you will get an error when creating a worktree that uses it.
AI Tool Picker (Alt+c)
The AI tool picker is a popup menu accessible from any worktree session by pressing Alt+c. It shows all detected AI tools and allows you to switch the active tool for the current worktree.
The picker displays both the four natively supported tools and additional tools it detects in your PATH:
| Tool | Detection |
|---|---|
| Claude Code | which claude |
| Pi | which pi |
| OpenCode | which opencode |
| Droid | which droid |
| Codex | which codex |
| Gemini CLI | which gemini |
| Aider | which aider |
| Amp | which amp |
| Kilo Code | which kilo |
The picker only shows tools that are actually installed and available.
Command Generation
Open Orchestrator generates the correct launch command for each AI tool. By default, agents run with skip-permissions enabled for autonomous operation:
| Tool | Generated Command |
|---|---|
| Claude Code | claude --dangerously-skip-permissions |
| Claude Code (plan mode) | claude --permission-mode plan |
| Pi | pi |
| Pi (headless) | pi -p |
| OpenCode | opencode |
| OpenCode (custom config) | opencode --config <path> |
| Droid | droid --skip-permissions-unsafe |
| Droid (with auto level) | droid --auto-level <level> |
Pi is a TUI agent: the task prompt is submitted interactively via Enter rather than through a skip-permissions or prompt flag, which is why its launch command takes no extra arguments. This makes it a natural fit for the herdr backend.
Skip-permissions is the default because OWT-managed worktrees are isolated branches -- agents can work autonomously without blocking on permission prompts.
Orchestrated Agent Sessions
Orchestrated and batch agents start Claude Code in interactive mode (no -p flag). The task prompt is delivered separately via tmux paste-buffer after the AI tool signals readiness. This keeps agent sessions patchable from the Control Plane -- you can jump in, interact, and leave while the orchestrator continues coordination.
See tmux Integration — Paste-Buffer for details on the prompt delivery mechanism.
Default AI Tool Configuration
Set your default AI tool in .worktreerc:
[tmux]
ai_tool = "claude" # claude, pi, opencode, droid
auto_start_ai = trueTool-Specific Configuration
# Claude Code settings
[claude]
# Claude-specific options configured here
# Pi needs no extra configuration -- it launches as a bare `pi`
# Droid settings
[droid]
default_auto_level = "medium" # low, medium, high
skip_permissions_unsafe = false
# OpenCode settings
[opencode]
config_path = "~/.config/opencode/opencode.json"Switching AI Tools per Worktree
Each worktree can use a different AI tool:
# Complex reasoning: Claude
owt new "Design authentication architecture" --ai-tool claude
# API work: OpenCode
owt new "Build payment gateway" --ai-tool opencode
# Automated refactoring: Droid with high autonomy
owt new "Clean up legacy code" --ai-tool droid
# Quick TUI session: Pi
owt new "Add a caching layer" --ai-tool piYou can also switch tools on the fly using the AI tool picker (Alt+c) from within any worktree session.
Mixed Tool Workflows
You can orchestrate different AI tools simultaneously:
# Create worktrees with different tools
owt new "Design auth flow" --ai-tool claude
owt new "Implement REST endpoints" --ai-tool opencode
owt new "Write integration tests" --ai-tool droid
owt new "Add a caching layer" --ai-tool pi
# Monitor all in the Control Plane
owtCustom Tool Registration
Beyond the four built-in tools, you can register any AI coding tool via configuration -- no code changes needed. Custom tools are defined in .worktreerc under [tools.<name>]:
[tools.mytool]
binary = "my-ai-tool"
command_template = "{binary} --interactive"
prompt_flag = "-p"
supports_hooks = false
install_hint = "Install from https://example.com/mytool"
known_paths = ["~/.local/bin/mytool", "/opt/mytool/bin/mytool"]Custom Tool Options
| Option | Type | Description |
|---|---|---|
binary | string | Executable name (looked up in PATH) |
command_template | string | Command template with {binary} placeholder |
prompt_flag | string | Flag to pass a prompt string (e.g., -p) |
supports_hooks | bool | Whether this tool supports OWT status hooks |
install_hint | string | Installation instructions shown if binary not found |
known_paths | array | Additional paths to search beyond PATH |
Once registered, custom tools work like built-in ones:
owt new "Build feature" --ai-tool mytoolThey also appear in the AI tool picker (Alt+c) and are auto-detected at startup if the binary is found.
AI Tool Requirements
Claude Code
- Install:
npm install -g @anthropic-ai/claude-codeor via Anthropic - Auth: Run
claudeand follow authentication flow - Verify:
which claude
Pi
- Verify:
which pi - Usage: A TUI agent -- prompts are submitted interactively via Enter, which suits the herdr backend
OpenCode
- Install: See OpenCode documentation
- Config: Create config file at
~/.config/opencode/opencode.json - Verify:
which opencode
Droid
- Install: See Droid documentation
- Auth: Run
droidand follow authentication flow - Verify:
which droid
Troubleshooting
AI Tool Not Starting
Verify the tool is installed:
bashwhich claude which pi which opencode which droidPatch in to the worktree session from the Control Plane to see error messages.
Check your
.worktreercconfiguration.
Wrong Tool Started
Use the AI tool picker (Alt+c) to switch to the correct tool, or:
- Kill the current process in the tmux pane (
Ctrl+C) - Start the correct tool manually
Configuration Not Applied
Ensure your .worktreerc is in the project root:
ls -la .worktreerc