From oh-my-claudecode
Claude-Codex-Gemini tri-model orchestration - fans out backend tasks to Codex and frontend/UI tasks to Gemini in parallel, then Claude synthesizes results
How this skill is triggered — by the user, by Claude, or both
Slash command
/oh-my-claudecode:ccgThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
CCG spawns a tmux team with Codex and Gemini CLI workers running in parallel panes, then Claude synthesizes the results. Use this for tasks that benefit from multiple AI perspectives simultaneously.
CCG spawns a tmux team with Codex and Gemini CLI workers running in parallel panes, then Claude synthesizes the results. Use this for tasks that benefit from multiple AI perspectives simultaneously.
npm install -g @openai/codex (or @openai/codex)npm install -g @google/gemini-cli1. Claude decomposes the request into:
- Backend/analytical tasks → Codex worker
- Frontend/UI/design tasks → Gemini worker
2. mcp__team__omc_run_team_start creates a tmux session with 2 workers:
omc-team-{name}
├── Leader pane (Claude orchestrates)
├── Worker pane 1: codex CLI (analytical tasks)
└── Worker pane 2: gemini CLI (design tasks)
3. Workers read tasks from inbox files and write done.json on completion
4. mcp__team__omc_run_team_wait blocks until all workers finish
5. Claude reads taskResults and synthesizes into final output
When invoked, Claude MUST follow this workflow:
Split the user's request into:
Choose a short teamName slug (e.g., ccg-auth-review).
Call mcp__team__omc_run_team_start — spawns workers in the background and returns a jobId immediately:
mcp__team__omc_run_team_start({
"teamName": "ccg-{slug}",
"agentTypes": ["codex", "gemini"],
"tasks": [
{"subject": "Codex task: ...", "description": "Full description of analytical work..."},
{"subject": "Gemini task: ...", "description": "Full description of design/UI work..."}
],
"cwd": "{cwd}"
})
Returns: { "jobId": "omc-...", "pid": 12345, "message": "Team started in background..." }
Call mcp__team__omc_run_team_wait — blocks internally until done:
mcp__team__omc_run_team_wait({
"job_id": "{jobId}",
"timeout_ms": 60000
})
Timeout guidance:
timeout_msis optional; the default wait timeout is fine. If wait times out, workers/panes keep running. Callomc_run_team_waitagain to keep waiting. Useomc_run_team_cleanuponly for explicit cancel intent.
Returns when done:
{
"status": "completed|failed",
"result": {
"taskResults": [
{"taskId": "1", "status": "completed", "summary": "..."},
{"taskId": "2", "status": "completed", "summary": "..."}
]
}
}
Parse result.taskResults and synthesize Codex + Gemini outputs into a unified response for the user.
CLI availability is checked by the MCP runtime automatically. If a CLI is not installed, the worker exits with command not found. In that case, fall back to Claude Task agents:
[CCG] Codex/Gemini CLI not found. Falling back to Claude-only execution.
Use standard Claude Task agents instead:
Task(subagent_type="oh-my-claudecode:executor", model="sonnet", ...) for analytical tasksTask(subagent_type="oh-my-claudecode:designer", model="sonnet", ...) for design tasks/oh-my-claudecode:ccg [task description]
Example:
/oh-my-claudecode:ccg Review this PR - check architecture and code quality (Codex) and UI components (Gemini)
npx claudepluginhub shiro123444/oh-my-claudecodeCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.