Codex の --full-auto は何をするのか:承認とサンドボックスの中身
Codex CLI の --full-auto オプションが内部で設定する承認ポリシーとサンドボックスの組み合わせを解説します。何が自動で何が制限されるか、ワークスペース外やネットワークの扱い、config.toml で同じ設定を固定する方法、使うべき場面と避けるべき場面を整理します。
codex --full-auto は「全部自動でやる」という名前に見えますが、実際にはワークスペースの中だけ自由にしてよいという設定です。ワークスペースの外に書き込んだり、ネットワークに出たりすることは、サンドボックスによって引き続き制限されます。
KEY POINT
この記事で分かること
--full-autoが設定する承認ポリシーとサンドボックスの組み合わせ- 自動で通るもの、制限されるもの
- config.toml で同じ設定を固定する方法と、使うべき場面
内部で設定される内容
--full-auto は、次の 2 つをまとめて指定する省略形です。
| 設定 | 値 | 意味 |
|---|---|---|
| サンドボックス | workspace-write | カレントディレクトリ配下と一時領域だけ書き込み可。ネットワークは既定で不可 |
| 承認ポリシー | 自動承認寄り(バージョンにより on-failure 相当) | サンドボックス内で実行し、失敗したときだけ確認する |
正確な組み合わせはバージョンで変わることがあるため、codex --help の記載を確認してください。
用語解説
サンドボックスと承認の違い: 承認は「実行前にユーザーに聞くか」、サンドボックスは「OS レベルで何ができるか」です。--full-auto は聞く回数を減らしますが、できることの範囲はサンドボックスが決めています。詳しくは親記事の approval mode と sandbox 設定の違い を参照してください。
何が自動で、何が制限されるか
| 操作 | --full-auto での扱い |
|---|---|
| ワークスペース内のファイル読み書き | 自動 |
| ワークスペース内でのコマンド実行(テスト、ビルド) | 自動 |
ワークスペース外への書き込み(~/.ssh など) | サンドボックスが拒否 |
ネットワーク(npm install、curl) | 既定で拒否。失敗時に「サンドボックス外で再実行してよいか」を確認 |
| Git のコミット | 自動(ワークスペース内) |
git push | ネットワークが必要なため、既定では失敗して確認が入る |
「npm install が失敗した」という場面では、確認に答えて許可すればサンドボックス外で再実行されます。毎回聞かれるのが煩わしければ、config.toml でネットワークだけ許可します。
config.toml で固定する
approval_policy = "on-failure"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
これで --full-auto を付けなくても同じ挙動になり、ネットワークも許可されます。ネットワークを許可すると外部へのデータ送信も可能になるため、信頼できるリポジトリでだけ使ってください。
使うべき場面・避けるべき場面
| 場面 | 判断 |
|---|---|
| テストが整備されたリポジトリでのリファクタリング | 向いている。テストが通るまで自律的に進められる |
| lint エラーの一括修正 | 向いている |
| 初めて触るコードベースの調査 | --sandbox read-only の方が安全 |
| 本番の認証情報がある環境 | 避ける。サンドボックスは読み取りを制限しない |
| CI での完全自動実行 | -a never との組み合わせを検討。使い捨て環境が前提 |
読み取りは制限されない
workspace-write は書き込みを制限しますが、ワークスペース内のファイル読み取りは自由です。.env などの秘密情報はワークスペースの外に置いてください(秘密情報を読ませないための設定)。
対話中に切り替える
セッション中に /approvals を実行すると、承認モードを切り替えられます。調査だけで始めて途中から実装に移るときに使います。
まとめ
--full-autoは「ワークスペース内は自動、外とネットワークは制限」の省略形- ネットワークが必要な操作は失敗して確認が入る。
network_access = trueで許可できる - サンドボックスは読み取りを制限しないため、秘密情報はワークスペース外に置く
- 調査は
read-only、テストが整ったリポジトリのリファクタリングは--full-autoが向いている
よくある質問
- --full-auto は全部自動という意味ですか?
- 違います。ワークスペース内の読み書きを自動にする設定で、ワークスペース外への書き込みやネットワークはサンドボックスで制限されたままです。
- --full-auto と --dangerously-bypass-approvals-and-sandbox の違いは?
- 後者はサンドボックスも承認も完全に無効にします。--full-auto はサンドボックスが有効なままなので、壊せる範囲が限定されます。
参考にした一次情報
この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合はお問い合わせからお知らせください。