skills/joc-teams/SKILL.md
CLI-team runtime for opencode, codex, or gemini workers in tmux panes when you need process-based parallel execution
npx skillsauth add Thomashighbaugh/opencode joc-teamsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Spawn N CLI worker processes in tmux panes to execute tasks in parallel. Supports opencode, codex, and gemini agent types.
/joc-teams is a legacy compatibility skill for the CLI-first runtime: use joc team ... commands (not deprecated MCP runtime tools).
/joc-teams N:opencode "task description"
/joc-teams N:codex "task description"
/joc-teams N:gemini "task description"
opencode (OpenCode CLI), codex (OpenAI Codex CLI), or gemini (Google Gemini CLI)/joc-teams 2:opencode "implement auth module with tests"
/joc-teams 2:codex "review the auth module for security issues"
/joc-teams 3:gemini "redesign UI components for accessibility"
command -v tmux)$TMUX set). Inside cmux or a plain terminal, joc team falls back to a detached tmux session instead of splitting the current surface.npm install -g @openai/codexnpm install -g @google/gemini-cliCheck tmux explicitly before claiming it is missing:
command -v tmux >/dev/null 2>&1
$TMUX is set, joc team can reuse the current tmux window/panes directly.$TMUX is empty but CMUX_SURFACE_ID is set, report that the user is running inside cmux. Do not say tmux is missing or that they are "not inside tmux"; joc team will launch a detached tmux session for workers instead of splitting the cmux surface.$TMUX nor CMUX_SURFACE_ID is set, report that the user is in a plain terminal. joc team can 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.tmux display-message -p '#S'
Extract:
N — worker count (1–10)agent-type — opencode|codex|geminitask — task descriptionValidate before decomposing or running anything:
/joc-teams only supports opencode, codex, and gemini.expert, explain that /joc-teams launches external CLI workers only./team instead.Break work into N independent subtasks (file- or concern-scoped) to avoid write conflicts.
Activate mode state (recommended):
state_write(mode="team", current_phase="team-exec", active=true)
Start workers via CLI:
joc team <N>:<opencode|codex|gemini> "<task>"
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.
joc team status <team-name>
joc team api list-tasks --input '{"team_name":"<team-name>"}' --json
Use joc team api ... for task claiming, task transitions, mailbox delivery, and worker state updates.
joc team shutdown <team-name>
joc team shutdown <team-name> --force
Use shutdown for intentional cancellation or stale-state cleanup. Prefer non-force shutdown first.
Report task results with completion/failure summary and any remaining risks.
state_write(mode="team", current_phase="complete", active=false)
Legacy MCP runtime tools are deprecated for execution:
oas_run_team_startoas_run_team_statusoas_run_team_waitoas_run_team_cleanupIf encountered, switch to joc team ... CLI commands.
| Error | Cause | Fix |
| ---------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------- |
| not inside tmux | Requested in-place pane topology from a non-tmux surface | Start tmux and rerun, or let joc team use its detached-session fallback |
| cmux surface detected | Running inside cmux without $TMUX | Use the normal joc team ... flow; OAS will launch a detached tmux session |
| Unsupported agent type | Requested agent is not opencode/codex/gemini | Use opencode, codex, or gemini; for native OpenCode agents use /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 | joc team status <team-name> then joc team shutdown <team-name> --force if stale |
| status: failed | Workers exited with incomplete work | inspect runtime output, narrow scope, rerun |
/team| Aspect | /team | /joc-teams |
| ------------ | ----------------------------------------- | ---------------------------------------------------- |
| Worker type | OpenCode native team agents | opencode / codex / gemini CLI processes in tmux |
| Invocation | TeamCreate / Task / SendMessage | joc team [N:agent] + status + shutdown + api |
| Coordination | Native team messaging and staged pipeline | tmux worker runtime + CLI API state files |
| Use when | You want OpenCode-native team orchestration | You want external CLI worker execution |
tools
Create valid, type-safe TypeScript tools for OpenCode — generates correct boilerplate, typed interfaces, and handler stubs. Use when building new tools for global config or per-project .opencode/tools/.
testing
Explore multiple solution branches in parallel, evaluate each, and recommend the best path. Use when the user explicitly invokes /ideation tree-of-thoughts or asks for "tree of thought" / "branching exploration".
testing
Run multiple independent reasoning passes and find consensus. Use when the decision is critically important, the stakes are high, or the user explicitly requests "run it multiple times" / "check consistency" / "self-consistency".
testing
Optimization by PROmpting — generate candidate prompt variations, test each against a benchmark, and report the best performer. Use when the user invokes /ideation opro or asks for "prompt optimization" / "OPRO".