🏕️

1コマンドでClaude Codeが開発チームになる「ccteams」を作った

に公開

毎回エージェントをコピペしていた

Claude Code のサブエージェントは最高なんですが、使っているうちに、同じ作業を繰り返していることに気がつきました。新しいプロジェクトを始めるたびに、同じエージェント集団 ——実装担当、レビュー担当、スタックの規約を守る担当—— を毎回コピペしている。そこそこ良い構成なのに、1つのリポジトリに閉じていて、再利用できない。

また、新しい技術スタックで開発する場合、また新しいサブエージェントを考え直さないといけない。

そこで ccteams を作りました。エージェントチームのパッケージマネージャーです。1コマンドで、用意済みの Claude Code サブエージェントの「チーム」をプロジェクトに適用できます。

npm install -g ccteams
ccteams use go-api

例えばこれで現在のプロジェクトに、net/http 向けにチューニングした Go の builder + reviewer が入ります。作業が変わったら切り替えるだけ。

ccteams use next-ts     # Next.js App Router + TypeScript + Tailwind
ccteams use generalist  # 要件定義 → 設計 → 実装 → QA → 出荷(スタック非依存)

CLI DEMO

そもそも**どんなチームがいいのかわからない!**という場合も安心。プラグイン機能を用意しているので、/ccteams:choose-teamを使って直接AIに聞くことができます。

/plugin marketplace add toffyui/ccteams
/plugin install ccteams@ccteams
/ccteams:choose-team なんか良い感じのアプリを作りたい

Plugin DEMO

こうするだけで、AIがあなたのために自動で良い感じのチームを見繕って設定まで完了してくれます。

「チーム」とは何か

ccteamsがいうチームとは、Claude Code サブエージェント群です。各エージェントはおなじみの markdown(name / description / tools のフロントマター + システムプロンプト)で、それに orchestration.md(プロジェクトの CLAUDE.md に取り込まれるルール)が付きます。特別な仕組みも独自フォーマットもありません。自分で手作りするはずの構成が、最初から組まれていて再利用できる、それだけです。

同梱しているチームは8つ:

  • generalist — スタック非依存。機能を要件定義 → 設計 → 実装 → QA → 出荷まで
  • next-ts — Next.js App Router + TypeScript + Tailwind
  • frontend — フレームワーク非依存の UI/UX・アクセシビリティ
  • go-api — Go の HTTP API
  • python-fastapi — FastAPI + Pydantic v2
  • rails — Ruby on Rails
  • debug — 再現 → 原因特定 → 修正 → 回帰テスト
  • research — 選択肢を比較して提案(コードは書かない)

ccteams use が実際にやること

ブラックボックスにはしていません。ccteams use <team> の動作はこうです:

  1. チームの agent ファイルを .claude/agents/ にコピー
  2. .claude/active-team.md を配置し、CLAUDE.md@.claude/active-team.md の import 行を追加
  3. 配置物を .claude/.ccteams-manifest.json で追跡し、チーム切り替えをクリーンに
  4. 手書きした同名 agent は上書きしない(衝突ガードあり)

別のチームに切り替えるときは、前回 ccteams が置いたものだけを消します。自分で書いたファイルには触れないのでもしすでにある程度サブエージェントを自分で作っていた場合でも安心です。

プラグイン機能

より使いやすくするために、プラグイン機能も用意しました。
このプラグインを入れると、Claude Code から出ずにスラッシュコマンドで操作できます。

/plugin marketplace add toffyui/ccteams
/plugin install ccteams@ccteams

これで /ccteams:list-teams/ccteams:use-team <team>、そして個人的には一番有用だと思う /ccteams:choose-team が使えます。choose-team は、やりたいことを自然言語で書くと最適なチームを選んでくれるコマンドです。

Plugin DEMO

サブエージェント同士を相互にやり取りさせたい人向け

サブエージェント同士を並行で動かして相互にやり取りさせたい場合は--agent-teamsをつけることで、agent-teams モードが有効になります

ccteams use generalist --agent-teams

これでプロジェクトに対してチームを作ってxxしてということで、エージェントチームが起動されます。

試してみてください

npm install -g ccteams
ccteams list

オープンソース(MIT)です: github.com/toffyui/ccteams。GitHubでスターをもらえると励みになります。

また、もし実際に使うものを教えていただければ、随時チームを増やしていくことを考えていまスノでお気軽にコメントもらえると嬉しいです!

Discussion