OMQ Teams Skill
Spawn N CLI worker processes in tmux panes to execute tasks in parallel. Supports claude, codex, and gemini agent types.
/omq-teams is a legacy compatibility skill for the CLI-first runtime: use omq team ... commands (not deprecated MCP runtime tools).
Usage
/oh-my-qoder:omq-teams N:claude "task description"
/oh-my-qoder:omq-teams N:codex "task description"
/oh-my-qoder:omq-teams N:gemini "task description"
Parameters
- N - Number of CLI workers (1-10)
- agent-type -
claude(Claude CLI),codex(OpenAI Codex CLI), orgemini(Google Gemini CLI) - task - Task description to distribute across all workers
Examples
/omq-teams 2:claude "implement auth module with tests"
/omq-teams 2:codex "review the auth module for security issues"
/omq-teams 3:gemini "redesign UI components for accessibility"
Requirements
- tmux binary must be installed and discoverable (
command -v tmux) when running from a plain terminal; classic tmux sessions reuse the current tmux surface. - cmux surface optional for in-place native splits (
CMUX_SURFACE_IDset without$TMUX). Plain terminals still use the detached tmux fallback. - claude CLI:
npm install -g @anthropic-ai/claude-code - codex CLI:
npm install -g @openai/codex - gemini CLI:
npm install -g @google/gemini-cli
Workflow
Phase 0: Verify prerequisites
Check the active multiplexer before claiming tmux is missing. If $TMUX is empty and CMUX_SURFACE_ID is also empty, check tmux explicitly:
command -v tmux >/dev/null 2>&1
- If the plain-terminal tmux check fails, report that tmux is not installed and stop.
- If
$TMUXis set,omq teamcan reuse the current tmux window/panes directly. - If
$TMUXis empty butCMUX_SURFACE_IDis set, report that the user is running inside cmux. Do not say tmux is missing or that they are "not inside tmux";omq teamwill create native cmux splits for workers. - If neither
$TMUXnorCMUX_SURFACE_IDis set, report that the user is in a plain terminal.omq teamcan still launch a detached tmux session, but if they specifically want in-place pane/window topology they should start from a classic tmux session first. - If you need to confirm the active tmux session, use:
tmux display-message -p '#S'
Phase 1: Parse + validate input
Extract:
N— worker count (1-10)agent-type—claude|codex|geminitask— task description
Validate before decomposing or running anything:
- Reject unsupported agent types up front.
/omq-teamsonly supportsclaude,codex, andgemini. - If the user asks for an unsupported type such as
expert, explain that/omq-teamslaunches external CLI workers only. - For native Qoder CLI team agents/roles, direct them to
/oh-my-qoder:teaminstead.
Phase 2: Decompose task
Break work into N independent subtasks (file- or concern-scoped) to avoid write conflicts.
Phase 2.5: Resolve workspace root for multi-repo plans
omq team launches all workers with one shared working directory. For single-repo
tasks, the current repo is usually correct. For multi-repo tasks, especially when a
plan lives in one repo but the implementation touches sibling repos, resolve the
working directory before launch:
- If the task references a plan artifact under one repo (for example
tool/.omq/plans/task-1200-gwd-gifs.md) and target paths in sibling repos (for exampleapi/andadmin/), choose the shared workspace root that contains all participating repos (for example the parentinter/directory). - Use an absolute plan path in the task text so the workers can still find the
plan after
--cwdchanges the launch directory. - Include the explicit repo paths or repo names in the task text and subtasks.
- Do not anchor the launch cwd to only the repo containing
.omq/plans/...when target repos are siblings; that strandscodex,claude, andgeminiworkers in the plan repo instead of the implementation workspace. - If no safe shared workspace root can be identified, do not launch
/omq-teams. Report the single-cwd constraint and ask for, or derive from evidence, the intended workspace root.
Phase 3: Start CLI team runtime
Activate mode state (recommended):
state_write(mode="team", current_phase="team-exec", active=true)
Start workers via CLI:
omq team <N>:<claude|codex|gemini> "<task>"
For the multi-repo case resolved in Phase 2.5, launch from the shared workspace root
with the existing --cwd contract and keep the plan reference absolute:
omq team <N>:<claude|codex|gemini> "<task with absolute plan path and explicit repo paths>" --cwd <workspace-root>
Team name defaults to a slug from the task text (example: review-auth-flow).
After launch, verify the command actually executed instead of assuming Enter fired. Check pane output and confirm the command or worker bootstrap text appears in pane history:
tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{pane_id} #{pane_current_command}'
tmux capture-pane -pt <pane-id> -S -20
Do not claim the team started successfully unless pane output shows the command was submitted.
Phase 4: Monitor + lifecycle API
omq team status <team-name>
omq team api list-tasks --input '{"team_name":"<team-name>"}' --json
Use omq team api ... for task claiming, task transitions, mailbox delivery, and worker state updates.
Phase 5: Shutdown (only when needed)
omq team shutdown <team-name>
omq team shutdown <team-name> --force
Use shutdown for intentional cancellation or stale-state cleanup. Prefer non-force shutdown first.
Phase 6: Report + state close
Report task results with completion/failure summary and any remaining risks.
state_write(mode="team", current_phase="complete", active=false)
Deprecated Runtime Note
Legacy MCP runtime tools are deprecated for execution:
omq_run_team_startomq_run_team_statusomq_run_team_waitomq_run_team_cleanup
If encountered, switch to omq team ... CLI commands.
Error Reference
| Error | Cause | Fix |
|---|---|---|
not inside tmux |
Requested in-place pane topology from a non-tmux surface | Start tmux and rerun, or let omq team use its detached-session fallback |
cmux surface detected |
Running inside cmux without $TMUX |
Use the normal omq team ... flow; OMQ will create native cmux worker splits |
Unsupported agent type |
Requested agent is not claude/codex/gemini/grok/cursor | Use claude, codex, gemini, grok, or cursor; for native Qoder CLI agents use /oh-my-qoder:team |
codex: command not found |
Codex CLI not installed | npm install -g @openai/codex |
gemini: command not found |
Gemini CLI not installed | npm install -g @google/gemini-cli |
Team <name> is not running |
stale or missing runtime state | omq team status <team-name> then omq team shutdown <team-name> --force if stale |
status: failed |
Workers exited with incomplete work | inspect runtime output, narrow scope, rerun |
Relationship to /team
| Aspect | /team |
/omq-teams |
|---|---|---|
| Worker type | OMQ file-based team agents (MCP tools) | claude / codex / gemini CLI processes in tmux |
| Invocation | team_* MCP tools + Agent spawning |
omq team [N:agent] + status + shutdown + api |
| Coordination | File-based task board + atomic claim protocol | tmux worker runtime + CLI API state files |
| Use when | You want MCP-native team orchestration | You want external CLI worker execution |