Codex: Codex 非インタラクティブモードとクロスプラットフォーム
最終更新:2026-08-31
非インタラクティブモードにより Codex はスクリプトと自動化に適し、Windows と Worktrees には特別な設定が必要です。
📋 前提条件: Codex CLI の基本操作を理解していること
1. 学ぶ内容
- 非インタラクティブモードの詳細
- Windows 環境の設定
- Git Worktrees 統合
- クロスプラットフォームの考慮事項
2. 非インタラクティブモード
(1) 起動方法
BASH
# タスクを直接渡し、実行後に終了
codex "Fix all lint errors"
# 静寂モード、出力を減らす
codex --quiet "Generate API documentation" > api-docs.md
# JSON 出力、プログラム的解析に適している
codex --json "List all TODOs" > todos.json
# 完全自動化
codex --full-auto --approval-policy approve "Run all tests and fix failures"
(2) パイプ入力
BASH
# stdin から読み取り
echo "Explain this code" | codex --quiet
# ファイルから読み取り
cat error.log | codex --quiet "Analyze the error root cause"
# git と組み合わせ
git diff main | codex --quiet "Review the changes"
(3) 終了コード
| 終了コード | 説明 |
|---|---|
| 0 | タスクが正常に完了 |
| 1 | タスクが失敗 |
| 2 | パラメータエラー |
| 130 | ユーザーが中断(Ctrl+C) |
▶ 例1:Alice の自動化スクリプト
BASH
#!/bin/bash
# auto-fix.sh - 毎日の自動修正スクリプト
# 最新コードをプル
git pull origin main
# lint を修正
codex --full-auto --quiet "Fix all lint errors"
# 不足しているテストを生成
codex --full-auto --quiet "Generate unit tests for source files without tests"
# テストを実行
npm test
if [ $? -eq 0 ]; then
git add -A
git commit -m "chore: daily auto-fix"
git push origin main
echo "✅ Auto-fix completed and pushed"
else
echo "❌ Tests failed, skipping push"
fi
3. Windows 環境
(1) インストール方法
POWERSHELL
# オプション1:npm(Node.js が必要)
npm install -g @openai/codex
# オプション2:WSL(推奨)
wsl
# WSL 内で Linux としてインストール
(2) PowerShell 設定
POWERSHELL
# API Key を設定
$env:OPENAI_API_KEY = "sk-your-key"
# 永続的な設定
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-your-key", "User")
# Base URL を設定(DeepSeek)
$env:OPENAI_BASE_URL = "https://api.deepseek.com"
(3) 一般的な問題
| 問題 | 解決策 |
|---|---|
| パス区切り文字の違い | path.join() またはスラッシュを使用 |
| エンコーディングの問題 | $OutputEncoding = [System.Text.Encoding]::UTF8 を設定 |
| 権限の制限 | PowerShell を管理者として実行 |
| コマンドが見つからない | PATH 環境変数を確認 |
(4) WSL 推奨
BASH
# WSL 内で Codex をインストールして使用
sudo npm install -g @openai/codex
export OPENAI_API_KEY="sk-xxx"
codex
4. Git Worktrees 統合
(1) Worktrees とは
Git Worktrees は同じリポジトリの複数のブランチを異なるディレクトリに同時にチェックアウトできる機能で、並列開発に最適です。
BASH
# Worktree を作成
git worktree add ../feature-auth feature/auth
git worktree add ../feature-payment feature/payment
(2) Codex + Worktrees
各 Worktree で独立した Codex インスタンスを実行できます:
BASH
# ターミナル1:認証機能に取り組む
cd ../feature-auth
codex "Implement JWT authentication"
# ターミナル2:決済機能に取り組む
cd ../feature-payment
codex "Add Stripe payment"
▶ 例2:Bob の並列開発
BASH
# Bob が Worktrees で並列開発
git worktree add ../fix-bug-123 fix/bug-123
git worktree add ../new-feature new/feature-x
# ターミナル1
cd ../fix-bug-123
codex --full-auto "Fix Issue #123"
# ターミナル2
cd ../new-feature
codex "Implement feature X"
# 2つのタスクが並列実行、干渉なし
(3) Worktrees のクリーンアップ
BASH
# すべての Worktree を一覧表示
git worktree list
# Worktree を削除
git worktree remove ../feature-auth
# 古い Worktree を整理
git worktree prune
5. クロスプラットフォームの考慮事項
| 考慮事項 | macOS/Linux | Windows |
|---|---|---|
| パス区切り文字 | / |
\(/ を推奨) |
| 改行コード | LF | CRLF |
| 環境変数 | export KEY=value |
$env:KEY = "value" |
| シェル | bash/zsh | PowerShell/WSL |
| パーミッション | chmod |
プロパティダイアログ |
❓ よくある質問
Q 非インタラクティブモードで Computer Use を使用できますか?
A いいえ。Computer Use にはグラフィカルインターフェースとインタラクティブな確認が必要で、非インタラクティブモードではサポートされていません。
Q Windows ネイティブと WSL はどちらが良いですか?
A WSL が良いです。Codex CLI は Linux で最も良い互換性があり、WSL はネイティブの Linux 体験を提供します。
Q Worktrees の Codex インスタンスは競合しますか?
A いいえ。各 Worktree は独立したディレクトリで、Codex インスタンスは干渉しません。ただし、同じブランチの同じファイルを2つのインスタンスで変更しないでください。
Q 非インタラクティブモードで確認要求をどう処理しますか?
A
--approval-policy approve または --full-auto が必要です。そうでなければハングします。読み取り専用操作には deny を、変更には approve を使用してください。Q Windows でのエンコーディング問題はどうですか?
A PowerShell のエンコーディングを UTF-8 に設定:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8。📖 まとめ
- 非インタラクティブモード:スクリプト統合と自動化に適している
- Windows:WSL を推奨、PowerShell はエンコーディング設定が必要
- Git Worktrees:マルチブランチ並列開発、各 Worktree で独立した Codex を実行
- クロスプラットフォーム:パス、改行コード、環境変数の違いに注意
📝 練習問題
- 基本 (⭐):非インタラクティブモードでコードレビューを行い、ファイルに出力する。
- 中級 (⭐⭐):非インタラクティブモードで lint 修正 + テスト + コミットの自動化スクリプトを作成する。
- 上級 (⭐⭐⭐):Git Worktrees で並列開発環境を構築し、2つの Codex インスタンスが異なるブランチで同時に作業する。