Codex CLIの設定と使い方は、いま動いている実行ファイルの所在を確認するところから始まります。本記事は実行ファイルの特定から権限設定、AGENTS.mdの読み込み順、つまずきやすい落とし穴までを、公式ドキュメント8件と自社の検証環境(learn.chatgpt.com、旧developers.openai.com/codex、2026-07-28閲覧時点)から整理します。

01結論:Codex CLIのセットアップは、設定と使い方を実行ファイルの所在確認から始める

Codex CLIは、単体のインストーラーで導入する場合があります。ChatGPTのデスクトップアプリに同梱された実行ファイルとして存在する場合もあります(出典: Codex公式ドキュメント)。同じcodexというコマンド名でも、環境によって実体のファイルが違うことがある、という前提から始めます。

このセットアップで決めることは、下表の4つです。

観点決めること効き方
実行ファイルどのcodexが動いているかを特定する実体が変わるとバージョンも動作も変わる
権限sandbox_modeとapproval_policyの組み合わせツール実行の直前に自動で適用される
プロジェクト連携AGENTS.mdの読み込みと信頼設定フォルダ単位で有効・無効が切り替わる
MCP接続外部ツールの追加config.tomlのmcp_serversに登録して使う
Codex CLI設定の優先順位6段階と、信頼判定による分岐経路 Codex CLIの設定解決フローの図。優先順位は上から①CLIフラグ、②プロジェクト設定(信頼済みのみ)、③プロファイル、④ユーザー設定(~/.codex/config.toml)、⑤システム設定、⑥ビルトイン既定値の6段。②で信頼されていれば③へ進み、信頼されていなければ③を飛ばして直接④へスキップする。⑥の後にsandbox_modeとapproval_policyが確定する。 BRANCH 設定の優先順位|6段階と信頼判定の分岐 優先度:高→低 ①CLIフラグ--sandbox 等の実行時指定 ②プロジェクト設定.codex/config.toml(信頼済みのみ有効) ③プロファイルconfig.toml内の設定グループ ④ユーザー設定~/.codex/config.toml ⑤システム設定全ユーザー共通の設定 ⑥ビルトイン既定値設定が無い時の初期値 信頼あり 信頼なし→④へスキップ 確定sandbox_mode / approval_policy 上位の段に値があればそこで確定し、下位は参照されない。信頼されていなければ②は使われない。
Codex CLIの設定解決フロー図

02セットアップ前に確認する3つの前提|環境・認証・権限

セットアップに入る前に、3つを確認します。1つ目はOSとインストール方法を問わず、codexコマンドがPATH上で解決できるか、絶対パスで直接呼べる状態かです。2つ目は認証方法、3つ目は設定変更を許すディレクトリ範囲です。

認証は、ChatGPTアカウントでのサインインと、APIキーによる認証の両方が用意されています(出典: Codex公式ドキュメント)。

認証方法向く用途備考
ChatGPTサインイン対話的な利用初回起動時に選択する
APIキー対話しない自動実行・CI等非対話環境ではこちらが一般的とされる

3つ目のディレクトリ範囲は、後述のsandbox_modeで決めます。

03実行ファイルの所在確認:セットアップの最初の一歩として行うこと

最初の一歩は、PATHで解決されるcodexの実体を確認することです。

# PATHで解決されるcodexの実体を確認する
which codex
ls -la "$(which codex)"

自社の検証環境(macOS)では、この実体は単体インストーラーの配置先ではありませんでした。実際のパスは/Applications/ChatGPT.app/Contents/Resources/codexでした(2026-07-28確認)。以前は別の場所にあったコマンドが見つからなくなった経緯があり、以後はこの同梱パスを実体として扱っています。

# ChatGPT.app同梱の実行ファイルを直接確認する
ls -la "/Applications/ChatGPT.app/Contents/Resources/codex"
"/Applications/ChatGPT.app/Contents/Resources/codex" --version

自社では、この絶対パスをCODEX_BINという環境変数に入れ、実行スクリプト側から明示的に参照する運用にしています。エイリアスだけに頼ると、cronや自動実行スクリプトのようにシェル設定を経由しない場面で解決できないことがあるためです。

# ~/.zshrc に追記する例
export CODEX_BIN="/Applications/ChatGPT.app/Contents/Resources/codex"
alias codex="$CODEX_BIN"

04権限とサンドボックスのセットアップ|3モードの使い分け

Codexのサンドボックスは、read-only・workspace-write・danger-full-accessの3モードです(出典: Codex公式ドキュメント)。既定はworkspace-writeです。

sandbox_modeできることネットワークファイル書き込み
read-onlyファイルの検査のみ。編集・実行は承認が要る制限あり不可
workspace-write(既定)ワークスペース内で読み書き・ルーチン実行承認時に許可ワークスペース内に限定
danger-full-accessサンドボックス制限なしで動作無制限システム全体

承認のタイミングはapproval_policyで決めます。値はuntrusted・on-request・neverの3種類です(出典: Codex公式ドキュメント)。

approval_policy承認を求めるタイミング
untrusted状態を変えるコマンドの実行時
on-requestサンドボックス外の編集、またはネットワークアクセス時
never求めない(非対話実行向け)

低摩擦さと安全さのバランスを取るなら、workspace-write+on-requestの組み合わせから始めるのが妥当です。

sandbox_mode×approval_policyの3×3マトリクスのリスク段階 sandbox_mode(read-only/workspace-write/danger-full-access)を縦軸に、approval_policy(untrusted/on-request/never)を横軸にした3×3のリスクマトリクス。各マスにリスク段階(低・中・高)を色と枠の太さとラベルで示す。read-onlyの3マスはいずれも低リスク。workspace-write×on-requestは摩擦と安全のバランスが良い推奨の組み合わせで中リスク・太枠で強調。danger-full-access×neverは承認なしで全権限に書き込める最も高リスクな組み合わせで極太枠で強調している。 MATRIX sandbox_modeとapproval_policy、9通りの組み合わせのリスク段階 → approval_policy(承認方針) sandbox_mode(隔離範囲)↓ untrusted on-request never read-only workspace-write danger-full-access 毎回確認 必要時確認 確認なし 毎回確認 ✓ 推奨 確認なし 毎回確認 必要時確認 ⚠ 最高リスク 太い枠=特に注目すべきセル(✓推奨/⚠最高リスク)。細い枠は他のセル。 推奨は workspace-write × on-request(バランス型)。danger-full-access × never は承認なしで全権限=最も高リスク。
sandbox_mode(read-only/workspace-write/danger-full-access)を縦軸、approval_policy(untrusted/on-request/never)を横軸にした3×3マトリクス
# ~/.codex/config.toml
model = "gpt-5.6"
sandbox_mode = "workspace-write"
approval_policy = "on-request"

danger-full-accessとneverを組み合わせると、承認なしでシステム全体に書き込める状態になります。公式ドキュメントも、この組み合わせは高信頼な自動化向けだと注記しています(出典: Codex公式ドキュメント)。

05プロジェクトごとのセットアップでAGENTS.mdと信頼設定を効かせる

プロジェクト直下の.codex/config.tomlは、そのプロジェクトが信頼されている場合だけ読み込まれます。プロジェクトローカルのhooksも同じ扱いです(出典: Codex公式ドキュメント)。信頼されていないプロジェクトでは、ユーザー設定(~/.codex/config.toml)だけが有効になります。

# プロジェクト直下 .codex/config.toml(信頼されたプロジェクトのみ有効)
sandbox_mode = "workspace-write"
approval_policy = "on-request"

AGENTS.mdの読み込みには順序があります。グローバルの~/.codexディレクトリでAGENTS.override.mdがあればそちらを優先し、なければAGENTS.mdを読みます。プロジェクト側はGitルートから作業ディレクトリへ下りながら各階層を確認し、ルートから現在地へ向かう順で連結します(出典: Codex公式ドキュメント)。下位のファイルが上位の指示を上書きする構造です。

読み込むバイト数には上限があり、既定はproject_doc_max_bytesの32KiBです(出典: Codex公式ドキュメント)。プロジェクトの指示が長くなるほど、この上限に近づきます。

MCPサーバーはconfig.tomlmcp_serversセクションに書くか、CLIから追加します。

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
codex mcp add context7 -- npx -y @upstash/context7-mcp

セクション名はmcp_serversとアンダースコア区切りで、綴りを誤ると設定が反映されません(詳細は次章のつまずきポイント2)。

06Codex CLIのセットアップでつまずきやすい4つの落とし穴

  1. バージョンが更新されているのに古いまま動く:実体がChatGPT.app同梱の場合、アプリ更新でファイルの中身が変わります。シェル側がコマンドの場所をキャッシュしていると、更新後も古い実体を呼び続けます。hash -r(zshはrehash)で解決します。
  2. MCPサーバーを登録したのに一覧に出ないconfig.tomlのセクション名をmcp-serversのようにハイフンで書くと、キーが一致せず設定は静かに無視されます。mcp_serversとアンダースコアで書き直し、保存後に再起動して確認します。
  3. プロジェクト側の設定が反映されない:プロジェクトが信頼されていないと、.codex/config.tomlの内容は読み込まれません(出典: Codex公式ドキュメント)。初回起動時の信頼確認に答えているかを確認します。
  4. --full-autoが非推奨だと知らずに使うcodex execのこのフラグは非推奨です。公式ドキュメントは--sandbox workspace-writeへの置き換えを勧めています(出典: Codex公式ドキュメント)。古い社内メモや記事に残っていた例をそのままコピーすると起こります。

07動作確認|Codex CLIのセットアップが終わったら、設定と使い方を3ステップで確かめる

合格の基準は3つです。①バージョン確認、②非対話実行の確認、③信頼プロンプトの確認です。

# ①期待したバージョン文字列が返るか
codex --version

# ②承認プロンプトで止まらず、終了コード0で返るか
codex exec "echo setup-check" --sandbox read-only --ask-for-approval never --json
echo "exit code: $?"

③は、まだ一度もCodexを実行していない新しいプロジェクトフォルダでcodexを起動し、信頼するかどうかの確認が一度は表示されることを見ます。3つとも満たせば、実行ファイルの所在・権限設定・プロジェクト連携が揃った状態です。

08FAQ

Codex CLIとClaude Codeを両方使う場合、設定ファイルは分ける必要がありますか

はい。方式が別です。CodexはTOML形式の~/.codex/config.toml、Claude CodeはJSON形式のsettings.jsonで、キー体系も異なります。AGENTS.mdとCLAUDE.mdも別ファイルとして両方用意します。

sandbox_modeとapproval_policyは、どちらを先に決めるべきですか

sandbox_modeを先に決めます。実行できる範囲の上限を決めてから、その範囲内でどこまで自動承認するかを決める順番のほうが、想定外の書き込みを防げます。

認証はAPIキーとChatGPTサインインのどちらを使うべきですか

上の認証方法の表のとおり、用途で分けます。両方式とも公式ドキュメントに記載があります。

config.tomlを直接編集せず、CLIだけで設定を変えられますか

一部は可能です。--sandbox--ask-for-approvalのようなグローバルフラグは実行時に上書きでき、MCPサーバーはcodex mcp addで追加できます。信頼設定や恒久的な既定値の変更は、config.tomlを直接編集するほうが確実です。