Codex CLI 0.154.0のworktree実践術:隔離から統合まで

Codex CLI 0.154.0のworktree機能を実践的に解説します。隔離セッションの起動、作業場所と差分の確認、テスト、コミットの取り込み、後片付けまでを順に整理。依存関係、ポート、データベース、キャッシュ、秘密情報を別途管理する際の注意点や、並列開発で役立つ用途もわかります。

Thursday, September 10, 2026Omid Saffari
Codex CLI 0.154.0のworktree実践術:隔離から統合まで

Codex CLIでは、メインの作業ツリーに手を加えず、コーディングタスク専用のGitチェックアウトを管理できるようになりました。Codex CLI 0.154.0で追加された--worktreeフラグと/worktreeコマンドにより、これまで手作業だったworktree(ワークツリー)の運用を、セッション開始時の標準的な選択肢として扱えます。すでにCodex Plusを月額$20で利用している場合、worktree専用の料金は別途公表されていません。ただし、並列で動かす各セッションは同じCodex利用枠を消費します。

Codex CLIでworktreeを最短で始める

必要なのは、Codex CLI 0.154.0、ローカルのGitリポジトリ、そして有効化した実験的なworktrees機能です。古いバイナリには存在しないフラグを探すことにならないよう、最初にバージョンを確認します。

Bash
codex --version
npm install -g @openai/codex@0.154.0
codex features enable worktrees
codex features list

この設定コマンドを実行すると、機能の選択内容がCodexの設定に保存されます。一度だけ試すなら設定は変更せず、その実行時に--enable worktreesを加えます。

用途に応じて、新しい隔離セッション、ヘッドレスのタスク、または既存の会話から分岐したセッションを起動できます。

Bash
codex --enable worktrees --worktree "Upgrade the test runner and run its suite"
codex exec --enable worktrees --worktree "Find the flaky test and propose the smallest fix"
codex fork --enable worktrees --worktree <session-id> "Try the lower-risk implementation"

対話セッションを分岐する場合、<session-id>には/statusで表示されるチャットIDを指定します。バージョン0.154.0ではIDの明示が必須で、codex fork --worktree --lastは受け付けられません。

同じ操作はターミナルUIからも行えます。/worktreeと入力すると、現在の会話を新しいチェックアウトで続けるか、そこで新規会話を始めるか、このリポジトリですでにCodexが管理しているworktreeを参照するかを選べます。

Codexが作成するチェックアウト

管理対象のworktreeは、同じGitリポジトリにひも付く別のチェックアウトです。ひとつの蔵書目録を、ふたつの閲覧室で共有するイメージです。各部屋では別々のページを広げられますが、参照するコミットとブランチは共通です。

Codexは、元リポジトリでコミット済みのHEADから新しいチェックアウトをdetached HEAD状態で作り、新規セッションに結び付けます。detached HEADでは名前付きブランチを動かすのではなく、チェックアウトがコミットを直接指します。元のチェックアウトの位置は変わりません。

元のHEADからdetached状態の新規チェックアウトを作りCodexセッションへ結び付ける構成図
標準フローでは、コミット済みのHEADからdetachedチェックアウトを作成し、Codexセッションに結び付けます。

クリーンな状態から始まるため、注意すべき点があります。元のチェックアウトにある未コミットの編集内容は、新しいセッションには引き継がれません。一般的な.envnode_modulesディレクトリのような無視対象ファイルも同様です。OpenAIは、Desktopが管理するローカルworktree向けに.worktreeincludeによるコピーを案内していますが、コマンドラインで作成したworktreeは明確に対象外です。CLIでは、タスクに必要なものを別途準備する前提で進めます。

リポジトリ内の深い階層からCodexを起動した場合、管理対象チェックアウトでも相対的な位置が保たれます。たとえばapps/webから開始すると、コミット済みのリビジョンにそのディレクトリが存在する限り、新しいworktree内の対応するapps/webにセッションが置かれます。

起動から成果を残すまでの実践フロー

安全に進める要点は、開始時の状態を整え、移動先を確かめ、作業し、根拠を確認してから、残すか破棄するかを明示的に決めることです。

1. 本当に使いたいコミットから始める

--worktreeはブール型のスイッチであり、ブランチやベースを指定するオプションではありません。対象リポジトリのHEADを起点にします。起動前に目的のベースブランチへ切り替え、タスクに必要な元側の変更はコミットしておきます。特定のローカルチェックアウトをCodexに指定するには-C <repo-path>を使えます。

タスクが独立しているなら新規セッションが向いています。新しい試行にも元の会話で決めた内容や制約が必要なら、forkを選びます。forkは会話履歴を新しいチャットへ引き継ぎながら、作業だけを隔離されたチェックアウトへ移すため、最初の試行を比較用にそのまま残せます。

2. 編集前にチェックアウトを確認する

開始時にCodexへpwdgit status --shortgit rev-parse --short HEADを実行させます。作業ディレクトリが管理対象のパスであり、ステータスがクリーンで、コミットが意図した元のHEADと一致していることを確認します。

この確認だけで、優れた作業を誤ったベース上で進めてしまう、地味ながら損失の大きいミスを防げます。

3. その作業レーンに必要なものだけを導入する

worktreeが隔離するのは、チェックアウトされたファイルです。コンテナを作ったり、ポートを予約したり、データベースを複製したり、依存関係をインストールしたりする機能ではありません。管理対象チェックアウトの中で、そのリポジトリ標準のセットアップコマンドを実行します。衝突し得るリソースについては、並列セッションごとに別々のポート、一時データベース、キャッシュディレクトリ、テストアカウントを割り当てます。

隔離されたファイルと共有されるポートやデータベースサービスを対比した構成図
Gitが隔離するのはチェックアウトです。ポート、データベース、キャッシュなどの実行時状態は別途管理する必要があります。

ここが最も重要な制約です。Gitの差分がどちらもクリーンでも、両方のセッションが同じ開発用データベースを移行したり、同じポートを使おうとしたりすれば、互いに干渉します。

4. 差分を確認し、正しいスレッドを再開する

worktreeのセッション内では、/reviewで未コミットの変更を確認できます。別のターミナルから調べる場合は、まず/worktreeを開き、Browse worktreesで対象チェックアウトを選び、Copy working directoryを実行します。その後、git -C "<worktree-path>" status --shortgit -C "<worktree-path>" diff --statgit -C "<worktree-path>" diffを実行します。

codex review --worktreeは実行しないでください。バージョン0.154.0では、このフラグの組み合わせは拒否されます。実行中のworktreeセッション内からレビューするか、コピーしたパスを通常のレビューツールに指定します。

後から続けるときは、/worktreeBrowse worktreesを開き、管理対象チェックアウトを選んでResume owner threadを実行します。codex resume--worktreeを追加してはいけません。再開時は、新しいworktreeを割り当てるのではなく、すでにセッションと結び付いたチェックアウトへ戻る必要があります。

5. チェックアウトを片付ける前に変更を残す

採用する変更は、該当するテストを実行し、worktree内でコミットして、そのコミットSHAを控えます。元のチェックアウトではgit cherry-pick <sha>を使い、現在のブランチへコミットを取り込みます。detached状態のコミットに永続的な移動先を与えるため、worktreeを削除する前にcherry-pickしてください。

変更を独立したレビューブランチにするなら、worktree内でgit switch -c codex/<task>を実行し、コミット、push、プルリクエスト作成まで進めます。Gitでは、同じブランチを元のチェックアウトとworktreeで同時にチェックアウトできません。worktree側からpushするか、worktreeを削除してから別の場所でそのブランチをチェックアウトします。

確認、テスト、コミット、cherry-pick、削除の五段階を示す構成図
変更を残す手順は明確です。確認、テスト、コミット、元への取り込みを済ませ、クリーンなworktreeを削除します。

CLIで作ったworktreeは自動で削除されません。変更が安全にコミットされたか、意図どおり破棄できる状態になったら、チェックアウトがクリーンであることを確認し、元リポジトリからgit worktree remove <worktree-path>を実行します。--forceは避けます。git worktree pruneは後で古いGit登録を消すために使えますが、まだセッションがチェックアウトを所有していないか確かめる代わりにはなりません。

worktree導入でコストはどう変わるか

標準機能になったことで、小さいながら繰り返し発生していたシェル操作を省けます。0.154.0より前のCLIでは、パスを作り、ブランチを作成またはdetached状態にし、そのディレクトリでCodexを起動し、どのチャットと対応するか覚え、最後にGitとセッションの両方を片付ける必要がありました。新しいフラグは、起動時にチェックアウトの作成とセッションへのひも付けをまとめて行います。さらに/worktreeから、リポジトリを認識した一覧表示と再開ができます。

既存のCodex契約者に対して、チェックアウト専用の料金は別途公表されていません。Codex Plusは月額$20です。並列worktreeを整理する商用エージェントワークスペースのUnstoppableは、有料Proプランが月額$19からで、Businessはユーザーあたり$29、Enterpriseはユーザーあたり$49です。ネイティブ対応したCodexなら、すでに利用中のサブスクリプション内で、チェックアウト作成と再開という限定的な用途をまかなえます。

ただし、有料ワークスペースが担う残りの機能まで置き換えるものではありません。複数エージェントを横断するダッシュボード、ポート割り当て、共有環境のセットアップ、テスト結果の集約、プルリクエスト追跡、チームポリシー、コストレポートは、依然として素のチェックアウトより上の層にあります。並列セッションも同じCodex利用枠を使います。費用面での正しい捉え方は「並列開発が無料になった」ではなく、「隔離だけを目的に購入していたなら、オーケストレーションツールを減らせる可能性がある」です。

この機能を含む製品全体を知りたい場合は、ローカルCLIとエージェントの流れを扱ったCodexレビューが参考になります。以前のCodex CLI 0.152.0解説では、ターミナル操作を自動化するときに、リリース固有の制約がなぜ重要なのかを説明しています。

効果が大きい順:worktreeが向く七つの仕事

1. リスクの高い依存関係アップグレード

メンテナーは、フレームワーク、パッケージマネージャー、テストランナーの更新専用にworktreeを起動できます。Codexにロックファイルや設定を編集させ、メインのチェックアウトで進行中の機能開発を汚さずにフルテストを実行できます。成果はレビュー可能な更新レーンにまとまり、stashや無関係な編集のロールバックなしで破棄できます。

2. 同じ機能を異なる方針で実装

テックリードは、同じ計画の会話をふたつの管理対象worktreeへforkし、一方には最小限のパッチ、もう一方には構造から見直す案を依頼できます。差分の大きさ、テスト、移行リスクを比べれば、後の試行で先の成果を上書きすることなく、根拠に基づいて選べます。

3. 製品開発と並行したバグ調査

機能開発の途中にいるプロダクトエンジニアでも、コミット済みのHEADからクリーンなworktreeを作り、本番バグを再現できます。未完成の機能には触れず、そのレーンだけでCodexに計測、テスト、修正を進めさせられます。緊急時のstashを減らし、hotfixの差分も明瞭にできます。

4. 大規模なcodemodとリファクタリング

プラットフォームチームは、広範囲の名前変更やAPI移行を専用チェックアウトに分け、そこでフォーマッターとテストを動かせます。メインブランチに入れる前に、変更対象となったファイル一式を確認できるため、生成された大量の差分をコミットに値すると判断するまで隔離できます。

5. レビュー修正専用レーン

プルリクエストの作成者は、レビューのベースをコミットしてその状態から隔離されたCodexセッションを起動すれば、ローカルで開いている別ブランチを乱さずにレビューコメントへ対応できます。準備が整った時点でworktreeからpushでき、修正だけに集中したコミット列を保てます。

6. 再現可能なメンテナンス実行

ビルドエンジニアは、生成ファイルの更新や不安定なテストの調査といった限定的な作業にcodex exec --worktreeを使えます。ヘッドレス実行では、追跡対象ファイルがクリーンなチェックアウトと、後から確認できる永続セッションが得られます。メインの作業ツリーで何を開いていても、意図しない混入を抑えられるのが利点です。一方で、自動化側が依存関係のセットアップと後片付けを担う必要があります。

7. 安全なリポジトリ探索

新しくチームに加わった人は、普段使うチェックアウトに触れる前に、Codexへ未知のコードベースを整理させ、管理対象worktree内で小さなドキュメント変更やテスト変更を試せます。技術面だけでなく心理面でも、探索の境界が見え、簡単に破棄できることが利点です。

残された課題を狙う三つのプロダクト案

1. 最有力:worktree準備レイヤー

新しい管理対象チェックアウトを、実行可能で衝突しないタスクレーンへ変える小さなローカルツールです。プロジェクトの技術構成を判定し、承認済みの依存関係セットアップを実行し、ポートを割り当て、一時データベースまたはスキーマを作成します。さらに、選択した秘密情報だけを公開し、ヘルスチェックを行い、対応するクリーンアップ手順を表示します。

需要の裾野は広く、git worktreeは米国Googleで月間約9,900回、what is a git worktreeも月間590回ほど検索されています。Codexのネイティブ機能はチェックアウト作成を解決しましたが、実行環境の準備は手つかずです。そのため、これが最も有望な機会です。

販売可能な最小構成に必要なのは、リポジトリ用マニフェスト、セットアップと終了処理のコマンド、ポート予約、環境ファイルのテンプレート化、ステータス確認です。ただし、セキュリティ上の懸念があります。秘密情報をコピーしたり、複数エージェントを同じデータベースへ向けたりするツールは、解消する以上のリスクを生む可能性があります。OpenAIが将来、標準のライフサイクルフックを追加すれば、機会自体が狭まる点にも注意が必要です。

2. エージェント横断のレーンダッシュボード

複数のリポジトリやツールにまたがるworktreeを見つけ、所有セッション、ブランチまたはdetached状態、変更ファイル、テスト結果、Codex使用量、プルリクエスト、ディスク使用量を一覧化するデスクトップまたはターミナル向けダッシュボードです。安全な再開とクリーンアップ操作も提供します。

git worktree claude codeは米国で月間約480回、完全一致のparallel coding agentsは月間10回ほど検索されています。後者は小さな数字ですが、支払い行動はすでに見えています。並列エージェントworktreeを含むUnstoppableは月額$19からです。想定する購入者は、Codex、Claude Code、通常のターミナルをすでに併用している開発者です。

MVPは読み取り専用でも成立します。Git worktreeを列挙し、既知のセッションメタデータと照合し、必要に応じてステータスやテストのコマンドを実行し、各エージェントへ戻るディープリンクを用意します。ただし、標準機能との競争は避けられません。Codex 0.154.0は自ら管理するworktreeをすでに一覧表示できるため、エージェントを横断した可視性、実行時状態、チーム向けレポートで差を付ける必要があります。

3. 統合とクリーンアップのゲート

完了したエージェントの作業レーンとメインブランチの間に置くガードです。ステータスがクリーンか確認し、必須テストを実行し、ほかの稼働中worktreeが変更したファイルを検出します。さらに、cherry-pickの順序を提案し、未統合のコミットが残っている間は破壊的なクリーンアップを拒否します。

その需要は検索語にも表れています。git remove worktreeは米国で月間約390回、git worktree vs branchは320回、git worktree pruneは140回です。いずれも、隔離された作業を共有の成果へ変える局面に集中しています。

MVPは、ローカルGitコマンドと小さなポリシーファイルで構成できます。自動でコードを一行も編集しなくても価値を出せます。ただし、配布面には課題があります。GitクライアントやCIベンダーも同じチェックを追加できるため、独立したツールとして成立させるには、複数のコーディングエージェントと整っていない現実のリポジトリに対する優れた対応が欠かせません。

採用判断を左右する制約

ファイルの隔離が課題なら、ネイティブworktreeは有効です。ただし、実行環境全体を隔離する機能だと誤解してはいけません。

制約実務への影響
0.154.0では実験的機能コマンドや挙動が変わる可能性があるため、チームの手順書でCLIバージョンを固定または確認します。
ローカルGitリポジトリのみリモートセッションと、明示的に信頼されていないソースプロジェクトでは、この管理対象チェックアウトを割り当てられません。
コミット済みのHEADから開始元側の未コミット変更は残ります。必要な内容を先にコミットします。
デフォルトはdetached状態後片付けの前に、ブランチを作るかコミットSHAを保存します。
CLIによる自動削除なしパスを記録し、クリーンなworktreeを自分で削除します。
隔離するのはファイルであり実行環境ではない依存関係、ポート、データベース、コンテナ、キャッシュ、秘密情報は個別に管理します。
サブモジュールを再帰的に実体化しない必要なサブモジュールは新しいチェックアウト内で初期化します。
コマンド上の境界codex resume --worktreecodex review --worktreeは拒否され、対話型worktreeのforkには明示的なセッションIDが必要です。

このリリースには、DesktopアプリのHandoffボタンに相当するCLI機能もありません。コードを元へ戻す方法は、引き続きGit上で判断します。コミットしてcherry-pickする、ブランチをpushする、または破棄して削除する、という選択です。この明示的な工程には意味があります。隔離が有効なのは、意図しない変更がメインのチェックアウトへ流れ込まないからです。

Codex CLIはworktreeに対応していますか?

はい。Codex CLI 0.154.0では、--worktree/worktreeを通じて、新規またはforkしたローカルセッション向けの管理対象worktreeが実験的機能として追加されました。先にworktrees機能を有効にします。

Codexでworktreeを使うCLIコマンドは?

永続設定を済ませた後、対話セッションにはcodex --worktree "<prompt>"、非対話タスクにはcodex exec --worktree "<prompt>"を実行します。一度だけ試す場合は--enable worktreesを加えます。

Git worktreeとは何ですか?

同じリポジトリに属する別のチェックアウトです。それぞれ固有のファイルとHEADを持ちながら、コミット、ブランチ、そのほかのGitメタデータを元リポジトリと共有します。

Codexで会話を分岐するには?

codex fork --worktree <session-id>を使うと、既存の対話履歴を新しいチャットへ引き継ぎ、作成直後の管理対象チェックアウトに接続できます。チェックアウトは、元リポジトリでコミット済みのHEADを起点とするdetached状態です。

Codex CLIのworktreeセッションを再開するには?

ターミナルUIを開いて/worktreeと入力し、Browse worktreesでチェックアウトを選び、Resume owner threadを実行します。この一覧画面では、別のターミナルから確認するためのworktreeパスもコピーできます。

次の一手として、重要度の低い依存関係アップデートをひとつ選び、codex --enable worktrees --worktreeで実行します。コピーしたチェックアウトのパスから差分とテストを比較し、採用するコミットだけをcherry-pickしてからworktreeを削除してください。リポジトリに合わせた信頼できる隔離エージェント環境が必要なら、本番運用の仕組みづくりをお手伝いできます

最終更新
2026年9月10日
カテゴリー
Build

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

Claude Code 使い方ガイド:maxEffortLevelで推論レベルを制御

Claude Code 使い方ガイド:maxEffortLevelで推論レベルを制御

Claude Code 2.1.267で追加されたmaxEffortLevelの使い方を解説します。ユーザー、プロジェクト、マネージド設定で推論負荷に上限を設け、どの値が優先されるかを検証。条件をそろえた日常タスクで品質とトークン支出を別々に測り、導入すべき上限を判断する方法が分かります。2026年9月10日Build
ブラウザ自動化の録画FPSはどう選ぶ?agent-browser v0.37.0実践ガイド

ブラウザ自動化の録画FPSはどう選ぶ?agent-browser v0.37.0実践ガイド

ブラウザ自動化の実行結果を、チームがレビューしやすい動画証跡として残す方法を解説します。agent-browser v0.37.0の新しい30 fps既定値、1〜60 fpsの使い分け、ffmpegの確認、MP4/WebM保存、CIで失敗原因を追える証拠を残す実践手順まで具体的に整理しました。2026年9月8日Build
VPS 料金で見るUltaHostの更新コスト:契約期間・追加費用を徹底比較

VPS 料金で見るUltaHostの更新コスト:契約期間・追加費用を徹底比較

UltaHostのVPS 料金と更新費用を契約期間別に検証。Basicは月額$6.89からですが、長期契約は返金対象外となる場合があります。Plesk・cPanelの追加料金、2026年8月の値上げ、旧SKU、Hostinger・DigitalOceanとの比較まで、更新前に必要な判断材料を整理します。2026年9月7日Build
Claude Code 設定:ツール出力の上限を引き上げる方法

Claude Code 設定:ツール出力の上限を引き上げる方法

Claude Code 2.1.261で追加されたbashOutputMaxCharsとtaskOutputMaxCharsを使い、コマンドとバックグラウンドタスクの出力上限を安全に調整する方法を解説します。切れたログの回収、設定ファイルの選び方、コンテキスト消費とのバランスまで、実例を交えて確認できます。2026年9月6日Build
2026年版 AI ワークフロー自動化ツール10選:n8n・Zapier・Make・Gumloopを比較(2026年7月検証)

2026年版 AI ワークフロー自動化ツール10選:n8n・Zapier・Make・Gumloopを比較(2026年7月検証)

AI ワークフロー自動化ツール10製品を、課金単位、制御性、AIエージェント、セルフホスト、拡張性で徹底比較。n8n、Zapier、Make、Gumloopなどの料金、無料トライアル、最適な用途、導入時の注意点を、2026年7月31日に確認した公開情報だけで分かりやすく解説します。2026年9月6日Build
AIセキュリティツールおすすめ7選【2026年版】— エージェント防御を徹底比較

AIセキュリティツールおすすめ7選【2026年版】— エージェント防御を徹底比較

AIセキュリティツール7製品を、プロンプトインジェクション対策、実行時防御、レッドチーム、認証情報管理で比較。Check Point、Cisco、Promptfoo、Prisma AIRSなどの料金・無料枠・弱点を整理し、AIエージェントに本当に必要な多層防御と選び方を解説します。2026年9月6日Build
Cloudflare Workers PythonでDjangoとFastAPIを比較:選び方と移行の注意点

Cloudflare Workers PythonでDjangoとFastAPIを比較:選び方と移行の注意点

Cloudflare Workers PythonでDjangoとFastAPIのどちらを選ぶべきかを、料金、移行、WSGIとASGI、起動処理、Pyodide制約、運用適性から比較します。既存のフルスタック製品ならDjango、新規APIならFastAPIという判断軸と、移行を見送るべき条件まで具体的に解説します。2026年9月5日Build
Claude Code Skillsのコンテキストコストを削減する方法

Claude Code Skillsのコンテキストコストを削減する方法

Claude Code Skillsが毎ターン消費するコンテキストを/skill-doctorで可視化し、不要なスキルを安全に整理する方法を解説します。削除せずに表示範囲を調整し、新しいセッションで効果を検証する七つの手順、コスト計算、チーム運用の判断基準まで実践的にまとめました。2026年9月5日Build
ニュースレター

毎週日曜、一通の手紙。動くシステムの話。感想戦ではなく。

週刊。スパムなし。いつでも解除できます。