/teammode
Codex-only team orchestration: run a named team of cooperating Codex workers with durable, script-managed state. MUST USE when the user asks Codex to create, run, coordinate, inspect, archive, or delete a team of agents/threads/sessions, or to work on something as a team in
$ npx -y skills add code-yeongyu/oh-my-opencode --skill teammode --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/teammode
Context preview
The summary Claude sees to decide when to auto-load this skill.
Codex-only team orchestration: run a named team of cooperating Codex workers with durable, script-managed state. MUST USE when the user asks Codex to create, run, coordinate, inspect, archive, or delete a team of agents/threads/sessions, or to work on something as a team in
SKILL.md
teammode.SKILL.mdname: teammode
description: "Codex-only team orchestration: run a named team of cooperating Codex workers with durable, script-managed state. MUST USE when the user asks Codex to create, run, coordinate, inspect, archive, or delete a team of agents/threads/sessions, or to work on something as a team in parallel. FIRST inspects the active tool surface (checking tool_search for deferred tools) and tells the user the route: native MultiAgentV2 agents (flat spawn_agent with task_name) when available, Codex App threads as the fallback, or a plain-subagent split when neither set exists. The main session is always the leader; members are defined by a concrete part, ownership area, or perspective - never a vague job role; a bundled cross-platform script writes the .omo/teams state plus an auto-generated member field manual. Use a team when the work is not perfectly isolated but parallelizing helps; use plain subagents when scope is perfectly isolated or the goal is ambiguous. Triggers: team mode, teammode, make a team, run as a team, team of agents, coordinate threads, parallel Codex threads, archive the team."
Teammode
Run a named team of cooperating Codex workers under one leader, with durable state on disk. This is a Codex-only workflow. It never depends on an external terminal runner - it coordinates through Codex's own collaboration tools plus a bundled state script, on ONE of two transports chosen up front: native MultiAgentV2 agents, or Codex App threads as the fallback.
When to use a team (and when to use plain subagents instead)
Use a TEAM when EITHER holds:
- the work does NOT split into perfectly isolated pieces, but doing it in parallel is clearly
more convenient - members will need to see and react to each other's findings; or
- one task still needs exploration, yet its GOAL is already clear - parallel investigation under
a fixed objective.
Use plain fire-and-forget subagents (`$ulw` / one-off `spawn_agent` workers) - NOT a team - when EITHER holds:
- the work IS perfectly isolated, so there is no coordination cost worth paying; or
- the GOAL is still ambiguous, where one mind should resolve direction before any fan-out.
A team buys cross-member coordination at a real overhead cost; only spend it when coordination is the thing you actually need.
Pick the transport FIRST - then tell the user
Before creating any team state, decide which transport this session can run. Inspect your active tool list and select:
1. **MultiAgentV2 (preferred)** - select when the flat V2 collaboration tools are ALL active: flat `spawn_agent` whose schema requires `task_name`, plus `send_message`, `followup_task`, `wait_agent`, `list_agents`, and `interrupt_agent`. Members are durable native agents addressed by task name / agent path (`/root/<task_name>`). The namespaced `multi_agent_v1.*` surface never qualifies as a team transport. 2. **Codex App threads (fallback)** - select when flat V2 is not available but the `codex_app.*` thread tools are (`create_thread`, `read_thread`, `send_message_to_thread`, `set_thread_title`, `set_thread_archived`). 3. **Neither set visible** - if a `tool_search` tool is active, search for the missing sets (e.g. `spawn_agent`, `codex_app`) before concluding: some environments defer tools behind tool search. A hit is only a lead: revalidate that the visible result is the COMPLETE, mutually compatible transport set from case 1 or 2 before selecting it. Do not combine partial hits from different transports. 4. **Neither set exists** - teammode cannot run here. Do NOT run `init` or fake a team with partial tooling. If another visible plain-subagent mechanism can independently spawn, communicate with, and observe plain workers, announce that exact mechanism and use it for non-overlapping scopes. Otherwise continue serially and report the capability limitation; never promise or imply plain subagents that this session cannot create.
Then, BEFORE running `init` (or instead of it in case 4), tell the user in one line what this environment provides and which route you picked:
- `Teammode transport: MultiAgentV2 (flat spawn_agent with task_name).`
- `Teammode transport: Codex App threads (flat V2 tools not present in this session).`
- `Teammode unavailable: neither MultiAgentV2 nor codex_app tools exist in this session -
using <visible plain-subagent mechanism> for independent scopes.`
- `Teammode unavailable: neither MultiAgentV2 nor codex_app tools exist in this session, and
no compatible plain-subagent mechanism is available - continuing serially.`
Pass the choice to `init` as `--transport multi_agent_v2` or `--transport codex_app`. The transport is recorded in `team.json` and is IMMUTABLE for the team's lifetime: a V2 spawn failure is a V2 blocker to report, never permission to mix Codex App threads into the same team. Never probe by trial-calling tools; read your tool list, and search it with `tool_search` only when a needed set is not visible.
You are the leader - orchestrate, do not implement
The main session is ALWAYS the team leader; you orchestrate directly and never spin up a separate leader worker. Your job is orchestration, NOT writing product code: split the work and assign each slice, hold live situational awareness of every member, verify and QA what they deliver, relay findings between members, instruct and unblock, and synthesize the result. DELEGATE every code edit to a member - if you catch yourself editing product files while the team runs, that work was a member's slice you should have handed off. You own direction, verification, and integration (the merge), not the keystrokes.
Compose by part, ownership, or perspective - not by job title
A team is ALWAYS two or more members - never a single-member team. One worker on an isolated job is a plain subagent, not a team; if you end up with a single member, either split off a second distinct slice or drop the team and use a subagent.
C
Read more
name: teammode description: "Codex-only team orchestration: run a named team of cooperating Codex workers with durable, script-managed state. MUST USE when the user asks Codex to create, run, coordinate, inspect, archive, or delete a team of agents/threads/sessions, or to work on something as a team in parallel. FIRST inspects the active tool surface (checking tool_search for deferred tools) and tells the user the route: native MultiAgentV2 agents (flat spawn_agent with task_name) when available, Codex App threads as the fallback, or a plain-subagent split when neither set exists. The main session is always the leader; members are defined by a concrete part, ownership area, or perspective - never a vague job role; a bundled cross-platform script writes the .omo/teams state plus an auto-generated member field manual. Use a team when the work is not perfectly isolated but parallelizing helps; use plain subagents when scope is perfectly isolated or the goal is ambiguous. Triggers: team mode, teammode, make a team, run as a team, team of agents, coordinate threads, parallel Codex threads, archive the team."
Teammode
Run a named team of cooperating Codex workers under one leader, with durable state on disk. This is a Codex-only workflow. It never depends on an external terminal runner - it coordinates through Codex's own collaboration tools plus a bundled state script, on ONE of two transports chosen up front: native MultiAgentV2 agents, or Codex App threads as the fallback.
When to use a team (and when to use plain subagents instead)
Use a TEAM when EITHER holds:
- the work does NOT split into perfectly isolated pieces, but doing it in parallel is clearly
more convenient - members will need to see and react to each other's findings; or
- one task still needs exploration, yet its GOAL is already clear - parallel investigation under
a fixed objective.
Use plain fire-and-forget subagents (`$ulw` / one-off `spawn_agent` workers) - NOT a team - when EITHER holds:
- the work IS perfectly isolated, so there is no coordination cost worth paying; or
- the GOAL is still ambiguous, where one mind should resolve direction before any fan-out.
A team buys cross-member coordination at a real overhead cost; only spend it when coordination is the thing you actually need.
Pick the transport FIRST - then tell the user
Before creating any team state, decide which transport this session can run. Inspect your active tool list and select:
1. **MultiAgentV2 (preferred)** - select when the flat V2 collaboration tools are ALL active: flat `spawn_agent` whose schema requires `task_name`, plus `send_message`, `followup_task`, `wait_agent`, `list_agents`, and `interrupt_agent`. Members are durable native agents addressed by task name / agent path (`/root/<task_name>`). The namespaced `multi_agent_v1.*` surface never qualifies as a team transport. 2. **Codex App threads (fallback)** - select when flat V2 is not available but the `codex_app.*` thread tools are (`create_thread`, `read_thread`, `send_message_to_thread`, `set_thread_title`, `set_thread_archived`). 3. **Neither set visible** - if a `tool_search` tool is active, search for the missing sets (e.g. `spawn_agent`, `codex_app`) before concluding: some environments defer tools behind tool search. A hit is only a lead: revalidate that the visible result is the COMPLETE, mutually compatible transport set from case 1 or 2 before selecting it. Do not combine partial hits from different transports. 4. **Neither set exists** - teammode cannot run here. Do NOT run `init` or fake a team with partial tooling. If another visible plain-subagent mechanism can independently spawn, communicate with, and observe plain workers, announce that exact mechanism and use it for non-overlapping scopes. Otherwise continue serially and report the capability limitation; never promise or imply plain subagents that this session cannot create.
Then, BEFORE running `init` (or instead of it in case 4), tell the user in one line what this environment provides and which route you picked:
- `Teammode transport: MultiAgentV2 (flat spawn_agent with task_name).`
- `Teammode transport: Codex App threads (flat V2 tools not present in this session).`
- `Teammode unavailable: neither MultiAgentV2 nor codex_app tools exist in this session -
using <visible plain-subagent mechanism> for independent scopes.`
- `Teammode unavailable: neither MultiAgentV2 nor codex_app tools exist in this session, and
no compatible plain-subagent mechanism is available - continuing serially.`
Pass the choice to `init` as `--transport multi_agent_v2` or `--transport codex_app`. The transport is recorded in `team.json` and is IMMUTABLE for the team's lifetime: a V2 spawn failure is a V2 blocker to report, never permission to mix Codex App threads into the same team. Never probe by trial-calling tools; read your tool list, and search it with `tool_search` only when a needed set is not visible.
You are the leader - orchestrate, do not implement
The main session is ALWAYS the team leader; you orchestrate directly and never spin up a separate leader worker. Your job is orchestration, NOT writing product code: split the work and assign each slice, hold live situational awareness of every member, verify and QA what they deliver, relay findings between members, instruct and unblock, and synthesize the result. DELEGATE every code edit to a member - if you catch yourself editing product files while the team runs, that work was a member's slice you should have handed off. You own direction, verification, and integration (the merge), not the keystrokes.
Compose by part, ownership, or perspective - not by job title
A team is ALWAYS two or more members - never a single-member team. One worker on an isolated job is a plain subagent, not a team; if you end up with a single member, either split off a second distinct slice or drop the team and use a subagent.
C
You're juggling Claude Code, Codex, and random OSS models. Configuring workflows. Debugging agents. We did the work. Tested everything. Kept what actually shipped. Install oh-my-openagent. Type ultrawork. Done.
Repo: code-yeongyu/oh-my-opencode
Other skills on oh-my-openagent.
- /comment-checker
Use when Codex needs to understand or respond to automatic comment-checker feedback emitted after an edit-like PostToolUse hook.
Open skill - /lcx-contribute-bug-fix
Contribute a verified bug fix for LazyCodex, lazycodex-ai, omo-codex, bundled Codex skills, or upstream Codex CLI bugs. Opens a fork PR only for upstream openai/codex; LazyCodex-owned defects become a verified-fix issue on code-yeongyu/lazycodex (never a PR — that repo is a
Open skill - /lcx-doctor
Diagnose LazyCodex and Codex CLI installation health against the latest sources. Use whenever the user asks for a doctor or health check, says LazyCodex, lazycodex-ai, omo-codex, or Codex behaves oddly after an install, update, or config change, suspects a stale, drifted, or
Open skill - /lcx-report-bug
Create a high-signal bug issue or PR in the repo that owns the defect. Use this whenever the user asks to report, file, open, or triage a LazyCodex, lazycodex-ai, omo-codex, Codex plugin, or upstream Codex CLI bug, especially when they need source-backed root cause, reproduction
Open skill - /lsp
Use when Codex needs language-server diagnostics, definitions, references, symbols, or rename safety checks in the current workspace.
Open skill - /rules
Use when the user asks about Codex Rules behavior, injected project rules, supported rule file locations, matching, or environment configuration.
Open skill

