はじめに
OpenAI Codexは、ChatGPTのインターフェースから直接アクセスできるクラウドベースのソフトウェアエンジニアリングエージェントです。本記事では、Codexを初めて使う方向けに、ChatGPTからのアクセス方法からGitHubリポジトリの接続、タスクの実行、そして最初のプルリクエスト作成までの基本的な操作フローを解説します。
この記事を読み終える頃には、Codexに簡単なタスクを委任し、その結果をPRとしてGitHubにプッシュできるようになります。
前提条件
Codexを利用するには、以下の条件を満たす必要があります。
| 要件 | 詳細 |
|---|---|
| ChatGPTプラン | Plus($20/月)、Pro($200/月)、Business、Edu、Enterpriseのいずれか |
| GitHubアカウント | リポジトリとの連携に必要 |
| 対象リポジトリ | GitHubでホストされているリポジトリ |
無料版やGoプランではCodexは利用できません。プランの詳細については、料金プランの記事を参照してください。
ChatGPTからCodexへのアクセス
Codexダッシュボードを開く
Codexへのアクセス方法は非常にシンプルです。
- ChatGPT(https://chatgpt.com)にログインする
- 左側のサイドバーから「Codex」を選択する
- Codexダッシュボードが表示される
初回アクセス時には、GitHubアカウントとの連携を求められます。これはCodexがリポジトリのコードを読み取り、PRを作成するために必要な設定です。
GitHubリポジトリの接続設定
GitHubとの連携は以下の手順で行います。
flowchart TD
A[Codexダッシュボードを開く] --> B[GitHubアカウント連携をクリック]
B --> C[GitHubの認証画面でログイン]
C --> D[アクセス権限を確認して承認]
D --> E[連携するリポジトリを選択]
E --> F[接続完了]Step 1: GitHubアカウント連携
「Connect GitHub」ボタンをクリックすると、GitHubの認証画面にリダイレクトされます。
Step 2: アクセス権限の確認
Codexは以下の権限をリクエストします。
- リポジトリの読み取り(コードの取得)
- プルリクエストの作成
- ブランチの作成
これらの権限は、Codexがタスクを実行し、結果をPRとして提出するために必要です。
Step 3: リポジトリの選択
連携するリポジトリを選択します。すべてのリポジトリに対するアクセス権を付与することも、特定のリポジトリのみを選択することもできます。セキュリティの観点から、必要なリポジトリのみを選択することをおすすめします。
環境(Environment)のセットアップ
GitHubとの連携が完了したら、Codexが作業する環境を設定します。
環境とは
環境(Environment)は、Codexがタスクを実行するためのクラウドサンドボックスです。各環境は以下の要素で構成されます。
| 要素 | 説明 |
|---|---|
| リポジトリ | 作業対象のGitHubリポジトリ |
| ブランチ | 作業のベースとなるブランチ |
| セットアップスクリプト | 依存関係のインストールなどの初期化処理 |
| シークレット | APIキーなどの機密情報(オプション) |
新しい環境の作成手順
- Codexダッシュボードで「New Environment」をクリック
- 連携済みのリポジトリから作業対象を選択
- ベースブランチを選択(通常は
mainまたはdevelop) - セットアップスクリプトを設定(オプション)
セットアップスクリプトの例
Node.jsプロジェクトの場合、以下のようなセットアップスクリプトを設定できます。
|
|
Codexは、yarn、pnpm、npm、go mod、gradle、pip、poetry、uv、cargoなどの一般的なパッケージマネージャーを自動的に検出し、標準的なインストールコマンドを実行します。多くの場合、手動でセットアップスクリプトを設定する必要はありません。
「コード」と「質問する」の使い分け
Codexには2つの主要な操作モードがあります。タスクの性質に応じて適切なモードを選択することで、より効率的に作業を進められます。
「コード」モード
「コード」ボタンをクリックすると、Codexにコーディングタスクを依頼できます。このモードでは、Codexは以下のような作業を自律的に実行します。
- 新機能の実装
- バグの修正
- リファクタリング
- テストの追加
- ドキュメントの更新
使用例
ユーザー認証機能にパスワードリセット機能を追加してください。
メールでリセットリンクを送信し、24時間で有効期限が切れるようにしてください。
「コード」モードでタスクを実行すると、Codexはクラウドサンドボックス内で以下のプロセスを実行します。
- コードベース全体を読み込んで理解
- 問題を分析し、解決策を計画
- ファイルを編集してコードを実装
- テストを実行して結果を検証
- 失敗した場合は修正を繰り返す
- 最終的な変更をコミットとしてまとめる
「質問する」モード
「質問する」ボタンをクリックすると、Codexにコードベースに関する質問ができます。このモードでは、Codexはコードを変更せずに情報を提供します。
- コードの説明
- アーキテクチャの解説
- 依存関係の調査
- 実装方針の相談
使用例
認証モジュールはどのように動作していますか?
リクエストの流れと、各モジュールの役割を説明してください。
モード選択の判断基準
flowchart TD
A[タスクの種類を判断] --> B{コードの変更が必要?}
B -->|はい| C[「コード」モードを選択]
B -->|いいえ| D{情報収集が目的?}
D -->|はい| E[「質問する」モードを選択]
D -->|いいえ| F[タスクを明確化して再検討]
C --> G[タスク実行]
E --> H[回答を確認]| 状況 | 推奨モード |
|---|---|
| 新機能を追加したい | コード |
| バグを修正したい | コード |
| テストを書きたい | コード |
| コードの動作を理解したい | 質問する |
| 実装方針を相談したい | 質問する |
| 依存関係を調べたい | 質問する |
タスクの実行とリアルタイム進捗監視
タスクの作成
「コード」モードでタスクを作成する際は、以下のポイントを押さえると効果的です。
良いタスク記述の例
バグ: 設定画面で「保存」をクリックしても、変更が保存されないことがある
再現手順:
1) npm run dev でアプリを起動
2) /settings に移動
3) 「通知を有効にする」をトグル
4) 保存をクリック
5) ページをリロードするとトグルが元に戻っている
制約:
- APIの形式は変更しない
- 最小限の修正に留める
- 可能であれば回帰テストを追加する
タスク記述のベストプラクティス
| 項目 | 説明 |
|---|---|
| 具体的な問題/目標 | 何を達成したいのかを明確に |
| 再現手順 | バグの場合は具体的な再現ステップ |
| 制約条件 | 変更してはいけない部分、守るべきルール |
| 検証方法 | どうやって成功を判断するか |
リアルタイム進捗監視
タスクを開始すると、Codexの作業状況をリアルタイムで監視できます。
進捗画面の構成
flowchart LR
subgraph "進捗監視画面"
A[ステータスインジケーター]
B[実行中のアクション]
C[ターミナルログ]
D[変更されたファイル]
endステータスの種類
| ステータス | 意味 |
|---|---|
| Starting | 環境のセットアップ中 |
| Reading | コードベースの読み込み中 |
| Thinking | 解決策の検討中 |
| Editing | ファイルの編集中 |
| Testing | テストの実行中 |
| Completed | タスク完了 |
タスクの複雑さに応じて、完了までに1〜30分程度かかります。シンプルなバグ修正であれば数分で完了しますが、大規模な機能追加には時間がかかることがあります。
タスクのキャンセルと再開
タスクの実行中に問題が発生した場合、いつでもキャンセルできます。
- キャンセル: 「Cancel」ボタンをクリックすると、現在のタスクを中止
- 再開: キャンセル後、プロンプトを修正して再度実行可能
タスク完了後のレビュー
タスクが完了すると、Codexは以下の情報を提供します。
変更内容の確認
コードDiff
変更されたファイルの差分(diff)が表示されます。追加された行は緑、削除された行は赤でハイライトされます。
ターミナルログ
Codexが実行したコマンドとその出力が時系列で表示されます。テストの実行結果やエラーメッセージもここで確認できます。
引用(Citations)
Codexは、変更の根拠となったファイルやテスト結果への参照を提供します。これにより、なぜその変更が行われたのかを追跡できます。
フォローアップの依頼
変更内容を確認した後、追加の修正が必要な場合はフォローアップを依頼できます。
テストを追加してください。特にエッジケースとして、
空の入力値と極端に長い文字列のケースをカバーしてください。
フォローアップは同じスレッド内で実行されるため、前のコンテキストが維持されます。
最初のPRを作成する
タスクの結果に満足したら、プルリクエストを作成しましょう。
PRの作成手順
flowchart TD
A[タスク完了] --> B[変更内容をレビュー]
B --> C{修正が必要?}
C -->|はい| D[フォローアップを依頼]
D --> B
C -->|いいえ| E[「Create PR」をクリック]
E --> F[PRタイトルと説明を確認]
F --> G[PRを作成]
G --> H[GitHubでPRを確認]Step 1: 「Create PR」ボタンをクリック
タスク完了画面の下部にある「Create PR」ボタンをクリックします。
Step 2: PRの詳細を確認
- ブランチ名: Codexが自動生成(例:
codex/add-password-reset-feature) - PRタイトル: タスクの内容に基づいて自動生成
- PR説明: 変更内容のサマリーが自動生成
Step 3: PRを作成
内容を確認し、必要に応じて編集した後、「Create Pull Request」をクリックします。
作成されたPRの確認
PRが作成されると、GitHubのリポジトリに新しいプルリクエストが表示されます。
PR画面で確認できる内容
| 項目 | 説明 |
|---|---|
| Files changed | 変更されたファイルの一覧とdiff |
| Commits | Codexによるコミットの履歴 |
| Checks | CI/CDパイプラインの実行結果 |
通常のPRと同様に、レビュー、コメント、マージを行えます。
ローカルへの変更の取り込み
PRを作成せずに、変更をローカル環境に直接取り込むことも可能です。
|
|
実践例: 最初のタスクを実行してみよう
ここでは、実際にCodexを使って簡単なタスクを実行する例を紹介します。
シナリオ: READMEにバッジを追加
プロジェクトのREADME.mdにCI/CDステータスバッジを追加するタスクを実行します。
Step 1: 環境を選択
Codexダッシュボードで対象のリポジトリと環境を選択します。
Step 2: タスクを入力
「コード」モードで以下のプロンプトを入力します。
README.mdの先頭に以下のバッジを追加してください:
- GitHub Actionsのビルドステータスバッジ
- ライセンスバッジ
- Node.jsのバージョンバッジ
既存のフォーマットに合わせて、見栄えよく配置してください。
Step 3: 進捗を監視
Codexがコードベースを読み込み、README.mdを編集する様子をリアルタイムで確認します。
Step 4: 結果をレビュー
|
|
Step 5: PRを作成
変更内容に問題がなければ、「Create PR」をクリックしてプルリクエストを作成します。
トラブルシューティング
よくある問題と解決策
GitHub連携が失敗する
- GitHubの認証トークンが期限切れの可能性があります
- Codex設定画面からGitHub連携を解除し、再度連携してください
タスクが長時間完了しない
- 複雑なタスクは30分以上かかることがあります
- タスクをより小さな単位に分割することを検討してください
テストが失敗する
- セットアップスクリプトで必要な依存関係がインストールされているか確認
- 環境変数やシークレットの設定が必要な場合があります
PRの作成に失敗する
- リポジトリへの書き込み権限があることを確認
- ブランチ保護ルールが設定されている場合、それに従った設定が必要です
まとめ
本記事では、OpenAI Codexの基本操作について解説しました。
学んだこと
- ChatGPTサイドバーからCodexにアクセスする方法
- GitHubリポジトリとの接続設定
- 「コード」と「質問する」モードの使い分け
- タスク実行とリアルタイム進捗監視
- PRの作成方法
Codexは、明確な指示と適切なコンテキストを与えることで、その能力を最大限に発揮します。最初は簡単なタスクから始めて、徐々に複雑なタスクに挑戦していくことをおすすめします。
次のステップとして、複数タスクの並列実行やAGENTS.mdによるCodexの最適化について学ぶと、より効率的な開発ワークフローを構築できます。