メインコンテンツへ移動
AIチュートリアル

ChatGPTでCodexのコーディングタスクを計画・レビューする

ChatGPTでCodexをインストールし、OAuthで保護されたMCPブリッジに接続して、Codexがファイルを編集しテストを実行する間に、ChatGPTを計画とレビューに活用する方法を学びます。このチュートリアルでは、プロジェクトのセキュリティ境界、開発者向けコマンド、トラブルシューティングツール、高度なワークフローのヒントについても説明します。

ChatGPTでCodexのコーディングタスクを計画・レビューする

ChatGPTを搭載したCodexが行うこと

ChatGPTを搭載したCodexは、ChatGPTのウェブアプリをCodexのコーディングセッションにおける計画とレビューのレイヤーに変えます。ChatGPTはタスクについて推論し、計画を作成し、完了した作業をレビューします。ファイルの編集、コマンドの実行、変更のテスト、問題の修正は引き続きCodexが担当します。

目的は、計画とレビューの段階で限られたAPIトークンやCodexトークンを消費する代わりに、既存のChatGPT PlusまたはProのウェブサブスクリプションを利用することです。このプロジェクトにAPIキーは必要なく、リバースプロキシも使用しません。

リポジトリ全体がアップロードされることはありません。ChatGPTは、OAuthで保護された読み取り専用のModel Context Protocolブリッジを通じて、必要なワークスペース情報だけを要求します。このプロジェクトは非公式のコミュニティプロジェクトであり、OpenAIとは提携しておらず、OpenAIによる承認も受けていません。

ワークフローの仕組み

システムは通信をコントロールプレーンとデータプレーンに分離します。

  • コントロールプレーン: CodexとChatGPTは、Computer Useを通じて小さな構造化状態メッセージを交換します。ワークフローは INIT → PLAN → EXECUTED → REVIEW → DONE の順に進みます。ファイル本体、差分、ログがこれらのメッセージに貼り付けられることはありません。
  • データプレーン: ChatGPTは、読み取り専用のMCPブリッジを通じて必要なワークスペースデータを読み取ります。
  • 実行: シェルコマンド、ファイル変更、Git操作、テスト、修正はCodexが担当します。
  • 独立したレビュー: ChatGPTは、作業が成功したという主張だけに頼らず、実際のGit差分と記録されたテスト状況を調査します。

このブリッジは、8つの読み取り専用ツールを提供します。

  • workspace_info
  • list_directory
  • read_file
  • search_workspace
  • git_status
  • git_diff
  • test_status
  • execution_summary

主な機能

  • 読み取り専用のワークスペースアクセス: ブリッジには、書き込み、削除、シェル、コミットの各ツールがありません。
  • ワークスペースの分離: 各トークンは1つのワークスペースに紐付けられます。正規パスのチェックにより、シンボリックリンク、親ディレクトリ、絶対パスを使った範囲外へのアクセスを防止します。
  • 機密ファイルの保護: .envの各種バリエーション、認証情報、SSH関連ファイル、鍵などはデフォルトで拒否されます。.env.exampleは許可されます。
  • カスタム除外: .c2cignoreファイルでプロジェクト固有のルールを追加できます。
  • 保護された公開エンドポイント: MCPエンドポイントは、PKCE S256、動的クライアント登録、リフレッシュトークンのローテーション、トークンの失効を備えたOAuth 2.1を使用します。
  • 1回限りのペアリング: ブラウザに渡されるのは5分間だけ有効な1回限りのコードです。試行回数は5回までに制限され、レート制限が適用され、使用後に破棄されます。
  • トンネルの自動管理: 公開接続にはCloudflare Quick Tunnelを使用し、ローカルHTTPサーバーはループバック限定のまま維持します。
  • Skillの自動更新: Codex Skillは1日1回GitHubを確認し、新しいリリースが利用可能になると自動更新します。

前提条件

このプロジェクトには、次のソフトウェアが必要です。

  • Node.js 20以降
  • Git
  • 公開接続用のcloudflared
  • 付属のSkillをインストールして実行できるCodex環境
  • ChatGPTウェブアプリへのアクセス

自動セットアップでは、macOSではHomebrew、Windowsではwingetを使って不足している依存関係をインストールできます。ChatGPTまたはCloudflareへのログイン、CAPTCHA、二要素認証のプロンプトが表示された場合は、一時的に操作を引き継ぐ必要があります。

オプション1: Codexにすべてをインストールさせる

最も簡単な方法は、完全なセットアップをCodexに実行させることです。環境の確認、不足している依存関係のインストール、リポジトリのクローン、プロジェクトのビルド、Skillのインストール、初回接続プロセスの実行を指示します。

基本的なビルド手順は次のとおりです。

git clone https://github.com/XiaoDuoYa/codex-with-chatgpt ~/codex-with-chatgpt
cd ~/codex-with-chatgpt
corepack pnpm install
corepack pnpm build

その後、Codexはskill/SKILL.mdを次の場所にコピーします。

~/.codex/skills/codex-with-chatgpt/SKILL.md

コピーしたファイルでは、The codex-with-chatgpt checkout lives at:で始まる行を、実際のリポジトリのチェックアウト先を指すように更新する必要があります。

最後に、Codexはc2c setupを実行し、組み込みブラウザでChatGPTコネクタの設定を開いて、生成されたペアリングコードを入力します。文書化されたワークフローによると、このセットアップ中にサードパーティ製ブラウザを開く必要はありません。

オプション2: Skillを手動でインストールする

リポジトリをすでにダウンロードしてビルドしている場合は、そのskill/ディレクトリをCodexのskillsディレクトリにコピーします。

~/.codex/skills/codex-with-chatgpt/

次に、Codexに次のように依頼します。

ChatGPTを搭載したCodexをセットアップしてください。

Codexがブリッジ、トンネル、ペアリングプロセス、コネクタ設定を処理します。セットアップが成功すると、次のようなチェックリストが表示されます。

Codex with ChatGPT

✓ プロジェクトを検出
✓ Workspace Bridgeを起動
✓ セキュアな接続を確立
✓ ChatGPTに接続
✓ ファイル読み取りテストに合格

準備完了。

実際の作業を始める前に、ファイル読み取りテストに合格していることを確認してください。これにより、ChatGPTが読み取り専用ブリッジを通じて現在のワークスペースにアクセスできることを検証できます。

基本的な使い方

セットアップ後は通常どおりCodexを使い続けますが、タスクにChatGPTを関与させるよう明示的に依頼してください。

ChatGPTを搭載したCodexを使ってXXXを実装してください。

XXXを具体的なコーディング依頼に置き換えます。例:

Codex with ChatGPTを使って、登録フォームの入力検証を実装し、関連するテストを実行します。

想定されるワークフローは次のとおりです。

  1. Codexがアクティブなプロジェクトを検出し、ワークスペースブリッジを起動します。
  2. ChatGPTが読み取り専用のMCPツールを通じて関連ファイルを調査します。
  3. ChatGPTが計画を作成します。
  4. Codexが計画を実装し、ファイルを編集してコマンドまたはテストを実行します。
  5. ChatGPTが実際のGit差分とテスト記録を読み取ります。
  6. ChatGPTが結果をレビューし、必要なフォローアップ作業を特定します。
  7. ワークフローがDONEに到達するまで、Codexが修正を適用します。

ChatGPTはブリッジ経由で書き込みを行えないため、すべてのリポジトリ変更はCodexの実行管理下に置かれます。

開発者向けインストールとコマンド

プロジェクトを直接ビルドまたは調査したい開発者は、pnpmを使用できます。

pnpm install
pnpm build
pnpm test

ビルドによってdist/が作成され、c2cコマンドライン実行ファイルが利用可能になります。テストスイートにはVitestが使用され、ドキュメントに記載されたプロジェクトの状態では、パスセキュリティ、OAuth、ペアリング、MCPのエンドツーエンド動作を対象とする76件のテストが含まれています。

ブリッジ、トンネル、ペアリングのセットアップ全体を実行するには、次のコマンドを使用します。

c2c setup

その他の管理コマンドには次のものがあります。

c2c status
c2c doctor
c2c pair
c2c unpair
c2c logs
c2c stop
  • c2c statusは現在のサービス状態を確認します。
  • c2c doctorは主要な診断コマンドです。
  • c2c pairとc2c unpairはChatGPTとのペアリングを管理します。
  • c2c logsは診断ログを表示します。
  • c2c stopは実行中のサービスを停止します。

プロジェクト構成の理解

リポジトリでは、セキュリティ、トランスポート、ワークスペース、ユーザーエクスペリエンスの各コンポーネントが分離されています。

  • src/bridge/には、ループバックHTTPサーバー、ポート復旧、管理APIが含まれています。
  • src/mcp/は、ステートレスなStreamable HTTP上で8つの読み取り専用ツールを実装します。
  • src/auth/には、OAuth 2.1、PKCE、動的クライアント登録、リフレッシュトークンのローテーション、失効処理が含まれています。
  • src/pairing/は、暗号学的に安全なワンタイムペアリングコード、有効期限、レート制限を実装します。
  • src/workspace/は、パスの包含確認、機密ファイルポリシー、検索、Gitアクセスを処理します。
  • src/tunnel/は、トンネル抽象化とCloudflare Quick Tunnel統合を提供します。
  • src/execution/には、レビュー中に使用される実行記録が保存されます。
  • src/process/はデーモンのライフサイクルを管理します。
  • src/cli/はc2c CLIを実装します。
  • skill/には、主要なユーザーエクスペリエンスを提供するCodex Skillが含まれています。
  • tests/には単体テストと統合テストが含まれています。
  • docs/にはアーキテクチャ、プロトコル、セキュリティ、トラブルシューティングのドキュメントが含まれています。

高度なヒント

追加ファイルを除外する

組み込みポリシーでは一般的なシークレットがブロックされますが、プロジェクト固有の機密ファイルには異なる名前が使われる場合があります。.c2cignoreに一致するルールを追加して、ブリッジが読み取り専用ツールを通じてそれらのパスを公開しないようにします。

検証可能な結果のためにレビューループを使う

タスクの一部としてテストを依頼すると、ChatGPTは実際のGit差分とテスト記録の両方を確認できます。これにより、実行エージェントによるプレーンテキストの成功報告に頼るのではなく、独立したレビューデザインを活用できます。

再設定する前に診断する

接続が機能しなくなった場合は、まずc2c statusとc2c doctorを実行します。追加の診断情報にはc2c logsを使用します。ペアリングをリセットする必要がある場合に限り、c2c unpairに続けてc2c pairを実行して再ペアリングします。

Skillを最新に保つ

Skillは1日1回GitHubで新しいリリースを確認します。更新を開始したいときは、CodexにCodex with ChatGPTの更新を直接依頼することもできます。

セキュリティドキュメントを確認する

信頼境界と保護機能について詳しくは、リポジトリのセキュリティドキュメントを参照してください。リポジトリには、アーキテクチャ、プロトコルの詳細、トラブルシューティング専用のドキュメントも含まれています。

覚えておくべきセキュリティ境界

読み取り専用アクセスによってリスクは軽減されますが、ChatGPTは許可されたソースコードやワークスペースメタデータを必要に応じて受け取ることができます。機密パスはデフォルトで拒否され、カスタム除外を追加することで、特定のリポジトリに対するこの境界をさらに強化できます。

公開トンネルURLを知っているだけではアクセスできません。有効なOAuthトークンがないリクエストには未認証レスポンスが返され、誤ったワークスペースに対して使用されたトークンは拒否されます。ブラウザで使用するワンタイムペアリングコードは有効期間が短く、長期的な認証情報ではありません。

まとめ

Codex with ChatGPTは、責任を明確に分担します。ChatGPTが計画とレビューを担当し、Codexが実行を担当します。読み取り専用のMCPブリッジ、OAuth保護、ワークスペース分離、機密ファイルポリシー、独立した差分レビューにより、この連携を制御可能かつ検証可能にすることを目指しています。初回のSkillインストールとペアリングフローが完了したら、通常のCodexリクエストでワークフローを呼び出し、c2c CLIで管理できます。