Codex の「このフォルダを信頼しますか」を config.toml で管理する projects の trust_level 設定
Codex がプロジェクトを信頼済みと扱うかどうかを決める [projects."<絶対パス>"] の trust_level の書き方と、untrusted のときに無視される .codex/ 配下の設定(config.toml、hooks、rules)、設定レイヤーの優先順位を解説します。
clone したばかりのリポジトリで codex を起動すると、そのフォルダを信頼するかどうかを聞かれます。この答えは ~/.codex/config.toml に記録され、プロジェクト内の .codex/ 配下の設定を読むかどうかを左右します。
結論として、信頼状態は [projects."<絶対パス>"] の trust_level で管理されており、untrusted のプロジェクトでは .codex/config.toml、プロジェクトの hooks、rules が すべて無視されます。
KEY POINT
この記事で分かること
trust_levelの書き方と 2 つの値- untrusted のときに読み込まれない設定の範囲
- プロジェクト設定が設定レイヤーのどこに位置するか
trust_level の書き方
サンプル設定に示されている形式です。パスは絶対パスで、引用符で囲んでテーブル名にします。
[projects."/Users/you/work/my-app"]
trust_level = "trusted"
[projects."/Users/you/tmp/someones-repo"]
trust_level = "untrusted"
| 値 | 意味 |
|---|---|
trusted | プロジェクト内の .codex/ レイヤーを読み込む |
untrusted | プロジェクト内の .codex/ レイヤーを無視する |
起動時の質問に答えると同じ内容が自動で書き込まれるので、手で編集するのは「一度信頼したものを取り消したい」「複数のパスをまとめて設定したい」ときです。worktree ごとに別のパスとして扱われる点に注意してください。
用語解説
プロジェクトスコープの設定: リポジトリ内の .codex/ ディレクトリに置く設定です。.codex/config.toml のほか、プロジェクトローカルの hooks と rules が含まれます。リポジトリと一緒に配布されるため、書いたのが誰かは分かりません。
untrusted で無視されるもの
公式ドキュメントは、セキュリティのために「プロジェクトが信頼されている場合にだけ、プロジェクトスコープの設定ファイルを読み込む」と明記しています。untrusted のとき無視されるのは次の 3 つです。
.codex/config.toml(モデル、承認ポリシー、サンドボックス、MCP サーバーなどのプロジェクト設定)- プロジェクトローカルの hooks
- プロジェクトローカルの rules
つまり、悪意あるリポジトリが .codex/config.toml に sandbox_mode = "danger-full-access" や勝手な MCP サーバーを書いていても、信頼するまでは効きません。逆に言えば、信頼した瞬間にそれらが有効になる ので、初めて開くリポジトリでは .codex/ の中身を見てから答えるのが安全です。
信頼する前に .codex/ を確認する
信頼の質問に「はい」と答える前に、.codex/config.toml と .codex/ 配下の hooks を確認してください。特に approval_policy、sandbox_mode、mcp_servers、notify、hooks のコマンドは、信頼した直後からあなたの権限で動きます。
設定レイヤーの中での位置
プロジェクト設定は、設定レイヤーの上から 2 番目に位置します。信頼済みのプロジェクトでは、ユーザー設定やプロファイルより優先されます。
| 優先度 | レイヤー |
|---|---|
| 1(最優先) | CLI フラグと -c / --config の上書き |
| 2 | プロジェクトの .codex/config.toml(作業ディレクトリに近いものが勝つ。信頼済みのみ) |
| 3 | --profile で選んだプロファイルファイル |
| 4 | ユーザーの ~/.codex/config.toml |
| 5 | クラウド管理の既定値 |
| 6 | システム設定(Unix では /etc/codex/config.toml) |
| 7 | 組み込みの既定値 |
チームで承認ポリシーやサンドボックスを揃えたい場合は、.codex/config.toml をリポジトリに入れておくと、信頼したメンバー全員に同じ設定が効きます。承認とサンドボックスの組み合わせは親記事の approval mode と sandbox 設定の違い を、レイヤーの全体像は config.toml でモデル・推論の深さ・プロファイルを切り替える を参照してください。
まとめ
- 信頼状態は
~/.codex/config.tomlの[projects."<絶対パス>"] trust_levelに記録される。値はtrusted/untrusted - untrusted では
.codex/config.toml、プロジェクトの hooks、rules がすべて無視される - 信頼した瞬間にそれらが有効になるので、初めてのリポジトリは
.codex/を見てから答える - 信頼済みのプロジェクト設定は、プロファイルやユーザー設定より優先される
- worktree は別パスとして扱われる
よくある質問
- untrusted にすると何が無視されますか?
- プロジェクト内の .codex/ 配下のレイヤー全体です。.codex/config.toml、プロジェクトローカルの hooks、プロジェクトローカルの rules が読み込まれません。
- trust_level はどのファイルに書きますか?
- ユーザーの ~/.codex/config.toml です。[projects."/absolute/path"] のテーブルに trust_level = "trusted" または "untrusted" を書きます。
- プロジェクトの .codex/config.toml は誰でも書けますよね?
- はい。clone したリポジトリに含まれるため、信頼していないリポジトリでは読み込まれない設計になっています。
参考にした一次情報
この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。