要点:
- Conductor の公式発表によると、Conductor は Meta に加わります。11 月 4 日から新規登録とダウンロードを停止し、Conductor Cloud は 11 月 13 日に読み取り専用、11 月 20 日にサービス終了となり、クラウドのユーザーデータの削除が始まります。ローカルの Mac 版は 2027 年初めまで新モデルと重要な修正が提供され、その後段階的に終了します。
- まだ Conductor Cloud を使っている場合は、11 月 13 日までに各ワークスペースを右クリックして「Transfer to local」を選ぶか、Settings → Account → Export data で全データをエクスポートしてください。
- Conductor の中核は ワークスペースごとに git worktree とブランチを 1 つずつ 用意する仕組みで、公式ドキュメントにもそう書かれています。これは Conductor がなくてもできます。
git worktree addでディレクトリを作り、それぞれで Claude Code か Codex を起動し、終わったらメインブランチにマージするだけです。 - 11 月 5 日の実測では、2 つの worktree で Claude Code と Codex を同時に走らせ、それぞれが関数とテストを書きました。合計 66.3 秒(Claude Code 27.0 秒、Codex 66.3 秒)で、マージ後に 11 個のテストがすべて通りました。Claude Code の
claude -wと Codex の--worktreeでも worktree を自動で作れます。 - GUI が欲しい場合は、オープンソースの Orca(MIT)、Emdash(Apache-2.0)、ターミナル版の Claude Squad(AGPL-3.0)があります。
API Key を作成して、Claude Code と Codex でタスクを並列実行する →
公式のスケジュール
| 日付 | 何が起きるか | やること |
|---|---|---|
| 11 月 4 日(水) | Conductor が Meta への合流を発表。新規登録とダウンロードを停止。既存ユーザーは Pro にアップグレード不可、既存の Pro ユーザーは Pro 機能を継続利用 | 新規ユーザーはもうインストールできないので、下の方法へ |
| 11 月 13 日(金) | Conductor Cloud のワークスペースが読み取り専用に。過去のチャットの閲覧とエクスポートは可能、新しいメッセージは送れない。有効な購読者には返金 | この日までにクラウドのワークスペースを「Transfer to local」 |
| 11 月 20 日(金) | Conductor Cloud 終了、クラウドのユーザーデータ削除開始 | この日までに Settings → Account → Export data |
| 2027 年初め | ローカル版 Conductor が段階的に終了。それまでは新モデルと重要な修正を提供 | ローカル版はまだ使えるが、今のうちに依存しない手順へ移るのがおすすめ |
日付は Conductor の発表と 0.93.0 の変更履歴によります。TechCrunchによると、Meta は買収を認めたものの詳細は明かしていません。Axiosによると、Conductor は Charlie Holtz と Jackson de Campos が創業し、金銭的条件は非公開です。X にもトレンドのニュースまとめがあります。
Conductor がやっていることを 4 ステップに分解
Conductor のドキュメントによると、新しいワークスペースを作るたびに git worktree が作られてブランチがチェックアウトされ、通常は ~/conductor/workspaces/<リポジトリ名>/<ワークスペース名> に置かれます。エージェントはそのディレクトリのファイルだけを編集し、テストもそこで実行され、ブランチがレビュー・プッシュ・PR の単位になります。
つまり Conductor を外したとき、自分で補うのは 4 ステップだけです。
- 1 タスク 1 ディレクトリ:
git worktree addでタスクごとに専用のディレクトリとブランチを作る。 - 1 ディレクトリ 1 セッション:各ディレクトリで Claude Code か Codex を 1 つ起動する。
- モデルの設定:Claude Code と Codex を同じ API Key につなぐ。
- マージと検証:各ブランチでテストしてコミットし、main にマージしてから worktree を削除する。
git worktree は Git の標準機能です。1 つのリポジトリに複数の作業ディレクトリを持たせ、コミット履歴は共有しつつファイルは別々なので、2 つのエージェントが同じファイルを編集してもディスク上で上書きし合いません。
ステップ 0:API Key を作成して Claude Code と Codex につなぐ
- aicodewith.ai で登録してログインし、左のナビゲーションバーの「キー管理」をクリックします。
- 右上の「キーを作成」をクリックし、ダイアログでわかりやすい名前(例:「並列エージェント - MacBook」)を付けます。
- 確定したらすぐにキー全体をコピーして保管します。ダイアログを閉じるとキー全体は二度と表示されません。なくした場合は削除して作り直すしかありません。詳しくは API Key の作成ドキュメントを参照してください。
Codex はグローバルの ~/.codex/config.toml を読むので、すべての worktree でこの 1 ファイルを共有でき、ディレクトリごとの設定は不要です。
# ~/.codex/config.toml
model = "gpt-6.1-sol"
model_provider = "aicodewith"
[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "YOUR_API_KEY"
Claude Code は ~/.claude/settings.json を読み、こちらもグローバルに効きます。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
}
}
Codex をまだ入れていない場合は「Codex インストールガイド」を、config.toml の各項目は「Codex config.toml 設定ガイド」を、Claude Code の他の設定方法は「Claude Code をサードパーティ API につなぐ方法」を参照してください。
ステップ 1:タスクごとに worktree を 1 つ
始める前に、ビルド成果物とエージェントが作る worktree のディレクトリを .gitignore に追加しておきます。最初の実測ではこれを忘れ、マージが __pycache__ に止められました(ステップ 4 参照)。
# メインのチェックアウトで、まずビルド成果物とエージェントが作る worktree を無視する
cat >> .gitignore <<'EOF'
__pycache__/
node_modules/
.claude/worktrees/
EOF
git add .gitignore && git commit -m "ignore build output and agent worktrees"
続いてタスクごとに worktree を作ります。
cd ~/code/demo # あなたのリポジトリ
git switch main && git pull
git worktree add ../demo-wt/slugify -b feat/slugify
git worktree add ../demo-wt/truncate -b feat/truncate
git worktree list
出力:
~/code/demo a97cf41 [main]
~/code/demo-wt/slugify a97cf41 [feat/slugify]
~/code/demo-wt/truncate a97cf41 [feat/truncate]
タスクが多いときは小さなスクリプトが便利です。名前を渡すとディレクトリと agent/<名前> ブランチを作り、パスを表示します。
#!/usr/bin/env bash
# new-task.sh <name> [base] タスク用ディレクトリを作ってパスを表示
set -euo pipefail
name="${1:?usage: new-task.sh <name> [base]}"
base="${2:-main}"
repo="$(git rev-parse --show-toplevel)"
wt="$(dirname "$repo")/$(basename "$repo")-wt/$name"
git -C "$repo" worktree add -q "$wt" -b "agent/$name" "$base"
echo "$wt"
使い方:
cd "$(./new-task.sh fix-login)" && claude
cd "$(./new-task.sh add-export)" && codex
注意:worktree には Git が追跡しているファイルしか入りません。.env や node_modules のようにコミットしていないものは新しいディレクトリに現れないので、コピーするか依存関係を入れ直してください。Conductor の「Configure your project」がやっているのはこの部分です。
ステップ 2:ディレクトリごとに Claude Code か Codex を起動
対話モード:ターミナルのタブを 2 つ開き、それぞれ別の worktree に cd してから claude か codex を実行します。tmux を使えば 1 画面で 2 つ見られます。
# 左に Claude Code、右に Codex
tmux new-session -d -s agents -c ../demo-wt/slugify "claude"
tmux split-window -h -t agents -c ../demo-wt/truncate "codex"
tmux attach -t agents
実測では、Claude Code も Codex も各 worktree を初めて開いたときに一度だけ「このフォルダを信頼するか」を聞いてきました。新しいパスだからです。
非対話モード:タスクがはっきりしていて結果だけ欲しいときは、claude -p と codex exec をバックグラウンドで同時に走らせます。
PA="Add textkit/slug.py with slugify(s) ... Add tests/test_slug.py ... Only create these two files. Then run: python3 -m unittest discover -s tests -v"
PB="Add textkit/truncate.py with truncate(s, width, suffix='...') ... Add tests/test_truncate.py ... Only create these two files. Then run the tests."
(cd ../demo-wt/slugify && claude -p "$PA" --allowedTools "Write,Edit,Read,Bash(python3:*)") &
(cd ../demo-wt/truncate && codex exec -s workspace-write "$PB") &
wait
プロンプトに「Only create these two files」と書いて 2 つのタスクのファイル境界を分けておくと、マージでコンフリクトしません。タスクの分け方は「Codex Subagents でタスクを分割する方法」も参考になります。
ステップ 3:実測結果
テスト環境:2026 年 11 月 5 日 06:16–06:30(北京時間、UTC+8)、Linux、Claude Code 2.1.318、codex-cli 0.166.0(モデル gpt-6.1-sol)、当サイトの Key。HOME と CODEX_HOME は隔離したディレクトリを指し、テスト用リポジトリは関数が 1 つだけの小さな Python パッケージ textkit です。
2 つのタスクを同時に開始しました。Claude Code は feat/slugify で slugify() を、Codex は feat/truncate で truncate() を書き、どちらも単体テストを追加して自分で実行します。
[Claude Code 2.1.318 · ~/code/demo-wt/slugify · feat/slugify]
All 7 tests pass. I added `textkit/slug.py` and `tests/test_slug.py`,
and those are the only files I created.
[exit 0, 27.0 s]
[Codex 0.166.0 · ~/code/demo-wt/truncate · feat/truncate]
workdir: ~/code/demo-wt/truncate
model: gpt-6.1-sol
provider: aicodewith
sandbox: workspace-write
...
Ran 5 tests in 0.000s
OK
[exit 0, 66.3 s]
| 項目 | 結果 | 所要時間 |
|---|---|---|
| Claude Code(worktree feat/slugify) | 新規ファイル 2 つ、テスト 7 件成功 | 27.0 秒 |
| Codex(worktree feat/truncate) | 新規ファイル 2 つ、テスト 5 件成功 | 66.3 秒 |
| 2 つ同時に走らせた合計 | 遅いほうで決まる | 66.3 秒 |
| 2 つのブランチをマージ | コンフリクトなし、main でテスト 11 件成功 | 1 秒未満 |
| claude -w + codex exec --worktree を同時実行 | それぞれ関数とテストを 1 つ追加、テスト成功 | 16.7 秒 / 24.4 秒 |
| Claude Code でマージコンフリクトを解消 | 両方の変更を残し、テスト 13 件成功 | 17.5 秒 |
2 つのタスクは互いを待たないので、合計時間は遅いほうと同じです。順番に 1 つずつやれば 2 つの時間の合計になります。
ステップ 4:マージと検証
各 worktree でまずテストを実行してコミットし、すべてコミットしたらメインのディレクトリに戻って順にマージします。
# 各 worktree で:テストを実行してからコミット
cd ../demo-wt/slugify
git status --short
python3 -m unittest discover -s tests
git add -A && git commit -m "feat: slugify"
# メインのチェックアウトに戻ってマージ
cd ~/code/demo
git merge --no-ff feat/slugify
git merge --no-ff feat/truncate
python3 -m unittest discover -s tests -v
マージ結果:
* 9765c15 merge truncate
|\
| * 55ce497 feat: truncate
* | b7b9d4c merge slugify
|\ \
| |/
|/|
| * c5c0b99 feat: slugify
|/
* a97cf41 init textkit
Ran 11 tests in 0.000s
OK
最初のマージではこのエラーが出ました。
$ git merge --no-ff feat/slugify
error: The following untracked working tree files would be overwritten by merge:
tests/__pycache__/test_core.cpython-313.pyc
textkit/__pycache__/__init__.cpython-313.pyc
textkit/__pycache__/core.cpython-313.pyc
Please move or remove them before you merge.
Aborting
テスト実行で生成された __pycache__ がブランチにコミットされ、メインのディレクトリにある同名の未追跡ファイルがマージを止めたのが原因です。Claude Code もタスク終了時にこの点を指摘していました。対策はステップ 1 の .gitignore です。すでにコミットしてしまった場合は、ブランチで git rm -r --cached してからマージします。
検証チェックリスト:
- 各ブランチの
git status --shortに想定どおりのファイルだけがある - 各ブランチのテストが通り、マージ後に main で全テストをもう一度実行する
- 2 つのブランチが同じファイルを変更していたら、次の節の方法でコンフリクトを処理する
終わったら worktree とブランチを削除します。
git worktree remove ../demo-wt/slugify
git worktree remove ../demo-wt/truncate
git branch -d feat/slugify feat/truncate
git worktree prune
git worktree list
git コマンドを打ちたくない:claude -w と codex --worktree
どちらの CLI も今は自分で worktree を作れます。実測したバージョンでは、claude --help に -w, --worktree [name] があり、codex --help と codex exec --help の両方に --worktree(Run the session in a new managed Git worktree)があります。公式の説明は Claude Code のドキュメントと Codex の worktree ドキュメントにあります。
# Claude Code: リポジトリのルートで実行
claude -w words # = claude --worktree words
# Codex: 対話モードでも非対話でも可
codex --worktree
codex exec --worktree -s workspace-write "Add title_case() to textkit/core.py ..."
2 つのセッションを同時に走らせたあとの git worktree list:
$ git worktree list
~/code/demo 987a3ea [main]
~/code/demo/.claude/worktrees/words 987a3ea [worktree-words] locked
~/.codex/worktrees/f0c2/demo 987a3ea (detached HEAD)
実測で気づいた注意点は 3 つです。
- 作られる場所が違う:Claude Code はリポジトリ内の
.claude/worktrees/<名前>にworktree-<名前>ブランチで作り、Codex は~/.codex/worktrees/以下にブランチなしの detached HEAD で作ります。.claude/worktrees/を.gitignoreに入れ、Codex 側はマージ前にブランチを作ってください。 - Claude Code の worktree はロックされる:セッション終了後もロックが残るので、そのまま
git worktree removeするとエラーになります。先にgit worktree unlockが必要です。 - 同じファイルを触る 2 タスクはコンフリクトする:今回はわざと両方に
textkit/core.pyへ関数を追加させました。
コミットとマージ:
# Claude Code の worktree はすでに worktree-words ブランチ上
cd ~/code/demo/.claude/worktrees/words
git add -A && git commit -m "feat: count_words"
# Codex の worktree は detached HEAD なので先にブランチを作る
cd ~/.codex/worktrees/f0c2/demo
git switch -c feat/title-case
git add -A && git commit -m "feat: title_case"
cd ~/code/demo
git merge --no-ff worktree-words
git merge --no-ff feat/title-case
2 つ目のマージでコンフリクトしました。
Auto-merging tests/test_core.py
CONFLICT (content): Merge conflict in tests/test_core.py
Auto-merging textkit/core.py
CONFLICT (content): Merge conflict in textkit/core.py
Automatic merge failed; fix conflicts and then commit the result.
コンフリクトの解消はエージェントに任せられます。ただし claude -p には --permission-mode acceptEdits が必要です。最初は --allowedTools だけを渡したところ、Claude Code のファイル書き込みがブロックされ、コンフリクトはそのまま残りました。
claude -p "This repo is in the middle of a git merge with conflicts in textkit/core.py and tests/test_core.py. Keep both sides, remove the conflict markers, run python3 -m unittest discover -s tests, and report the result. Do not commit." \
--permission-mode acceptEdits \
--allowedTools "Edit,Read,Bash(python3:*),Bash(git status:*),Bash(git diff:*)"
# コンフリクトマーカーが残っていないのを確認してからコミット
grep -rn '<<<<<<<' textkit tests
git add textkit/core.py tests/test_core.py && git commit -m "merge title_case"
python3 -m unittest discover -s tests -v
出力:
A grep found no conflict markers left in `textkit/` or `tests/`.
I didn't stage or commit anything, so git still lists both files as unmerged (`UU`).
[exit 0, 17.5 s]
Ran 13 tests in 0.001s
OK
後片付けで出たロック:
$ git worktree remove .claude/worktrees/words
fatal: cannot remove a locked working tree, lock reason: claude session words (pid ...)
use 'remove -f -f' to override or unlock first
$ git worktree unlock .claude/worktrees/words && git worktree remove .claude/worktrees/words
$ git worktree remove ~/.codex/worktrees/f0c2/demo
$ git branch -d worktree-words feat/title-case
GUI が欲しい:Conductor の代わりになるツール
GitHub でライセンスと説明を確認できたプロジェクトだけを挙げます。
| ツール | 概要 | 分離の仕組み | 対応環境 | ライセンス |
|---|---|---|---|---|
| Orca | 複数の CLI エージェントをまとめて扱うデスクトップアプリ。Claude Code、Codex、OpenCode などに対応 | タスクごとに git worktree | macOS、Windows、Linux、モバイルアプリもあり | MIT |
| Emdash | コーディングエージェントを並列実行するデスクトップアプリ。diff レビューと PR 機能付き | エージェントごとに worktree とブランチ | macOS、Windows、Linux | Apache-2.0 |
| Claude Squad | Claude Code、Codex、OpenCode、Amp などの複数セッションを管理するターミナルアプリ | tmux セッション + git worktree | ターミナル(tmux が必要) | AGPL-3.0 |
| claude -w | Claude Code に内蔵 | セッションごとに worktree | Claude Code が動く環境 | — |
| codex --worktree | Codex CLI に内蔵。Codex アプリにも worktree 機能あり | セッションごとに worktree | Codex が動く環境 | — |
どれも中身は git worktree なので、上の 4 ステップの考え方はそのまま使えます。Key は Claude Code と Codex のグローバル設定に入れておけば、どのツールからでもそのまま使えます。
並列にする前に、本当に並列が必要か考える
エージェントは多ければよいわけではありません。ファイルが重なるタスクは上のようにコンフリクトしますし、1 つのタスク内のステップはサブエージェントのほうが向いていることがよくあります。
- Claude Code でサブタスクを軽量モデルに任せる:「Claude Code で Haiku 5.5 サブエージェントを設定する方法」
- 決まった流れはサブエージェントを積み上げるより Skill にまとめる:「サブエージェントを Claude Code Skill にまとめる」
- Codex でのタスク分割、ファイル境界、検証方法:「Codex Subagents でタスクを分割する方法」
シンプルな目安:互いに関係のない機能や修正は worktree で並列、1 つの機能の中の調査・コード・テストはサブエージェント。
API Key を作成して、Claude Code と Codex につなぐ →
よくある質問
ローカルの Conductor はいつまで使える?
公式発表によると、ローカル版は通常どおり動作し、2027 年初めまで新モデルと重要な修正が提供され、その後段階的に終了します。ダウンロードは停止済みなので、まだ入れていない人はもう入手できません。
Conductor Cloud のデータはどうエクスポートする?
ワークスペースを右クリックして「Transfer to local」を選ぶと、ワークスペースとチャットを Mac に移せます。全データは Settings → Account → Export data からエクスポートできます。11 月 13 日に読み取り専用になってもエクスポートは可能で、11 月 20 日から削除が始まります。
git worktree と 2 回 clone するのはどう違う?
worktree は同じ .git を共有します。コミット・ブランチ・リモート設定は 1 つで、片方のディレクトリでのコミットはもう片方からすぐ見え、リポジトリを再ダウンロードする必要もありません。制約は、同じブランチを 2 つの worktree で同時にチェックアウトできないことです。
エージェントは同時にいくつ動かすのがよい?
レビューしきれる diff の数までです。まずは 2〜3 個から始め、タスクごとにファイルの境界をはっきりさせるのがおすすめです。すべてのセッションで 1 つの Key を共有してもよく、各リクエストはコンソールの利用履歴で確認できます。
Windows でも使える?
git worktree、Claude Code、Codex はいずれも Windows に対応しています。tmux は WSL が必要です。Orca と Emdash はどちらも Windows 版を提供しています。



