Skip to content
Development
Skill

/team

Start long-lived provider LLM teammates as native Claude Code agent-team members (the native Agent tool with a ccf-<provider> type) that you message with SendMessage — multi-turn, collaborative, watchable in tmux panes. Use for sustained parallel build/work ("start 3 glm

From plugin
cc-fleet
1853 skills2 hooks

Claude Code

$ npx -y skills add ethanhq/cc-fleet --skill team --agent claude-code

SKILL.md

team.SKILL.md
name: team
description: Start long-lived provider LLM teammates as native Claude Code agent-team members (the native Agent tool with a ccf-<provider> type) that you message with SendMessage — multi-turn, collaborative, watchable in tmux panes. Use for sustained parallel build/work ("start 3 glm teammates", N teammates on N files), or when you need a collaborator you message across turns, from a terminal `claude` session. NOT a fire-and-forget one-shot or a flat batch of independent prompts — that is /cc-fleet:subagent. NOT a scripted multi-phase run — that is /cc-fleet:workflow.

team — long-lived provider teammates

Run a third-party provider model as a real Claude Code teammate: you start it with the native `Agent` tool, Claude Code creates the pane and does all the team plumbing, and cc-fleet's launcher swaps the teammate's LLM backend to the provider. Same tool stack and team coordination as a native teammate; your main session's own auth stays untouched.

**Wrong lane?** A fire-and-forget one-shot or flat batch → /cc-fleet:subagent; a scripted multi-phase run → /cc-fleet:workflow; full arbitration in cc-fleet-shared/routing.md.

When this skill cites `cc-fleet-shared/<file>.md`, OPEN it with the Read tool at `../cc-fleet-shared/<file>.md` relative to this SKILL.md — the cited content is load-bearing, not optional background.

> **Execution environment — check before running anything.** Confirm your shell tool executes on the host where cc-fleet is installed. In sandboxed or remote agent sessions, a tool named Bash may run on an isolated machine with a different filesystem, PATH, processes, and tmux server — `command not found`, a healthy-looking `doctor` whose leaves can't reach your files, or a wrong working directory should prompt you to verify whether you are in a sandbox shell, not conclude that cc-fleet is broken. If so, route commands through a host-executing bridge tool (for example, desktop-commander) and pass host paths for any files you reference; do not retry the same Bash call expecting different results. If no host-executing tool is available, stop and explain that cc-fleet must run on its installation host.

**Precondition — `cc-fleet teammate check` must pass.** Before the first teammate of a provider/slot in this session, run `cc-fleet teammate check [<provider>] [--slot strong|fast] --json` via Bash and require `ok:true` **and** `protocol` equal to `1`. Use its `agent_type` verbatim as the `Agent` call's `subagent_type`. `ok:false` → dispatch on `error_code` + `detail` (cc-fleet-shared/troubleshooting.md); never call `Agent` with a `ccf-*` type after a failed check. A `protocol` other than `1` means cc-fleet and the plugin are out of step — tell the user to update both (`cc-fleet update`, then `/plugin update`) and use /cc-fleet:subagent meanwhile. `check` also writes the provider profile and starts the local proxy a codex / openai-* provider needs; `--no-probe` skips its reachability probe (up to 10s).

**Where this lane works.** Only a terminal `claude` session (Claude Code ≥ 2.1.278, macOS/Linux) whose teammates open in panes: `teammateMode` `tmux` (inside or outside tmux), or `auto` while the lead runs inside tmux or iTerm2. The Claude desktop app, `claude -p` and SDK sessions have no agent team (`TEAMMATE_LANE_UNAVAILABLE`); in-process teammates would silently run on Claude, not the provider (`TEAMMATE_MODE_IN_PROCESS`); Windows has no teammate lane (`UNSUPPORTED_ON_WINDOWS`). In all of these, go straight to /cc-fleet:subagent or /cc-fleet:workflow. A terminal session (in tmux or iTerm2) can get the same `TEAMMATE_LANE_UNAVAILABLE` / `no_session_team`: with `printenv CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` empty or not `1`/`true`/`yes`/`on`, agent teams are off because `cc-fleet teammate setup` never ran — degrade now and offer the one-time setup below; with it on, cc-fleet could not identify the team (after `/clear` or a resume), and the user starts a new `claude` inside tmux or iTerm2. Dispatch on `detail`, not the code alone (cc-fleet-shared/troubleshooting.md).

**One-time setup is the user's call.** `TEAMMATE_SETUP_REQUIRED` / `launcher_not_configured` means `cc-fleet teammate setup` never ran — so does `no_session_team` in a terminal session with agent teams off (above), because check stops at the missing team before it looks at the launcher. Setup writes cc-fleet's launcher shim, the `ccf-*` agent definitions, and `env.CLAUDE_CODE_TEAMMATE_COMMAND` (plus agent teams, if off) in `~/.claude/settings.json`. Tell the user what it changes; run `cc-fleet teammate setup --yes --json` only after they agree (add `--teammate-mode tmux` when their `teammateMode` is unset or `in-process`), or let them run it. They must then restart claude inside tmux — until they do, `check` may return `LEAD_RESTART_REQUIRED`, and returns `no_session_team` if agent teams were off before setup. Check stops before it reads `teammateMode` on these paths; if setup's JSON shows `teammate_mode` `in-process`, ask before rerunning it with `--teammate-mode tmux`, before the restart.

---

Core loop

Steps 1 and 3 are `cc-fleet` via Bash with `--json`; steps 2, 4 and 5 are **native tools**.

1. cc-fleet teammate check [<provider>] [--slot strong|fast] --json
   ← Bash; require ok:true and protocol == 1; keep .agent_type and .team
   The provider arg is OPTIONAL — omitted, the default provider applies
   (see "The provider ask ladder").

2. Agent({description: "<3-5 words>", name: "<name>", subagent_type: "<agent_type>",
          prompt: "<task>. When done, send your result to team-lead with SendMessage — once."})
   ← native; `name` is what makes it a teammate (`description` is the Agent tool's
   own required field). Repeat for more teammates (the same agent_type needs no second check).

3. ~10s later: cc-fleet ps --json --check
   ← Bash; find the row whose agent_id is "<name>@<team>"
   state running → carry on; failed / bypassed → TaskStop it and report
   (see "Watching f
Read more
@ethanhq
Ships withcc-fleet

🚢 Run Claude Code's ⚙️ Dynamic Workflows, 👥 Agent Teams & ⚡ Subagents on any third-party model — DeepSeek · GLM · Kimi · Qwen … or your Codex subscription. No Anthropic subscription needed. | 🚢 让 Claude Code 的 ⚙️ Dynamic Workflow、👥 Agent Team、⚡ Subagent 用上任意第三方模型 — DeepSeek · GLM · Kimi · Qwen…… 或你的 Codex 订阅,无需 Claude 订阅

Stars on GitHub

Momentum

stars in total
185
Star history of ethanhq/cc-fleet on GitHub, a chart by star-history.com

Other skills on cc-fleet.

subagent

subagent

Run a one-shot or flat parallel batch of provider LLM subagents (headless `cc-fleet subagent`) that return a result. Use when…

@ethanhq@ethanhqInstall Skill
workflow

workflow

Orchestrate a MULTI-PHASE, dependent, or resumable run over many provider subagents from a JS script, off the main context…

@ethanhq@ethanhqInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about team.

Which coding agents can use team?
team installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.