Codex 非対話モード

非対話モードを使用すると、スクリプト、CI/CD パイプライン、またはヘッドレス環境で Codex を使用できます。このセクションでは、非対話モードの設定と使用方法について詳しく説明します。


基本的な使い方

単一タスクの実行

基本的な exec コマンド

# 簡単なタスクを実行
codex exec "現在のディレクトリの Python ファイルを一覧表示"

# 複雑なコマンドには二重引用符を使用
codex exec "src/ ディレクトリのコード構造を分析"

標準入力から読み込む

stdin 入力

# パイプから読み込む
echo "このコードを説明" | codex exec --stdin

# ファイルから読み込む
codex exec --stdin < task.txt

# 複数行の入力
cat <<EOF | codex exec --stdin
階乗を計算する関数を作成する
この関数をテストする
EOF
非対話モードは、自動化タスクやスクリプト統合に非常に適しています。

コマンドライン引数

よく使う引数

引数説明
exec "任务"指定されたタスクを実行する
--stdin標準入力からタスクを読み込む
--model, -mモデルを指定する
--no-auto-approve自動確認を無効にする
--output, -oファイルに出力する

完全な例

完全な引数例

# モデルを指定
codex exec -m gpt-5.4-mini "コードをレビュー"

# ファイルに出力
codex exec "README を作成" -o README.md

# 自動確認を無効化
codex exec --no-auto-approve "テストを実行"

# 組み合わせて使用
codex exec -m gpt-5.4 "PR をレビュー" --output review.md

設定

設定ファイルの設定

非対話モードの設定

# 非対話モードのデフォルト設定
[exec]
# デフォルトモデル
default_model = "gpt-5.4"

# 自動承認しきい値
auto_approve_threshold = "medium"

# タイムアウト時間(秒)
timeout = 300

実行ポリシー

非対話モードでは、デフォルトポリシーは通常deny(副作用が発生する可能性のある操作を拒否)です:

実行ポリシーの設定

# ask ポリシーを使用
codex exec --approval ask "ファイルを作成"

# approve ポリシーを使用(注意して使用)
codex exec --approval approve "テストを実行"

# deny ポリシーを使用(読み取り専用)
codex exec --approval deny "コードを分析"
セキュリティ上の理由から、非対話モードでは副作用が発生する可能性のある操作はデフォルトで無効になっています。

Shell スクリプト統合

基本的なスクリプト

Shell スクリプトの例

#!/bin/bash

# Codex を使用してコードレビューを実行
codex exec "src/ ディレクトリ内のコードをレビュー" --output review.md

if [ $? -eq 0 ]; then
    echo "レビューが完了し、結果は review.md に保存されました"
else
    echo "レビューに失敗しました"
fi

一括処理

一括処理スクリプト

#!/bin/bash

# 複数のファイルを一括レビュー
for file in $(find src -name "*.py"); do
    echo "レビュー:$file"
    codex exec "レビュー$fileファイル" --output "review_$(basename $file).md"
done

条件付き実行

条件付き実行

#!/bin/bash

# ファイル数に応じて Codex を使用するか決定
FILE_COUNT=$(find src -name "*.py" | wc -l)

if [ $FILE_COUNT -gt 10 ]; then
    echo "ファイルが多い場合は、Codex で一括レビューを実行"
    codex exec "すべての Python ファイルをレビュー" --output full_review.md
else
    echo "ファイルが少ない場合は、1つずつレビュー"
    for file in $(find src -name "*.py"); do
        codex exec "簡単なレビュー$file"
    done
fi

CI/CD 統合

GitHub Actions

GitHub Actions ワークフロー

span style="color: green;">
name: Code Review

on
: [pull_request]

jobs
:
  codex-review
:
    runs-on
: ubuntu-latest
    steps
:
      - uses
: actions/checkout@v4

      - name
: Setup Codex
        uses
: openai/codex-action@v1

      - name
: Run Code Review
        run
: |
         codex exec "Review code changes in this PR" \
            --output review.md

      - name
: Upload Review
        uses
: actions/upload-artifact@v4
        with
:
          name
: code-review
          path
: review.md

GitLab CI

GitLab CI 設定

span style="color: #0053A6;">
codex_review:
  image
: node:20
  before_script
:
   - npm install -g @openai/codex
  script
:
   - codex exec "Review changes in this merge request" --output review.md
  artifacts
:
    paths
:
     - review.md

Jenkins

Jenkins Pipeline

pipeline {
    agent any

    stages {
        stage('Code Review') {
            steps {
                sh 'codex exec "Review changed files" --output review.md'
            }
        }
    }

    post {
        always {
            archiveArtifacts 'review.md'
        }
    }
}
Codex を CI/CD パイプラインに統合することで、自動コードレビューと品質チェックを実現できます。

ベストプラクティス

出力処理

  • 使用する--output結果をファイルに保存する
  • 戻りコードを確認して実行が成功したかどうかを判断する
  • 発生する可能性のあるエラーを処理する

パフォーマンス最適化

  • 使用するgpt-5.4-miniコストを削減する
  • 複数のタスクを一括処理する
  • 適切なタイムアウト時間を設定する

セキュリティ

  • 使用を避ける--approval approve
  • CI/CD で読み取り専用モードを使用する
  • API キーを保護する
本番環境で非対話モードを使用する際は、セキュリティに特に注意してください。

よくある質問

Q: 非対話モードはすべての機能をサポートしていますか?

ほとんどの機能をサポートしていますが、対話による確認が必要な一部の機能は使用できない場合があります。

Q: 確認が必要な操作はどのように処理しますか?

使用する--no-auto-approveパラメータ、または設定ファイルで実行ポリシーを設定します。

Q: 出力形式はカスタマイズできますか?

現在はプレーンテキスト出力と Markdown 出力に対応しています。

Q: Docker ではどのように使用しますか?

Codex を Docker イメージにインストールし、CI/CD パイプラインで呼び出します。

その他の拡張