team
Skill5 starsChanged 12 days agoMITView on GitHub
N coordinated agents on shared task list using tmux-based orchestration
- Deletes or force-pushes
45 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- fx/skillstheir own version, first seen Nov 8, 2026
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 8, 2026
- lohi-ai/babysittheir own version, first seen Nov 1, 2026
- newkirkjosh/skillstheir own version, first seen Nov 1, 2026
- ethanhq/cc-fleettheir own version, first seen Oct 25, 2026
- atm301/one-person-agency-aitheir own version, first seen Oct 25, 2026
Used with
Projects with it also use community-led-growth, ph-community-outreach and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
nicepkgSkillcommunity-led-growth
Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.
Also in 5 projects that use this
nicepkgSkillph-community-outreach
Engage Reddit, Indie Hackers, Hacker News and other communities for Product Hunt launches. Use this skill to identify relevant communities, craft appropriate posts, and drive cross-platform engagement without appearing spammy.
Also in 5 projects that use this
xfstudioSkillmicro-saas-launcher
Expert in launching small, focused SaaS products fast - the indie hacker approach to building profitable software. Covers idea validation, MVP development, pricing, launch strategies, and growing to sustainable revenue. Ship in weeks, not months. Use when: micro saas, indie hacker, small saas, side project, saas mvp.
Also in 5 projects that use this
mastepanoskiSkillux-audit-rethink
Comprehensive UX audit using IxDF's 7 factors, 5 usability characteristics, and 5 interaction dimensions. Holistic evaluation with redesign proposals based on user-centered design principles.
Also in 5 projects that use this
ncklrsSkillseo-content-strategist
Expert SEO content strategy for SaaS and B2B sites. Use when doing keyword research, planning content clusters, creating pillar pages, optimizing on-page SEO, fixing technical SEO issues, building links, refreshing content, implementing programmatic SEO, mapping search intent, optimizing for SERP features, or measuring content performance. Use for SEO audits, content gap analysis, and organic growth strategy.
Also in 5 projects that use this
- +6 more from nicepkg
Other versions45 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- Gopyr/gopyr-skills-hub★ 013% same
Wrote their own version · 44
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- MaxMiksa/Auto-Company★ 3.2ksame name
- MaxMiksa/Autonomous-Company★ 3.2ksame name
- zereight/gitlab-mcp★ 2.1ksame name
- nicepkg/ctxport★ 629same name
- ansari-project/codev★ 298same name
- cluesmith/codev★ 298same name
- shenysun/skills-manager★ 243same name
34 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository119 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- accessibilitySkill
- frontend-designSkill
- python-background-jobsSkill
- python-executorSkill
- python-testing-patternsSkill
- seoSkill
- ai-slop-cleanerSkill
- analyzeSkill
- api-and-interface-designSkill
- ask-claudeSkill
- ask-geminiSkill
- autopilotSkill
- browser-testing-with-devtoolsSkill
- build-fixSkill
- cancelSkill
- ci-cd-and-automationSkill
- clawd-change-workflowSkill
- code-review-and-qualitySkill
- code-reviewSkill
- code-simplificationSkill
- configure-notificationsSkill
- context-engineeringSkill
- debugging-and-error-recoverySkill
- deep-interviewSkill
- deepsearchSkill
- deprecation-and-migrationSkill
- doctorSkill
- documentation-and-adrsSkill
- ecomodeSkill
- frontend-ui-engineeringSkill
- frontend-ui-uxSkill
- git-masterSkill
- git-workflow-and-versioningSkill
- helpSkill
- hudSkill
- idea-refineSkill
- incremental-implementationSkill
- intent_routerSkill
- keyword_registrySkill
- mode_stateSkill
- noteSkill
- omx-setupSkill
- performance-optimizationSkill
- pipeline_orchestratorSkill
- pipelineSkill
- planning-and-task-breakdownSkill
- planSkill
- ralph-initSkill
- ralph_loopSkill
- ralphSkill
- ralplanSkill
- android-reverse-engineeringSkill
- api-securitySkill
- apk-reverseSkill
- attack-chainSkill
- binary-diffSkill
- browser-automationSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
66 rules. 0 are common, 24 are distinctive, and 42 are very specific to this project.
0
Common
Most of the 32 edited versions we read keep these.
24
Distinctive
This author's own choices. Worth a look.
42
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 14
Use Codex native subagents for bounded, in-session parallelism where one leader thread can fan out a few independent subtasks and wait for …
- Very specific: line 15
Use omx team when you need durable tmux workers, shared task state, mailbox/dispatch coordination, worktrees, explicit lifecycle control, …
- Distinctive: line 22
Default to concise, evidence-dense progress and completion reporting unless the user or risk level requires more detail.
- Distinctive: line 23
Treat newer user task updates as local overrides for the active workflow branch while preserving earlier non-conflicting constraints.
- Distinctive: line 24
If correctness depends on additional inspection, retrieval, execution, or verification, keep using the relevant tools until the team …
- Very specific: line 27
When user triggers $team, the agent must:
- Very specific: line 30
Avoid replacing the flow with in-process spawn_agent fanout
- Distinctive: line 31
Verify startup and surface concrete state/pane evidence
- Distinctive: line 32
Keep team state alive until workers are terminal (unless explicit abort)
- Very specific: line 35
If omx team is unavailable, stop with a hard error.
- Very specific: line 57
Canonical launch: use plain omx team ... / $team ...
- Distinctive: line 58
Verification ownership: keep one lane focused on tests, regression coverage, and evidence before shutdown.
- Very specific: line 59
Escalation: start a separate omx ralph ...
- Very specific: line 81
Before running $team, confirm:
- Very specific: line 86
If running repo-local node bin/omx.js ..., run npm run build after src changes
- Very specific: line 87
Check HUD pane count in the leader window and avoid duplicate hud --watch panes before split
- Very specific: line 95
If duplicates exist, remove extras before omx team to prevent HUD ending up in worker stack.
- Very specific: line 99
Before launching omx team, require a grounded context snapshot:
- Very specific: line 103
If none exists, create .omx/context/{slug}-{timestamp}.md (UTC YYYYMMDDTHHMMSSZ) with:
- Very specific: line 110
If ambiguity remains high, run explore first for brownfield facts, then run $deep-interview --quick <task> before team launch.
- Distinctive: line 112
Do not start worker panes until this gate is satisfied.
- Very specific: line 118
When $team is used as a follow-up mode from ralplan, carry forward the approved plan's explicit available-agent-types roster and convert it …
- Distinctive: line 120
keep worker-role choices inside the known roster
- Distinctive: line 125
if the ideal role is unavailable, choose the closest role from the roster and say so
- Very specific: line 148
Wait for worker readiness (capture-pane polling)
- Very specific: line 149
Write per-worker inbox.md and trigger via tmux send-keys
- Distinctive: line 178
Do not assume a frontier or spark model from recency or model-family heuristics.
- Very specific: line 179
Use OMX_DEFAULT_FRONTIER_MODEL for frontier-default guidance.
- Very specific: line 180
Use OMX_DEFAULT_SPARK_MODEL for spark/low-complexity worker-default guidance.
- Very specific: line 185
When the leader assigns teammate roles/tasks, OMX allocates per-worker reasoning effort dynamically from the resolved worker role (low, …
- Distinctive: line 190
Remove duplicate/conflicting model flags
- Very specific: line 193
If explicit reasoning exists, preserve canonical -c model_reasoning_effort="<level>".
- Very specific: line 197
Follow this exact lifecycle when running $team:
- Distinctive: line 199
Start team and verify startup evidence (team line, tmux target, panes, ACK mailbox)
- Distinctive: line 201
Wait for terminal task state before shutdown:
- Very specific: line 205
Only then run omx team shutdown <team>
- Distinctive: line 206
Verify shutdown evidence and state cleanup
- Very specific: line 208
Do not run shutdown while workers are actively writing updates unless user explicitly requested abort/cancel.
- Distinctive: line 209
Do not treat ad-hoc pane typing as primary control flow when runtime/state evidence is available.
- Very specific: line 223
If the leader gets a stale/team-stalled nudge, immediately run omx team status <team-name> before taking any manual intervention.
- Very specific: line 231
Use omx team ... runtime lifecycle commands for orchestration.
- Very specific: line 232
Use omx team api ... --json for mailbox/task mutations.
- Very specific: line 233
Verify delivery via mailbox/state evidence (mailbox/*.json, task status, omx team status).
- Very specific: line 237
MUST NOT: use direct tmux send-keys as the primary mechanism to deliver instructions/messages.
- Very specific: line 239
MUST: prefer durable state writes + runtime dispatch (dispatch/requests.json, mailbox, inbox).
- Very specific: line 285
Use omx team api for machine-readable mutation/reads instead of legacy team_* MCP tools.
- Very specific: line 311
Write full assignment to worker inbox.md
- Very specific: line 321
After completing task work and before reporting completion, workers MUST commit: git add -A && git commit -m "task: <task-subject>"
- Distinctive: line 324
If a worker forgets to commit, the runtime auto-commits as a fallback, but explicit commits are preferred
- Very specific: line 330
Never instruct workers to read tasks/{id}.json
- Very specific: line 355
When present, overrides OMX_TEAM_WORKER_CLI
- Distinctive: line 369
Avoid repeated blind Enter spam.
- Very specific: line 373
Use only after checking omx team status <team> and mailbox/state evidence:
- Very specific: line 377
If a larger-tail read or bounded summary would help, prefer explicit opt-in inspection via omx sparkshell --tmux-pane %<worker-pane> …
- Distinctive: line 378
If the pane is stuck in an interactive state, safely return to idle prompt first:
- Distinctive: line 396
Verify worker process alive and not stuck on trust prompt
- Very specific: line 417
Verify whether .omx/state/team/<team>/ exists
- Very specific: line 424
Use shutdown only for terminal completion or explicit abort
- Distinctive: line 425
If aborting, expect late worker writes to fail and treat ENOENT as expected teardown artifact
- Distinctive: line 437
Run from leader pane:
- Distinctive: line 456
Do not kill leader pane
- Very specific: line 457
Do not kill HUD pane (omx hud --watch) unless intentionally restarting HUD
- Distinctive: line 461
When operating this skill, provide concrete progress evidence:
- Very specific: line 468
Do not claim success without file/pane evidence.
- Very specific: line 469
Do not claim clean completion if shutdown occurred with in_progress>0.
- Very specific: line 470
Use omx sparkshell --tmux-pane ...
“Common” is measured: kept by at least 6 in 10 of the 32 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Team Skill
$team is the tmux-based parallel execution mode for OMX. It starts real worker Codex and/or Claude CLI sessions in split panes and coordinates them through .omx/state/team/... files plus CLI team interop (omx team api ...) and state files.
This skill is operationally sensitive. Treat it as an operator workflow, not a generic prompt pattern.
Team vs Native Subagents
- Use Codex native subagents for bounded, in-session parallelism where one leader thread can fan out a few independent subtasks and wait for them directly.
- Use
omx teamwhen you need durable tmux workers, shared task state, mailbox/dispatch coordination, worktrees, explicit lifecycle control, or long-running parallel execution that must survive beyond one local reasoning burst. - Native subagents can complement team/ralph execution, but they do not replace the tmux team runtime's stateful coordination contract.
What This Skill Must Do
GPT-5.4 Guidance Alignment
- Default to concise, evidence-dense progress and completion reporting unless the user or risk level requires more detail.
- Treat newer user task updates as local overrides for the active workflow branch while preserving earlier non-conflicting constraints.
- If correctness depends on additional inspection, retrieval, execution, or verification, keep using the relevant tools until the team workflow is grounded.
- Continue through clear, low-risk, reversible next steps automatically; ask only when the next step is materially branching, destructive, or preference-dependent.
When user triggers $team, the agent must:
- Invoke OMX runtime directly with
omx team ... - Avoid replacing the flow with in-process
spawn_agentfanout - Verify startup and surface concrete state/pane evidence
- Keep team state alive until workers are terminal (unless explicit abort)
- Handle cleanup and stale-pane recovery when needed
If omx team is unavailable, stop with a hard error.
Invocation Contract
omx team [N:agent-type] "<task description>"Examples:
omx team 3:executor "analyze feature X and report flaws"
omx team "debug flaky integration tests"
omx team "ship end-to-end fix with verification"Team-first launch contract
omx team ... is now the canonical launch path for coordinated execution.
Team mode should carry its own parallel delivery + verification lanes without
requiring a separate linked Ralph launch up front.
- Canonical launch: use plain
omx team .../$team ...for coordinated workers. - Verification ownership: keep one lane focused on tests, regression coverage, and evidence before shutdown.
- Escalation: start a separate
omx ralph .../$ralph ...only when a later manual follow-up still needs a persistent single-owner fix/verification loop. - Deprecation:
omx team ralph ...has been removed. Use plainomx team ...for team execution or runomx ralph ...separately when you explicitly want a later Ralph loop.
Claude teammates (v0.6.0+)
Important: N:agent-type (for example 2:executor) selects the worker role prompt, not the worker CLI (codex vs claude).
To launch Claude teammates, use the team worker CLI env vars:
# Force all teammates to Claude CLI
OMX_TEAM_WORKER_CLI=claude omx team 2:executor "update docs and report"
# Mixed team (worker 1 = Codex, worker 2 = Claude)
OMX_TEAM_WORKER_CLI_MAP=codex,claude omx team 2:executor "split doc/code tasks"
# Auto mode: Claude is selected when worker launch args/model contains 'claude'
OMX_TEAM_WORKER_CLI=auto OMX_TEAM_WORKER_LAUNCH_ARGS="--model claude-..." omx team 2:executor "run mixed validation"Preconditions
Before running $team, confirm:
tmuxinstalled (tmux -V)- Current leader session is inside tmux (
$TMUXis set) omxcommand resolves to the intended install/build- If running repo-local
node bin/omx.js ..., runnpm run buildaftersrcchanges - Check HUD pane count in the leader window and avoid duplicate
hud --watchpanes before split
Suggested preflight:
tmux list-panes -F '#{pane_id}\t#{pane_start_command}' | rg 'hud --watch' || trueIf duplicates exist, remove extras before omx team to prevent HUD ending up in worker stack.
Pre-context Intake Gate
Before launching omx team, require a grounded context snapshot:
- Derive a task slug from the request.
- Reuse the latest relevant snapshot in
.omx/context/{slug}-*.mdwhen available. - If none exists, create
.omx/context/{slug}-{timestamp}.md(UTCYYYYMMDDTHHMMSSZ) with:- task statement
- desired outcome
- known facts/evidence
- constraints
- unknowns/open questions
- likely codebase touchpoints
- If ambiguity remains high, run
explorefirst for brownfield facts, then run$deep-interview --quick <task>before team launch.
Do not start worker panes until this gate is satisfied; if forced to proceed quickly, state explicit scope/risk limitations in the launch report.
For simple read-only brownfield lookups during intake, follow active session guidance: when USE_OMX_EXPLORE_CMD is enabled, prefer omx explore with narrow, concrete prompts; otherwise use the richer normal explore path and fall back normally if omx explore is unavailable.
Follow-up Staffing Contract
When $team is used as a follow-up mode from ralplan, carry forward the approved plan's explicit available-agent-types roster and convert it into concrete staffing guidance before launch:
- keep worker-role choices inside the known roster
- state the recommended headcount and role counts
- state the suggested reasoning level for each lane when available
- explain why each lane exists (delivery, verification, specialist support)
- include an explicit launch hint (
omx team N "<task>"/$team N "<task>") for the coordinated team run; mention a later separate Ralph follow-up only when genuinely needed - if the ideal role is unavailable, choose the closest role from the roster and say so
Current Runtime Behavior (As Implemented)
omx team currently performs:
- Parse args (
N,agent-type, task) - Sanitize team name from task text
- Initialize team state:
.omx/state/team/<team>/config.json.omx/state/team/<team>/manifest.v2.json.omx/state/team/<team>/tasks/task-<id>.json
- Compose team-scoped worker instructions file at:
.omx/state/team/<team>/worker-agents.md- Uses project
AGENTS.mdcontent (if present) + worker overlay, without mutating projectAGENTS.md
- Resolve canonical shared state root from leader cwd (
<leader-cwd>/.omx/state) - Split current tmux window into worker panes
- Launch workers with:
OMX_TEAM_WORKER=<team>/worker-<n>OMX_TEAM_STATE_ROOT=<leader-cwd>/.omx/stateOMX_TEAM_LEADER_CWD=<leader-cwd>- worker CLI selected by
OMX_TEAM_WORKER_CLI/OMX_TEAM_WORKER_CLI_MAP(codexorclaude) - optional worktree metadata envs when
--worktreeis used
- Wait for worker readiness (
capture-panepolling) - Write per-worker
inbox.mdand trigger viatmux send-keys - Return control to leader; follow-up uses
status/resume/shutdown
Important:
- Leader remains in existing pane
- Worker panes are independent full Codex/Claude CLI sessions
- Workers may run in separate git worktrees (
omx team --worktree[=<name>]) while sharing one team state root - Worker ACKs go to
mailbox/leader-fixed.json - Notify hook updates worker heartbeat and nudges leader during active team mode
- Submit routing uses this CLI resolution order per worker trigger:
- explicit worker CLI provided by runtime state (persisted on worker identity/config),
OMX_TEAM_WORKER_CLI_MAPentry for that worker index,- fallback
OMX_TEAM_WORKER_CLI/ auto detection.
- Mixed CLI-map teams are supported for both startup and trigger submit behavior.
- Trigger submit differs by CLI:
- Codex may use queue-first
Tabon busy panes (strategy-dependent). - Claude always uses direct Enter-only (
C-m) rounds (never queue-firstTab).
- Codex may use queue-first
Team worker model + thinking resolution (current contract)
Team mode resolves worker model flags from one shared launch-arg set (not per-worker model selection).
Model precedence (highest to lowest):
- Explicit worker model in
OMX_TEAM_WORKER_LAUNCH_ARGS - Inherited leader
--modelflag - Low-complexity default from
OMX_DEFAULT_SPARK_MODEL(legacy alias:OMX_SPARK_MODEL) when 1+2 are absent and teamagentTypeis low-complexity
Default-model rule:
- Do not assume a frontier or spark model from recency or model-family heuristics.
- Use
OMX_DEFAULT_FRONTIER_MODELfor frontier-default guidance. - Use
OMX_DEFAULT_SPARK_MODELfor spark/low-complexity worker-default guidance.
Thinking-level rule (critical):
- No model-name heuristic mapping.
- Team runtime must not infer
model_reasoning_effortfrom model-name substrings (e.g.,spark,high-capability,mini). - When the leader assigns teammate roles/tasks, OMX allocates per-worker reasoning effort dynamically from the resolved worker role (
low,medium,high). - Explicit launch args still win: if
OMX_TEAM_WORKER_LAUNCH_ARGSalready includes-c model_reasoning_effort=..., that explicit value overrides dynamic allocation for every worker.
Normalization requirements:
- Parse both
--model <value>and--model=<value> - Remove duplicate/conflicting model flags
- Emit exactly one final canonical flag:
--model <value> - Preserve unrelated args in worker launch config
- If explicit reasoning exists, preserve canonical
-c model_reasoning_effort="<level>"; otherwise inject the worker role's default reasoning level
Required Lifecycle (Operator Contract)
Follow this exact lifecycle when running $team:
- Start team and verify startup evidence (team line, tmux target, panes, ACK mailbox)
- Monitor task and worker progress with runtime/state tools first (
omx team status <team>,omx team resume <team>, mailbox/state files) - Wait for terminal task state before shutdown:
pending=0in_progress=0failed=0(or explicitly acknowledged failure path)
- Only then run
omx team shutdown <team> - Verify shutdown evidence and state cleanup
Do not run shutdown while workers are actively writing updates unless user explicitly requested abort/cancel.
Do not treat ad-hoc pane typing as primary control flow when runtime/state evidence is available.
Active leader monitoring rule
While a team is ON/running, the leader must not go blind. Keep checking live team state until terminal completion.
Minimum acceptable loop:
sleep 30 && omx team status <team-name>Repeat that check while the team stays active, or use omx team await <team-name> --timeout-ms 30000 --json when event-driven waiting is a better fit.
If the leader gets a stale/team-stalled nudge, immediately run omx team status <team-name> before taking any manual intervention.
Message Dispatch Policy (CLI-first, state-first)
To avoid brittle behavior, message/task delivery must not be driven by ad-hoc tmux typing.
Required default path:
- Use
omx team ...runtime lifecycle commands for orchestration. - Use
omx team api ... --jsonfor mailbox/task mutations. - Verify delivery via mailbox/state evidence (
mailbox/*.json, task status,omx team status).
Strict rules:
- MUST NOT use direct
tmux send-keysas the primary mechanism to deliver instructions/messages. - MUST NOT spam Enter/trigger keys without first checking runtime/state evidence.
- MUST prefer durable state writes + runtime dispatch (
dispatch/requests.json, mailbox, inbox). - Direct tmux interaction is fallback-only and only after failure checks (for example
worker_notify_failed:<worker>) or explicit user request (for example “press enter”).
Operational Commands
omx team status <team-name>
omx team resume <team-name>
omx team shutdown <team-name>Semantics:
status: reads team snapshot (task counts, dead/non-reporting workers)resume: reconnects to live team session if presentshutdown: graceful shutdown request, then cleanup (deletes.omx/state/team/<team>)
Data Plane and Control Plane
Control Plane
- tmux panes/processes (
OMX_TEAM_WORKERper worker) - leader notifications via
tmux display-message
Data Plane
.omx/state/team/<team>/...files- Team mailbox files:
.omx/state/team/<team>/mailbox/leader-fixed.json.omx/state/team/<team>/mailbox/worker-<n>.json.omx/state/team/<team>/dispatch/requests.json(durable dispatch queue; hook-preferred, fallback-aware)
Key Files
.omx/state/team/<team>/config.json.omx/state/team/<team>/manifest.v2.json.omx/state/team/<team>/tasks/task-<id>.json.omx/state/team/<team>/workers/worker-<n>/identity.json.omx/state/team/<team>/workers/worker-<n>/inbox.md.omx/state/team/<team>/workers/worker-<n>/heartbeat.json.omx/state/team/<team>/workers/worker-<n>/status.json.omx/state/team-leader-nudge.json
Team Mutation Interop (CLI-first)
Use omx team api for machine-readable mutation/reads instead of legacy team_* MCP tools.
omx team api <operation> --input '{"team_name":"my-team",...}' --jsonExamples:
omx team api send-message --input '{"team_name":"my-team","from_worker":"worker-1","to_worker":"leader-fixed","body":"ACK"}' --json
omx team api claim-task --input '{"team_name":"my-team","task_id":"1","worker":"worker-1"}' --json
omx team api transition-task-status --input '{"team_name":"my-team","task_id":"1","from":"in_progress","to":"completed","claim_token":"<token>"}' --json--json responses include stable metadata for automation:
schema_versiontimestampcommandokoperationdataorerror
Team + Worker Protocol Notes
Leader-to-worker:
- Write full assignment to worker
inbox.md - Send short trigger (<200 chars) with
tmux send-keys
Worker-to-leader:
- Send ACK to
leader-fixedmailbox viaomx team api send-message --json - Claim/transition/release task lifecycle via
omx team api <operation> --json
Worker commit protocol (critical for incremental integration):
- After completing task work and before reporting completion, workers MUST commit:
git add -A && git commit -m "task: <task-subject>" - This ensures changes are available for incremental integration into the leader branch
- If a worker forgets to commit, the runtime auto-commits as a fallback, but explicit commits are preferred
Task ID rule (critical):
- File path uses
task-<id>.json(exampletask-1.json) - MCP API
task_iduses bare id (example"1", not"task-1") - Never instruct workers to read
tasks/{id}.json
Environment Knobs
Useful runtime env vars:
OMX_TEAM_READY_TIMEOUT_MS- Worker readiness timeout (default 45000)
OMX_TEAM_SKIP_READY_WAIT=1- Skip readiness wait (debug only)
OMX_TEAM_AUTO_TRUST=0- Disable auto-advance for trust prompt (default behavior auto-advances)
OMX_TEAM_AUTO_ACCEPT_BYPASS=0- Disable Claude bypass-permissions prompt auto-accept (default behavior auto-accepts
2+ Enter)
- Disable Claude bypass-permissions prompt auto-accept (default behavior auto-accepts
OMX_TEAM_WORKER_LAUNCH_ARGS- Extra args passed to worker launch command
OMX_TEAM_WORKER_CLI- Worker CLI selector:
auto|codex|claude(default:auto) autochoosesclaudewhen worker--modelcontainsclaude, otherwisecodex- In
claudemode, workers launch with exactly one--dangerously-skip-permissionsand ignore explicit model/config/effort launch overrides (uses defaultsettings.json)
- Worker CLI selector:
OMX_TEAM_WORKER_CLI_MAP- Per-worker CLI selector (comma-separated
auto|codex|claude) - Length must be
1(broadcast) or exactly the team worker count - Example:
OMX_TEAM_WORKER_CLI_MAP=codex,codex,claude,claude - When present, overrides
OMX_TEAM_WORKER_CLI
- Per-worker CLI selector (comma-separated
OMX_TEAM_AUTO_INTERRUPT_RETRY- Trigger submit fallback (default: enabled)
0disables adaptive queue->resend escalation
OMX_TEAM_LEADER_NUDGE_MS- Leader nudge interval in ms (default 120000)
OMX_TEAM_STRICT_SUBMIT=1- Force strict send-keys submit failure behavior
Failure Modes and Diagnosis
Operator note (important for Claude panes):
- Manual Enter injection (
tmux send-keys ... C-m) can appear to "do nothing" when a worker is actively processing; Enter may be queued by the pane/task flow. - This is not necessarily a runtime bug. Confirm worker/team state before diagnosing dispatch failure.
- Avoid repeated blind Enter spam; it can create noisy duplicate submits once the pane becomes idle.
Safe Manual Intervention (last resort)
Use only after checking omx team status <team> and mailbox/state evidence:
- Capture pane tail to confirm current worker state:
tmux capture-pane -t %<worker-pane> -p -S -120- If a larger-tail read or bounded summary would help, prefer explicit opt-in inspection via
omx sparkshell --tmux-pane %<worker-pane> --tail-lines 400before improvising extra tmux commands.
- If the pane is stuck in an interactive state, safely return to idle prompt first:
- optional interrupt
C-cor escape flow (CLI-specific) once, then re-check pane capture
- optional interrupt
- Send one concise trigger (single line) and wait for evidence:
tmux send-keys -t %<worker-pane> "ack + continue current task; report status" C-m
- Re-check:
- pane output via
capture-pane - mailbox updates (
mailbox/leader-fixed.jsonor worker mailbox) omx team status <team>
- pane output via
worker_notify_failed:<worker>
Meaning:
- Leader wrote inbox but trigger submit path failed
Checks:
tmux list-panes -F '#{pane_id}\t#{pane_start_command}'tmux capture-pane -t %<worker-pane> -p -S -120- Verify worker process alive and not stuck on trust prompt
- Rebuild if running repo-local (
npm run build)
Team starts but leader gets no ACK
Checks:
- Worker pane capture shows inbox processing
.omx/state/team/<team>/mailbox/leader-fixed.jsonexists- Worker skill loaded and
omx team api send-message --jsoncalled - Task-id mismatch not blocking worker flow
Worker logs omx team api ... ENOENT (or legacy team_send_message ENOENT / team_update_task ENOENT)
Meaning:
- Team state path no longer exists while worker is still running.
- Typical cause: leader/manual flow ran
omx team shutdown <team>(or removed.omx/state/team/<team>) before worker finished.
Checks:
omx team status <team>and confirm whether tasks were stillin_progresswhen shutdown occurred- Verify whether
.omx/state/team/<team>/exists - Inspect worker pane tail for post-shutdown writes
- Confirm no external cleanup (
rm -rf .omx/state/team/<team>) happened during execution
Prevention:
- Enforce completion gate (no in-progress tasks) before shutdown
- Use
shutdownonly for terminal completion or explicit abort - If aborting, expect late worker writes to fail and treat ENOENT as expected teardown artifact
Shutdown reports success but stale worker panes remain
Cause:
- stale pane outside config tracking or previous failed run
Fix:
- manual pane cleanup (see clean-slate commands)
Clean-Slate Recovery
Run from leader pane:
# 1) Inspect panes
tmux list-panes -F '#{pane_id}\t#{pane_current_command}\t#{pane_start_command}'
# 2) Kill stale worker panes only (examples)
tmux kill-pane -t %450
tmux kill-pane -t %451
# 3) Remove stale team state (example)
rm -rf .omx/state/team/<team-name>
# 4) Retry
omx team 1:executor "fresh retry"Guidelines:
- Do not kill leader pane
- Do not kill HUD pane (
omx hud --watch) unless intentionally restarting HUD
Required Reporting During Execution
When operating this skill, provide concrete progress evidence:
- Team started line (
Team started: <name>) - tmux target and worker pane presence
- leader mailbox ACK path/content check
- status/shutdown outcomes
Do not claim success without file/pane evidence.
Do not claim clean completion if shutdown occurred with in_progress>0.
Use omx sparkshell --tmux-pane ... as an explicit opt-in operator aid for pane inspection and summaries; keep raw tmux capture-pane evidence available for manual intervention and proof.
MCP Job Lifecycle Tools
For programmatic or agent-driven team spawning (as opposed to interactive CLI use), OMX exposes four MCP tools via the team-server:
| Tool | Description |
omx_run_team_start | Spawn tmux CLI workers in the background; returns a jobId immediately |
omx_run_team_status | Non-blocking status check for a running job |
omx_run_team_wait | Block until the job completes, with automatic idle-pane nudging |
omx_run_team_cleanup | Kill worker tmux panes for a job (early stop only) |
CLI vs MCP Tools
omx team ...CLI — Primary method for interactive team orchestration. Use this when you are operating inside a live tmux session and want direct pane visibility.omx_run_team_*MCP tools — For programmatic or agent-driven team spawning (analogous to OMC'somc_run_team_*tools). Use these when an agent needs to launch workers, poll status, and collect results without manual intervention.
Naming Distinction
Two cleanup tools exist and must not be confused:
team_cleanup(state-server): Deletes team state files on disk (.omx/state/team/<team>/). Use after a team run is fully complete.omx_run_team_cleanup(team-server): Kills tmux worker panes for a job. Use only when stopping workers early; otherwiseomx_run_team_waithandles natural termination.
Basic Usage Example
1. omx_run_team_start({
teamName: "fix-bugs",
agentTypes: ["codex"],
tasks: [{ subject: "Fix bug", description: "..." }],
cwd: "/path/to/project"
})
→ Returns { jobId: "omx-abc123" }
2. omx_run_team_wait({ job_id: "omx-abc123", timeout_ms: 300000 })
→ Blocks until done, auto-nudges idle panes
3. omx_run_team_cleanup({ job_id: "omx-abc123" })
→ Only needed if stopping workers earlyomx_run_team_status can be called between steps 1 and 2 for a non-blocking poll if you need to interleave other work while workers run.
Limitations
- Worktree provisioning requires a git repository and can fail on branch/path collisions
- send-keys interactions can be timing-sensitive under load
- stale panes from prior runs can interfere until manually cleaned
Scenario Examples
Good: The user says continue after the workflow already has a clear next step. Continue the current branch of work instead of restarting or re-asking the same question.
Good: The user changes only the output shape or downstream delivery step (for example make a PR). Preserve earlier non-conflicting workflow constraints and apply the update locally.
Bad: The user says continue, and the workflow restarts discovery or stops before the missing verification/evidence is gathered.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

