The new command creates a new git worktree with automatic environment setup, tmux session creation, and AI tool launch. You provide a task description and Open Orchestrator handles the rest -- including generating a branch name from your description.
Usage
bash
owt new "task description" [OPTIONS]Alias: owt n
Arguments
| Argument | Description |
|---|---|
"task description" | A quoted string describing the task (used to auto-generate branch name) |
Options
Branch Options
| Option | Description |
|---|---|
-b, --base <branch> | Base branch to create from (default: current branch) |
--branch <name> | Override auto-generated branch name |
--prefix <prefix> | Override branch prefix (default: based on template) |
AI Tool Options
| Option | Description |
|---|---|
--ai-tool <tool> | AI tool to start: claude, opencode, droid (default: claude) |
--plan-mode | Start Claude in plan mode (safe exploration) |
--workflow | Launch a native plan-first Claude Code workflow (plan mode + plan-then-execute protocol). Implies --plan-mode. Requires a plan-mode-capable tool (e.g. claude) and cannot be combined with --headless. |
Template Options
| Option | Description |
|---|---|
-t, --template <type> | Worktree template: feature, bugfix, hotfix |
Session Options
| Option | Description |
|---|---|
-a, --attach | Attach to the tmux session after creation |
--headless | Create worktree without tmux session (CI/script use) |
-y, --yes | Skip confirmation prompt |
Examples
Basic Usage
bash
# Create a worktree for a new feature
owt new "add user authentication with JWT tokens"This will:
- Generate branch name:
feature/add-user-authentication-with-jwt-tokens - Create the worktree, install deps, start Claude with the task
With a Specific Base Branch
bash
# Branch off develop instead of main
owt new "fix pagination bug on search results" --base developWith a Custom Branch Name
bash
owt new "implement OAuth2 login flow" --branch feature/oauth2-loginUsing Templates
bash
# Bugfix template (uses bugfix/ prefix)
owt new "fix memory leak in WebSocket handler" --template bugfix
# Hotfix template (uses hotfix/ prefix)
owt new "patch critical XSS vulnerability" --template hotfixWith a Different AI Tool
bash
# Use OpenCode instead of Claude
owt new "build REST API endpoints" --ai-tool opencode
# Use Droid
owt new "refactor database layer" --ai-tool droidPlan Mode
bash
# Start Claude in plan mode for exploration
owt new "research best approach for migrating to PostgreSQL" --plan-modePlan-First Workflow
bash
# Launch a native plan-first Claude Code workflow (plan mode + plan-then-execute)
owt new "Refactor the billing module" --workflow--workflow implies --plan-mode, requires a plan-mode-capable tool (e.g. claude), and cannot be combined with --headless.
Attach Immediately
bash
# Create and jump straight into the tmux session
owt new "add dark mode support" --attachHeadless Mode (CI/CD)
bash
# Create worktree without tmux session
owt new "Run security audit" --headless
# Then wait for it to finish
owt wait security-audit --timeout 1200Skip Confirmation
bash
owt new "update API documentation" --yesWhat Happens
When you run owt new "add user authentication":
Branch Name Generated
- Task description is converted to a branch name
- Example:
feature/add-user-authentication - Prefix determined by template (default:
feature/)
Git Worktree Created
- Directory created based on naming pattern
- Branch created from base (default: current branch)
Project Detected
- Identifies project type (Python, Node, Rust, Go, PHP)
- Identifies package manager
Dependencies Installed
- Runs appropriate install command
- Examples:
npm install,uv sync,cargo build
Environment Copied
- Copies
.envfile from main worktree - Adjusts relative paths as needed
- Copies
tmux Session Created
- Session name:
owt-<worktree-name> - Working directory set to worktree path
- Session name:
Keybindings Installed
Alt+sto return to the Control PlaneAlt+mto merge current worktreeAlt+dto delete current worktreeAlt+cto create new worktree
Status Hooks Installed
- For Claude Code and Droid, lifecycle hooks are installed into the worktree's local settings
- Hooks push real-time status updates (WORKING, WAITING, BLOCKED) to the Control Plane
AI Tool Started
- Launches chosen AI tool in the session
- Sends the task description as the initial prompt
Output
✓ Creating worktree for: add user authentication
✓ Branch: feature/add-user-authentication
✓ Detected project type: node (npm)
✓ Installing dependencies...
✓ Copying .env file
✓ Created tmux session: owt-add-user-authentication
✓ Started Claude Code
✓ Sent task to AI agent
Worktree created successfully!
Path: /Users/you/projects/my-app-add-user-authentication
Branch: feature/add-user-authentication
tmux: owt-add-user-authenticationConfiguration
Default behavior can be configured in .worktreerc:
toml
[worktree]
base_directory = "../"
naming_pattern = "{project}-{branch}"
[tmux]
auto_start_ai = true
ai_tool = "claude"
[environment]
auto_install_deps = true
copy_env_file = trueSee Also
owt(Control Plane) -- Visual worktree managerowt wait-- Wait for headless agents to finishowt list-- List worktreesowt delete-- Delete worktrees- Configuration -- Configure defaults