CodexOpenAI の機能

FEATURE

Codex app server

Codex app server (app-server) は、Codex VS Code 拡張のようなリッチクライアントを動かすために Codex 自身が使っているインターフェースです。

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

できること

POINT 01

自社製品への組み込み

Codex VS Code 拡張と同じインターフェースを使い、自社の製品に Codex を組み込めます。認証、会話履歴、承認、エージェントのイベントのストリーミングを扱えます。

POINT 02

スレッドとターンの操作

スレッドの API で会話の作成・一覧・アーカイブができ、thread/start・thread/resume・thread/fork で新規開始・継続・履歴の分岐を行えます。turn/steer を使うと、新しいターンを作らずに実行中のターンへ入力を追加できます。

POINT 03

別マシンからの TUI 接続

Remote terminal UI mode で、あるマシンで動かす app-server に、別のマシンの Codex CLI のターミナル UI から接続できます。--remote には ws://・wss://・unix://・unix://PATH のエンドポイントを指定できます。

GUIDE

機能解説

概要

自社の製品の中に Codex を深く組み込み、認証、会話履歴、承認、エージェントのイベントのストリーミングを扱う場面に向けたものです。1 台のマシンで app-server を動かし、別のマシンから Codex CLI のターミナル UI を接続する使い方もできます。

Codex app server は、Codex がリッチクライアントを動かすために使うインターフェースで、実装は Codex の GitHub リポジトリでオープンソースとして公開されています。

  • 通信は JSON-RPC 2.0 のメッセージによる双方向通信です。送受信するメッセージでは "jsonrpc":"2.0" のヘッダーを省きます。
  • 既定のトランスポートは stdio (--listen stdio://) で、改行区切りの JSON (JSONL) を使います。
  • --listen ws://IP:PORT で起動すると、同じリスナーが基本的な HTTP のヘルスチェックにも応答します。
  • CLI から TypeScript のスキーマ、または JSON Schema の一式を生成できます。生成物は実行した Codex のバージョンに対応したものです。

主な API

  • レビュー: review/start はスレッドに対して Codex のレビュー担当を実行し、レビュー結果を順に送ります。対象には未コミットの変更、ベースブランチ、コミット、独自の指示を指定できます。
  • コマンド実行: command/exec は、スレッドを作らずにサーバーのサンドボックス内で 1 つのコマンドを実行します。
  • スレッドのシェルコマンド: thread/shellCommand はサンドボックスの外でフルアクセスで動き、スレッドのサンドボックス方針を引き継ぎません。クライアントは、利用者が明示的に実行したコマンドに限って使わせる前提です。
  • 承認: 利用者の Codex の設定によっては、コマンドの実行やファイルの変更に承認が必要になる場合があります。その際、app-server はサーバー側から JSON-RPC のリクエストをクライアントに送り、クライアントが判断の内容を返します。
  • Skills: 入力テキストに $<skill-name> を含めるとスキルを呼び出せます。skill の入力項目を加えると、サーバーがスキルの指示全体を差し込みます。
  • ファイルシステム: v2 のファイルシステム API は絶対パスで動作します。fs/watch を使うと、ファイルやディレクトリの変更に合わせてクライアントの画面の状態を更新し直せます。
  • 認証: auth/account の JSON-RPC で、認証状態の確認、ログインの開始・取り消し、ログアウトができます。
  • 接続ごとの設定: 実験的なメソッドとフィールドは capabilities.experimentalApi を true にすると有効になります。initialize.params.capabilities.optOutNotificationMethods にメソッド名を正確に指定すると、その接続で特定の通知を止められます。

リモート接続

Remote terminal UI mode の流れは次のとおりです。

  1. codex app-server --listen ws://127.0.0.1:4500 で WebSocket のリスナーを起動します。
  2. codex --remote ws://127.0.0.1:4500 でターミナル UI を接続します。
  3. ローカル以外の接続では、WebSocket の認証を設定し、接続を TLS の背後に置きます。ベアラートークンは環境変数に保存し、コマンドラインにトークンを直接書かず、--remote-auth-token-env でその環境変数の名前を渡します。

同じ app-server のプロセス内の複数スレッドでリモートの Code Mode ホストを共有するには、そのホストの HTTP/2 gRPC エンドポイントを --code-mode-host に渡します。

管理者・導入時に確認したい点

  • ループバック以外の WebSocket リスナーは、現在、展開期間中は既定で認証なしの接続を許可します。外部に公開する前に WebSocket の認証を設定する必要があります。
  • exec-server への直接の WebSocket 接続は、app-server 経由で設定したものも含めてベアラートークンで保護できます。
  • thread/shellCommand はサンドボックスの外でフルアクセスで動きます。
  • App-server の認証は、商用サービスやホスト型サービスでの利用がこれまで許可されていません。
  • app-server の診断情報では、プロバイダー、認証のリフレッシュ、アテステーションのフィールドを含めて資格情報を秘匿します。
  • 非推奨だった codex mcp-server のエントリポイントは利用できなくなっています。
  • daemon の自動起動は既定で有効です。ローカルのバックグラウンドサーバーを使わずに動かすときは --no-daemon を指定します。

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

HOW TO USE

使い方

基本の使い始めの流れは次のとおりです。

  1. サーバーを起動します。codex app-server (既定の stdio トランスポート)、codex app-server --listen ws://127.0.0.1:4500 (TCP WebSocket)、codex app-server --listen unix:// (既定の Unix ソケット) のいずれかを使います。
  2. 選んだトランスポートでクライアントを接続し、initialize を送ったあと、続けて initialized 通知を送ります。
  3. スレッドとターンを開始し、アクティブなトランスポートのストリームから通知を読み続けます。
公式ヘルプを開く ↗
USE CASES

利用シーン

CASE 01

社内向けの開発ツールに Codex を組み込み、認証・会話履歴・承認・エージェントのイベント表示を自前の画面で扱う場面に向いています。

CASE 02

app-server を 1 台のマシンで動かし、別のマシンの Codex CLI のターミナル UI から作業する場面に使えます。

CASE 03

未コミットの変更やベースブランチ、特定のコミットを対象に、自社のクライアントから Codex のレビューを実行する場面に使えます。

CASE 04

利用中の Codex のバージョンに合わせた TypeScript のスキーマを生成し、自社のクライアントの型定義に使う場面に向いています。

COMPARISON

Claude・Anthropic の対応する機能

比較の単位となる業務: 常駐バックグラウンドサーバー経由でのコーディングエージェントのスレッド管理と外部クライアント接続

セッションやスレッドの一覧について、Codex app server ではクライアントがスレッドの API で会話の作成・一覧・アーカイブを行い、子孫スレッドの一覧も取得できます。Claude Code の claude agents (エージェントビュー) は、実行中・ユーザー待ち・完了のすべてのセッションを 1 つの一覧で表示するリサーチプレビューの機能で、claude agents --json で稼働中のセッションを JSON として一覧できます。

バックグラウンドでの動作について、Codex app server は daemon として常駐し、Windows のセッション間でバックグラウンドの Codex サーバーを共有でき、自動起動が既定で有効です。claude agents では、--model や --permission-mode などのフラグでディスパッチするバックグラウンドセッションを設定でき、Ctrl+T でピン留めしたセッションはアイドル時も維持されます。

別の端末からの操作について、Codex app server は別のマシンの Codex CLI のターミナル UI から接続する Remote terminal UI mode を備えています。Remote Control は、モバイルや Web のクライアントから /context や /exit などのコマンドを使える仕組みです。

TIMELINE

これまでの変更

  1. app-server API に実験的な attached thread forks が追加されました。

  2. /daemon から管理されたバックグラウンドサーバーを再起動でき、再起動で中断される作業について警告したあと自動で再接続します。

  3. 実行中のバックグラウンドサーバーの機能設定と CLI の既定値の違いによる起動失敗が修正され、互換性のチェックは明示的なコマンドラインでの機能の上書きにだけ適用されます。

  4. クライアントが特定のアイテムからスレッド履歴をページ送りで取得できます。

  5. exec-server への直接の WebSocket 接続をベアラートークンで保護できます。

  6. daemon の自動起動が既定で有効になりました。

  7. /daemon でローカルのバックグラウンドサーバーを更新でき、--no-daemon で迂回できます。

  8. daemon の更新スケジュールの設定と codex app-server daemon update が追加され、daemon の再起動後に保存済みのスレッドと進行中のゴールを復旧できます。

  9. Windows のセッションでバックグラウンドの Codex サーバーを共有でき、daemon のライフサイクルのコマンドと管理された更新も使えます。同日、非推奨だった codex mcp-server のエントリポイントが利用できなくなりました。

  10. 外部の app-server との接続が切れたあと、TUI のセッションは下書きとトランスクリプトを保ったまま再接続し、送信状態が不確かなものや待機中の送信は確認のため一時停止したままにします。スレッドのメタデータに nullable な model と reasoningEffort のフィールドが加わりました。

  11. クライアントが thread/shellCommand のタイムアウトを設定でき、1 時間を超える期限も指定できます。

  12. app-server の診断情報での資格情報の秘匿処理が改善されました。

  13. App-server のホストが実行時に Codex の認証を提供し、ログイン成功後にホストされたページへリダイレクトできるようになりました。

  14. 実行中の daemon から手動のペアリングコードを生成する codex remote-control pair が追加されました。App-server のクライアントは、環境の確認、子孫スレッドの一覧取得、特定のターンまでの履歴のフォークができます。

  15. Codex アプリで、より多くの app-server の失敗を再起動が必要なものとして分類し、プルリクエストの作成と復旧の流れの信頼性を高めました。

SOURCES

出典

出典 19 件を表示