Zellij を使って Claude Code のマルチエージェント並列・直列実行環境を作った
jedipunkz🚀 です。 Claude Code を日常的に使う中で、大きなタスクを複数の独立したサブタスクに分けて並列処理させたいというニーズが出てきました。例えばコードのリファクタリングとテスト追加を同時に進めたり、複数ファイルへの独立した修正を並行して行ったりといったケースです。 2026年2月に Claude Code Agent Teams という機能が出てきたのですが、あくまでも1つのタスクの中で複数のサブエージェントを稼働させるものだったので自分としては期待していたものと若干異なりました。やりたいのは親 Claude Code のプロンプトから指示を出して複数のタスクを行ってくれる子 Claude Code のオーケストレーションでした。 そこで、Zellij の Pane 管理と git worktree を組み合わせて、親 Claude Code が複数の子エージェントを Zellij Pane として起動しタスクを並列・直列実行させる SKILL「zellij-swarm」を作りました。この記事ではその仕組みと使い方を紹介します。 SKILL は以下に置いています: https://github.com/jedipunkz/dotfiles/tree/main/.claude/skills/zellij-swarm 概要 親 Claude Code に対して「swarm で〜して」と自然言語で指示を出すと、タスクを複数のサブタスクに分解し、それぞれを別々の Zellij Pane で動く子 Claude Code エージェントとして起動するオーケストレーションの仕組みです。 各エージェントは独立した git worktree 上で作業し、完了後に親エージェントが各ブランチをマージして Git worktree の後片付けまで行います。 タスク間に依存関係がある場合は フェーズ に分割して対応します。同一フェーズ内のエージェントは並列実行、フェーズ間は直列実行です。 実行フローの構造 パターン 1: 並列のみ (依存関係なし) タスク A と B が互いに独立している場合、1 フェーズで並列実行して終了します。 [agent-a] ─┐ ├─ run-phase.sh ── merge [agent-b] ─┘ |-------| phase 1 パターン 2: 並列 → 直列 (フェーズ制御) タスク C がタスク A・B の結果に依存する場合、2 フェーズに分けます。Phase 1 完了・マージ後に Phase 2 が起動するため、C は A・B の成果を引き継いだ状態で作業できます。 ...