CodexOpenAI の機能

FEATURE

Worktrees (ワークツリー)

Worktrees (ワークツリー) は、Codex が同じプロジェクトの中で、互いに干渉しない独立したチャットを複数並行して動かすための機能です。

プレビュー・先行提供公式発表と照合済み
初出未調査
ページ更新
提供状態プレビュー・先行提供
公式の記載で確認できた環境ターミナル、デスクトップアプリ、スマホアプリ
提供を確認できたプラン公式に記載なし
目次 CONTENTS
  1. できること
  2. 機能解説
  3. 使い方
  4. 利用シーン
  5. Claude・Anthropic の対応する機能
  6. これまでの変更
  7. 関連する機能
  8. 出典
CAN DO

できること

POINT 01

複数チャットの並行作業

同じプロジェクトで、互いに干渉しない独立したチャットを複数動かせます。各ワークツリーはリポジトリの全ファイルの独自のコピーを持ち、.git のメタデータを共有するため、複数のブランチを並行して扱えます。

POINT 02

Local との引き渡し

Handoff を使うと、チャットを Local とワークツリーの間で移動できます。必要な Git の操作は Codex が行い、チャットとコードの両方が移ります。

POINT 03

定期タスクの分離実行

Git リポジトリでは、scheduled tasks (定期タスク) を専用のバックグラウンドのワークツリーで実行でき、進行中の作業と衝突しません。

GUIDE

機能解説

概要

内部で Git worktrees を使うため、Git リポジトリに含まれるプロジェクトでだけ使えます。リポジトリ、ワークツリー、実行されるコマンドは、プロジェクトがあるコンピューターまたはリモートの開発環境に置かれたままです。

Codex が管理するワークツリーの仕組み

チャットは既定で Codex-managed worktree (Codex が管理するワークツリー) を使います。このワークツリーは通常 1 つのチャット専用です。

  • 作成場所は $CODEX_HOME/worktrees です。開始コミットは、チャット開始時に選んだブランチの HEAD コミットです。
  • ローカル変更のあるブランチを選んだ場合は、コミットしていない変更もワークツリーに適用されます。
  • 作成場所を変えるには、Settings > Worktrees (設定 > ワークツリー) を開き、Worktree root (ワークツリーのルート) を変更します。ワークツリーの作成は、コンピューターで設定された保存場所に従います。
  • Git worktrees を内部で使うため、Git リポジトリに含まれるプロジェクトでだけ動作します。

ワークツリー上での作業と Handoff

ワークツリーでの作業を続ける場合は、チャットのヘッダーにある Create branch here (ここにブランチを作成) ボタンでワークツリーをブランチにします。その後、変更のコミット、リモートリポジトリへのブランチの push、GitHub でのプルリクエストの作成ができます。ヘッダーの Open (開く) ボタンで IDE をワークツリーに対して開くことも、統合ターミナルを使うこともできます。なお、ワークツリー上で作成したブランチは、Local のチェックアウトを含むほかのワークツリーではチェックアウトできません。

チャットを手元で扱いたい場合は、チャットのヘッダーで Hand off (引き渡し) を選び、Local (ローカル) へ移します。逆に Local で作業中に手を空けたい場合は、Hand off でチャットをワークツリーへ移すと、Codex がバックグラウンドで作業を続けます。各チャットは同じワークツリーと結び付いたままで、後でワークツリーへ戻すと同じバックグラウンド環境に戻ります。

Handoff は Git の操作を使うため、.gitignore の対象のファイルはチャットと一緒には移動しません。ただし、.worktreeinclude によって Codex がローカルの管理ワークツリーへコピーしたファイルは別です。

.worktreeinclude による無視ファイルのコピー

Git が無視しているファイルを管理ワークツリーへ持ち込みたい場合は、リポジトリのルートに .worktreeinclude ファイルを置き、コピーする無視対象のパス、または .gitignore 形式のパターンを列挙します。Codex が管理ワークツリーを作成するときに、それらがコピーされます。

  • コピーされるのは .worktreeinclude に一致する無視ファイルだけで、Git が追跡していないほかのローカルファイルはコピーされません。
  • 無視されている AGENTS.override.md は自動でコピーされるため、.worktreeinclude に書く必要はありません。
  • コピー元のシンボリックリンクはスキップされ、新しいチェックアウトに既にあるファイルは上書きされません。
  • この動作の対象は、ローカルの ChatGPT デスクトップアプリが管理するワークツリーです。リモートのワークツリーや、コマンドラインで自分で作成した Git worktree は対象外です。

ワークツリーの自動削除と復元

Codex は既定で、直近 15 個の Codex-managed worktree を保持します。上限の変更や自動削除の無効化は設定から行えます。

  • 自動で削除されるのは、関連するチャットをアーカイブしたとき、または設定した上限に収めるために古いワークツリーを消す必要があるときです。
  • ピン留めしたチャットに結び付いている場合や、チャットが進行中の場合は自動では削除されません。
  • 削除の前に、Codex はワークツリー上の作業のスナップショットを保存します。ワークツリーが削除された後でチャットを開くと、復元の選択肢が表示されます。
  • 以前のバージョンで作成した永続的なワークツリーは引き続き使え、自動削除の対象になりません。ただし、プロジェクトメニューから永続的なワークツリーを新たに作成することはできません。

エージェント一覧では、ワークツリーの所有者情報が表示され、クリーンな管理ワークツリーを確認のうえで削除できます。

HOW TO USE

使い方

新しいチャットをワークツリーで始める流れです。

  1. 新しいチャットの画面で、composer (入力欄) の下にある Worktree (ワークツリー) を選びます。必要なら local environment (ローカル環境) を選び、ワークツリー用のセットアップスクリプトを実行させます。
  2. composer (入力欄) の下で、ワークツリーの基にする Git ブランチを選びます。main / master ブランチ、feature ブランチ、または unstaged のローカル変更を含む現在のブランチを選べます。
  3. プロンプトを送信すると、Codex が選んだブランチを基に Git worktree を作成します。既定では detached HEAD の状態で作業します。
  4. 準備ができたら、そのままワークツリー上で作業を続けるか、チャットを Local のチェックアウトへ引き渡します。Local との引き渡しでは、チャットとコードの両方が移動します。
公式ヘルプを開く ↗
USE CASES

利用シーン

CASE 01

同じリポジトリで、ある作業をワークツリーでバックグラウンドに任せつつ、手元の Local で別の作業を続ける場面に向いています。

CASE 02

複数のブランチの変更を、互いに干渉させずに並行して扱う場面に使えます。

CASE 03

定期タスクを、進行中の作業と衝突しない専用のバックグラウンドのワークツリーで動かす用途に使えます。

CASE 04

ワークツリー上の変更をブランチにし、push と GitHub でのプルリクエスト作成までつなげる流れに使えます。

COMPARISON

Claude・Anthropic の対応する機能

比較の単位となる業務: Git ワークツリーによる分離された作業環境での並行開発

Claude Code の Worktrees も、Git worktree を使った作業環境を扱います。ワークツリーの起点について、Codex は開始時に選んだブランチの HEAD コミットから作成し、選んだブランチにローカル変更があればコミットしていない変更も適用します。Claude Code では worktree.baseRef 設定 (fresh | head) により、--worktree、EnterWorktree、エージェント分離用の worktree が origin/<default> とローカルの HEAD のどちらから分岐するかを選びます。

後片付けについて、Codex は既定で直近 15 個の管理ワークツリーを保持し、関連するチャットのアーカイブ時や上限を超えたときに自動で削除します。Claude Code では、古いエージェント worktree のクリーンアップで、PR が squash マージされた worktree も削除されます。

セッションの再開について、Codex では実験的なワークツリー機能として、--worktree または /worktree で作成した分離チェックアウトを閲覧・再開できます。Claude Code では --resume で、同じリポジトリの別の worktree のセッションを直接再開できます。

TIMELINE

これまでの変更

  1. Linux ホストでのワークツリー作成の問題が修正されました。

  2. ワークツリー機能が有効な場合に、信頼済みのローカルプロジェクトから管理された Git ワークツリーを作成・一覧表示するツールが追加されました。

  3. パスが Windows のディレクトリと衝突する WSL リポジトリで、ワークツリーの作成とチャットのフォークの問題が修正されました。ファイルと変更がデスクトップで使われるチェックアウトと一致するよう、ワークツリー対応が改善されました。

  4. ワークツリーの作成が、コンピューターで設定された保存場所に従うようになりました。

  5. エージェントコマンドセンターからワークツリーセッションを作成できるようになり、ワークツリー機能が既定で有効になりました。

  6. 新しいタスクが、プロジェクトごとにワークツリーモードとセットアップ環境を記憶するようになりました。

  7. エージェント一覧でワークツリーの所有者情報が表示され、クリーンな管理ワークツリーを確認付きで削除できるようになりました。

  8. 実験的な機能として、--worktree または /worktree で新規またはフォークしたセッション用の分離されたチェックアウトを作成し、閲覧・再開できるようになりました。codex exec に管理されたワークツリーが追加されました。

  9. 新しいワークツリーの開始ブランチを選ぶことや、現在のローカルの変更を含めることができるようになりました。iOS 26 では、ワークツリーのセットアップをバックグラウンドで継続でき、進行状況が Live Activity に表示されます。

  10. チャットをワークツリーへ移すときに、選択中のモデルと思考レベルが保持されるようになりました。

  11. 新しいスレッドで、ブランチの選択、ワークツリーの作成、環境セットアップスクリプトの実行に対応しました。

対象のプランは、公式のリリースノートには記載がありません。

SOURCES

出典

出典 16 件を表示