[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82867":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":13,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":37,"discoverSource":38},82867,"cc-fleet","ethanhq\u002Fcc-fleet","ethanhq","🚢  Spawn any vendor LLM — DeepSeek · GLM · Qwen · Kimi · MiniMax … — as real Claude Code teammates or ⚡ one-shot subagents 🚀 ｜🤖 让 Claude Code 接入任意第三方模型(DeepSeek · GLM · Qwen · Kimi · MiniMax ……),作为原生 Agent Team Teammate 或 ⚡ 一次性 subagent 为你干活 🚀","",null,"Go",136,9,6,2,0,45,69,40,3,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33],"ai","ai-agents","anthropic","anthropic-claude","bash-cli","claude","claude-code","claude-plugin","claude-skills","2026-06-12 02:04:28","![cc-fleet — spawn any vendor LLM (DeepSeek · GLM · Qwen · Kimi …) as real Claude Code teammates](docs\u002Fassets\u002Fcc-fleet-banner.png)\n\n# 🚢 cc-fleet\n\n\u003Cp align=\"center\">\u003Cstrong>🤖 Spawn any vendor LLM — DeepSeek · GLM · Qwen · Kimi · MiniMax … — as real Claude Code teammates or ⚡ one-shot subagents 🚀\u003C\u002Fstrong>\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fethanhq\u002Fcc-fleet?style=for-the-badge&color=2ea043&label=release)](https:\u002F\u002Fgithub.com\u002Fethanhq\u002Fcc-fleet\u002Freleases)\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@ethanhq\u002Fcc-fleet?style=for-the-badge&color=cb3837)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@ethanhq\u002Fcc-fleet)\n[![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Linux%20%7C%20macOS-8957e5?style=for-the-badge)](https:\u002F\u002Fgithub.com\u002Fethanhq\u002Fcc-fleet\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-1f6feb?style=for-the-badge)](LICENSE)\n[![Lang](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLang-中文-d29922?style=for-the-badge)](README_zh.md)\n\n\u003C\u002Fdiv>\n\n---\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd6312861-7626-4ac5-a9b8-39a1f6a4be2d\" alt=\"cc-fleet demo\" width=\"760\" \u002F>\n\n\u003C\u002Fdiv>\n\nVendor workers are **real Claude Code teammates** — driven exactly like native ones — with\nthe LLM backend swapped to any provider that exposes an Anthropic-compatible API. Your main\nsession's own auth (OAuth subscription or API key) is untouched; vendor workers bill the\nvendor API key via `apiKeyHelper`, and the key never enters env, argv, or shell history.\n\n`cc-fleet` is a small Go CLI plus one Claude Code skill. The CLI manages per-vendor\nprofiles, dispatches API keys via `apiKeyHelper`, and spawns teammate sessions in tmux\npanes. The skill teaches Claude Code *when* to delegate work to those teammates.\n\n## Requirements\n\n- **Claude Code** (the `claude` CLI) on your PATH.\n- **tmux** — vendor teammates run in tmux panes.\n- **macOS or Linux**, amd64 or arm64 — the tested platforms. Windows can in theory run\n  the one-shot **subagent** mode, but it is untested.\n- **Teammate** mode needs Claude Code's agent-teams enabled. Turn it on in your global\n  `~\u002F.claude\u002Fsettings.json` and restart Claude Code (cc-fleet also nudges you on first run):\n  ```json\n  { \"env\": { \"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS\": \"1\" } }\n  ```\n  The one-shot **subagent** mode and the interactive **`cc-fleet run`** work without it.\n\n## Quick Install\n\n**One-line (recommended)**\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fethanhq\u002Fcc-fleet\u002Fmain\u002Finstall.sh | sh\n```\nDownloads the prebuilt binary, installs `cc-fleet` + the `ccf` alias, and adds the\nskill via the Claude Code plugin. Flags (after `| sh -s --`): `--skill plugin|global|none`,\n`--scope user|project|local`, `--prefix DIR`, `--version vX.Y.Z`.\n\n**npm**\n```bash\nnpm install -g @ethanhq\u002Fcc-fleet      # or run once: npx @ethanhq\u002Fcc-fleet\n```\n*Binary only — also install the skill (see [The skill](#the-skill)) so Claude Code can use it.*\n\n**go install**\n```bash\ngo install github.com\u002Fethanhq\u002Fcc-fleet\u002Fcmd\u002Fcc-fleet@latest\nln -sf \"$(go env GOPATH)\u002Fbin\u002Fcc-fleet\" \"$(go env GOPATH)\u002Fbin\u002Fccf\"   # optional ccf alias\n```\n*Binary only — also install the skill (see [The skill](#the-skill)) so Claude Code can use it.*\n\n**Prebuilt tarball** — download from [Releases](https:\u002F\u002Fgithub.com\u002Fethanhq\u002Fcc-fleet\u002Freleases):\n```bash\ntar -xzf cc-fleet-*.tar.gz && cd cc-fleet-*\u002F && .\u002Finstall.sh\n```\n\n**From source**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fethanhq\u002Fcc-fleet.git && cd cc-fleet && make install\n```\n\n> [!NOTE]\n> cc-fleet is a **binary + a skill**. The one-line installer and tarball set up both;\n> **npm, go install, and source install the binary only** — add the skill via the\n> [plugin](#the-skill) so Claude Code knows when to delegate to it.\n\n## Getting Started\n\nRun `cc-fleet` (or the `ccf` alias) with no arguments to open the interactive TUI:\n\n```bash\ncc-fleet\n```\n\nIn the TUI you register a vendor — give it a name, its Anthropic-compatible base URL, a\nmodels endpoint, a default model, and paste the API key. The key is written `0600` under\n`~\u002F.config\u002Fcc-fleet\u002Fsecrets\u002F` and is **never** passed via argv or shell history.\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ftui-add-vendor.png\" alt=\"cc-fleet TUI — add vendor form\" width=\"760\" \u002F>\u003C\u002Fp>\n\nThe config tree is created automatically on first save, so there is no separate init step.\nThe TUI also lists your vendors, lets you edit them, and manage multiple keys per vendor.\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ftui-vendors.png\" alt=\"cc-fleet TUI — vendor list\" width=\"760\" \u002F>\u003C\u002Fp>\n\nPress `tab` to switch to the **Agent status** board — it shows every live teammate grouped by\nsession → team, with its vendor, model, pane, PID, health, and hidden state, plus a list of\nsubagent jobs. From here you can hide (`h`) \u002F show (`s`) a teammate pane or refresh (`r`).\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Ftui-agent-status.png\" alt=\"cc-fleet TUI — agent status board\" width=\"760\" \u002F>\u003C\u002Fp>\n\nOnce at least one vendor is registered, just talk to Claude Code in plain language. The\nskill reads your request and picks how to run the work — there are two execution modes.\n\n### Teammate mode — a long-lived vendor worker on your team\n\n> *\"Spawn a deepseek teammate to refactor the parser package, then report back.\"*\n\nRuns the vendor as a **real Claude Code agent-team teammate**:\n\n- Claude calls native `TeamCreate`; cc-fleet launches the vendor's own `claude` process in a tmux pane.\n- Claude drives it with native `SendMessage` — you assign tasks, it works and reports back.\n- The teammate **stays alive across turns**, so you keep handing it follow-ups. Run several in parallel.\n- Your main session keeps its own auth — only the teammate pane bills the vendor key (via `apiKeyHelper`).\n\n> [!NOTE]\n> Teammate mode needs Claude Code's agent-teams enabled — see [Requirements](#requirements).\n\nStart inside a tmux session so the teammates split into panes alongside your lead:\n\n```bash\ntmux new-session -s cc-fleet\n```\n\n\u003Cp align=\"center\">\u003Cimg src=\"docs\u002Fassets\u002Fteammate-panes.png\" alt=\"cc-fleet teammates — lead on the left, deepseek and glm teammate panes on the right\" width=\"760\" \u002F>\u003C\u002Fp>\n\n> Lead session on the left; a `deepseek` and a `glm` teammate in their own panes on the right —\n> each a real `claude` process, driven by `SendMessage` exactly like a native teammate.\n\n> [!TIP]\n> **Not in tmux?** cc-fleet runs the teammate in a detached `cc-fleet-swarm-\u003Cteam>` server\n> instead — same `TeamCreate` \u002F `SendMessage` flow, the pane just isn't on screen. Attach with\n> `tmux -L cc-fleet-swarm-\u003Cteam> attach` to watch it.\n\n### Subagent mode — a one-shot headless call\n\n> *\"Use deepseek to summarize this 2,000-line log file.\"*\n\n`cc-fleet subagent \u003Cvendor>` runs the vendor model headless and returns the result\nsynchronously — **no pane, no team, no agent-teams**. Ideal for one-off analysis and batch\nfan-out of independent tasks.\n\n| Flag | Use |\n|------|-----|\n| `--background` | run detached; poll with `cc-fleet subagent-status` |\n| `--resume \u003Cid>` | continue a previous subagent (multi-turn) |\n| `--max-budget-usd` \u002F `--max-turns` | bound cost and runtime |\n\n> [!NOTE]\n> You never pick the mode by hand — Claude decides teammate vs subagent from the request,\n> spawns the vendor worker, and coordinates it for you.\n\n### Run a vendor in your own session\n\n> *Not delegation — this one is all you.*\n\n```bash\ncc-fleet run deepseek                          # an interactive claude, on DeepSeek\ncc-fleet run deepseek --dangerously-skip-permissions\n```\n\n`cc-fleet run \u003Cvendor>` drops you straight into an interactive Claude Code session with the LLM\nbackend swapped to the vendor — the same `claude` you know, just on DeepSeek \u002F GLM \u002F Qwen \u002F … and\nbilling the vendor key. Reach for a cheaper or different-jurisdiction model for your own\nday-to-day coding, not only for delegated work. `--model` overrides the default; `--permission-mode`\n\u002F `--dangerously-skip-permissions` set the permission posture. **No tmux, no agent-teams** — just a\nterminal.\n\n### More example prompts\n\n- *\"Spawn a glm teammate and a deepseek teammate; have each summarize its model's strengths, then compare the two.\"*\n- *\"Use deepseek to review the diff in `internal\u002Fspawn` and list any bugs you find.\"*\n- *\"Fan out kimi, qwen, and glm subagents over these three files in parallel and collect the results.\"*\n- *\"Spin up a deepseek teammate to port the test suite to table-driven form, then report back.\"*\n\n## CLI & advanced usage\n\nClaude drives the CLI for you, but every command also works by hand — multi-key rotation,\n`hide`\u002F`show`, background\u002Fresumable subagents, secret backends, teardown order, and more.\nSee **[CLI reference & advanced usage](docs\u002Fcli.md)**, or run `cc-fleet \u003Ccmd> --help`.\n\n## The skill\n\nThe binary is just the CLI. To teach Claude Code *when* to delegate, install the skill\nvia the plugin (the one-line installer does this by default):\n```bash\nclaude plugin marketplace add ethanhq\u002Fcc-fleet\nclaude plugin install cc-fleet@ethanhq\n```\n\n## Contributing\n\nPRs are very welcome — bug fixes, new vendor recipes, docs, tests, and features. Please read\nthe **[contribution guide](CONTRIBUTING.md)** first; a few house rules:\n\n- **UI changes and bug fixes need a screenshot or GIF** in the PR.\n- **AI-*assisted*** commits credit the tool with a `Co-Authored-By` trailer.\n- **Fully AI-*authored*** PRs add an autonomous-PR marker at the bottom of the PR body.\n\nA [PR template](.github\u002Fpull_request_template.md) is applied automatically when you open one.\n\n## License\n\n[Apache-2.0](LICENSE).\n","cc-fleet 是一个用于将任意第三方大语言模型（如 DeepSeek、GLM、Qwen 等）接入 Claude Code 作为原生队友或一次性子代理的工具。该项目通过 Go 语言编写，支持用户在保持自身认证信息不变的情况下，利用供应商提供的 API 密钥调用外部 LLM，并将其作为 Claude Code 的扩展功能使用。cc-fleet 提供了简单的命令行界面来管理不同供应商的配置文件，并能够自动处理 API 密钥的安全传输问题。适用于需要增强 Claude Code 功能或希望通过集成更多种类的语言模型来丰富其应用场景的开发者和团队。","2026-06-11 04:09:27","CREATED_QUERY"]