solo-ops
solo-ops
Manages AI team roles using git worktrees + WezTerm tabs. Each role runs in its own isolated worktree (branch team/<name>) and opens as a full-permission AI session in a new WezTerm tab.
For directory layout, task format, and bidirectional communication details, see references/details.md.
Usage
The skill base directory is shown at the top when this skill loads. Run directly with:
python3 <base-dir>/scripts/solo_ops.py <command>
Use tmux backend directly with:
python3 <base-dir>/scripts/solo_ops_tmux.py <command>
Commands
Always run from within the project git repository.
Create a role
python3 <base-dir>/scripts/solo_ops.py create <name>
Creates team/<name> git branch + worktree at .worktrees/<name>/. Generates:
agents/teams/<name>/config.yaml— provider, description, pane trackingagents/teams/<name>/prompt.md— role system prompt (edit this to define the role)agents/teams/<name>/tasks/pending/andtasks/done/
After creating, guide the user to edit prompt.md to define the role's expertise and behavior.
Open a role session
python3 <base-dir>/scripts/solo_ops.py open <name> [claude|codex]
- Copies
prompt.md→CLAUDE.mdin worktree root (auto-injected as system context) - Spawns a new WezTerm tab titled
<name>runningclaude --dangerously-skip-permissions(orcodex --dangerously-bypass-approvals-and-sandbox) - Provider priority: argument >
config.yaml default_provider> claude
tmux variant:
python3 <base-dir>/scripts/solo_ops_tmux.py open <name> [claude|codex|opencode] [--model <model>]
Open all sessions
python3 <base-dir>/scripts/solo_ops.py open-all [claude|codex]
tmux variant:
python3 <base-dir>/scripts/solo_ops_tmux.py open-all [claude|codex|opencode] [--model <model>]
Opens every role that has a config.yaml.
Assign a task
python3 <base-dir>/scripts/solo_ops.py assign <name> "<task description>" [claude|codex]
- Writes
agents/teams/<name>/tasks/pending/<timestamp>-<slug>.md - Auto-opens the role session if not running
- Sends a notification message to the running session via
wezterm cli send-text
tmux variant:
python3 <base-dir>/scripts/solo_ops_tmux.py assign <name> "<task description>" [claude|codex|opencode] [--model <model>]
Reply to a role
python3 <base-dir>/scripts/solo_ops.py reply <name> "<answer>"
Sends a reply to a role's running session. Used when a role has asked a question via ask claude and the main controller wants to respond. The message is prefixed with [Main Controller Reply] so the role AI can identify it.
tmux variant:
python3 <base-dir>/scripts/solo_ops_tmux.py reply <name> "<answer>"
Check status
python3 <base-dir>/scripts/solo_ops.py status
Shows all roles, whether their session is running (by pane-id), and pending task count.
Merge completed work
python3 <base-dir>/scripts/solo_ops.py merge <name>
Merges team/<name> into the current branch with --no-ff. Run delete afterward to clean up.
Delete a role
python3 <base-dir>/scripts/solo_ops.py delete <name>
Removes the worktree and deletes the team/<name> branch.