Codex CLI 完全ガイド(ChatGPT ProでAPIキー不要/設定テンプレ付き)
対象: 「まずは TOML をいじらず試したい」→「日常運用まで一気に整えたい」人向け。承認モードの使い分け・安全な既定設定・運用のコツをまとめました。
0) まずは最短で動かす(TOML編集なし)
承認モード(approval policy)をフラグで使い分け
承認モード | ざっくり挙動 | 例 |
---|---|---|
untrusted | 毎回承認を求める | codex -a untrusted --sandbox read-only |
on-request | 危険/例外操作「直前」だけ承認 | codex -a on-request --sandbox workspace-write |
on-failure | まず自動、失敗時だけ承認 | codex -a on-failure --sandbox workspace-write |
never | 一切承認なし | codex -a never --sandbox workspace-write |
補足:
--full-auto は a on-failure --sandbox workspace-write のショートカット
編集スタイル指定(別概念): -suggest / -auto-edit / -full-auto
on-request と on-failure の違い(要点)
on-request: 危険/保護された操作に入る「直前」で確認が入る(失敗する前に聞く)
on-failure: まず自動で試し、失敗時にだけユーザーへ確認(実行→ダメなら聞く)
「編集スタイル」フラグとの違い(重要)
-suggest / -auto-edit / -full-auto は 「編集スタイル」 の指定で、承認モード(-a, --ask-for-approval)とは別物です。両方を組み合わせて最終的な挙動が決まります。
-suggest … 実行せず 提案にとどめる(レビュー中心)
-auto-edit … ファイル編集は自動、シェル実行は承認モードに従う
-full-auto … 編集+実行まで自動(= a on-failure --sandbox workspace-write のショートカット)
例:
1) 仕組みの要点(優先順位と安全設計)
優先順位: config.toml(既定) < -profile(束設定) < CLIフラグ(最優先)
サンドボックスは OS の保護機構で実装(macOS: Seatbelt / Linux: Landlock+seccomp など)
ネットワーク可否はサンドボックスとは別設定(後述)
MCP ツールは別プロセスとして動くため、サンドボックスのネットワーク制御外になる場合あり(MCP側で権限を管理)
2) 日常運用のベストプラクティス TOML(完成版)
既定は on-request(危険操作のみ確認)
3) 運用レシピ(コマンド実例)
まず確認(TUI内): /status で現在の Approval / Sandbox / Workspace を確認
普段: codex(= on-request 既定)
読み取り専用: codex --profile safe
ネット必要: codex --profile on_request_net
ほぼ自動: codex --profile auto あるいは codex --full-auto
完全自動(危険): codex --profile never(CI/隔離のみ)
TOMLを触らず一時上書き:
PowerShell でヘルプ項目を探す(grep 代替):
4) サンドボックスとネットワークの考え方
-sandbox はファイル書き込み・コマンド実行の範囲を制御
sandbox_workspace_write.network_access はモデル生成コマンドの外部通信を個別に ON/OFF
MCP ツールは別プロセス扱いのため、ネットワーク制御は MCP 側の設定で
5) CI/CD に組み込む最小例(GitHub Actions)
6) よくある落とし穴
approval_policy = "trusted" は無効(有効値は untrusted/on-request/on-failure/never)
一部バージョンで config.toml の値が反映されない報告あり → その場は CLIフラグで明示上書き
Windows から実行なら C:\\...、WSL からなら /mnt/c/... にする
-dangerously-bypass-approvals-and-sandbox は承認もサンドボックスも無効化(極めて危険。外部で完全隔離できる環境以外は使わない)
7) 迷ったらこの順で
まずは codex --full-auto で体験(= on-failure + workspace-write)
日常は codex(on-request 既定)に戻す
ネットが要る瞬間だけ -config sandbox_workspace_write.network_access=true か -profile on_request_net
CI は -full-auto か -profile ci_noninteractive を使う
→ フロントエンド エンジニア
- Flutter / スマホアプリ 開発中。
- Next.js / TypeScript /
TailwindCSS を学習中。