Codex 上級設定

Codex CLICodex の上級設定レイヤーにより、モデルプロバイダー、サンドボックス権限、Hooks フック、テレメトリーデータ、ターミナル動作を細かく制御できます。

Codex に初めて触れる場合は、まず次のドキュメントを読んでください。Config basics(設定の基本)全体像を把握してください。本記事では、あなたが次のことを理解していることを前提としています。~/.codex/config.tomlの存在と役割を。


設定階層の全体像

Codex の設定は複数レイヤーが重なり合って構成されています。この点を理解することが、以降のすべての上級テクニックの基盤です。

下位層から上位層の順に、システム層 → ユーザー層(~/.codex/config.toml) → Profile 層 → プロジェクト層(.codex/config.toml) → CLI コマンドライン引数。

上位層は下位層の同名設定を上書きします。現在の作業ディレクトリに最も近いプロジェクト設定が最優先されます。

タイトル Codex 設定階層(下位層 → 上位層、順に上書き) 第 5 層:CLI ① CLI コマンドライン引数(最優先) --model、--config、--profile 第 4 層:プロジェクトレベル ② プロジェクトレベル .codex/config.toml リポジトリ内の .codex/ ディレクトリ(プロジェクトが信頼されている必要あり) 第 3 層:Profile ③ Profile 名前付き設定(--profile) ~/.codex/<name>.config.toml 第 2 層:ユーザーレベル ④ ユーザーレベル ~/.codex/config.toml CODEX_HOME ディレクトリ内の個人デフォルト設定 第 1 層:システムレベル ⑤ システムレベル / チーム共有設定 Team Config 共有ルールとシステムレベルファイル 右側の説明 単回実行の上書き プロジェクトレベル強制 シナリオ切り替え 個人デフォルト チームベースライン 下部の説明 マージルール:同じ名前の key は後が前を上書きします。ドット構文でネストしたフィールドを指定できます。 例:--config mcp_servers.context7.enabled=false で単一の MCP サービスを無効化

現在有効な設定を判断する最も確実な方法は、codex --helpログと組み合わせるか、明示的にcodex exec "show my current config"モデルに解釈させることです。


Profiles 名前付き設定レイヤー

Profileは Codex が推奨する「シナリオ別切り替え」の方法です。一連の設定を TOML ファイルとして保存し、必要に応じて--profileで読み込みます。

Profile ファイルは~/.codex/<name>.config.tomlにあります。ここで<name>は英数字、ハイフン、アンダースコアのみを含めることができます。

Profile を作成して使用する

たとえば、頻繁に深いコードレビューを行い、より強力な推論能力を使いたい場合:

例

# ファイルパス:~/.codex/deep-review.config.toml
model = "gpt-5.5"                  # 推論能力がより強いモデルを使用
model_reasoning_effort = "xhigh"   # 推論強度を最大にする
approval_policy = "on-request"    # ツール呼び出しのたびに承認を求める
model_catalog_json = "/Users/me/.codex/model-catalogs/deep-review.json"  # オプション:カスタムモデルディレクトリ

Profile を使用して Codex を起動:

例

# 対話型 TUI を起動
codex --profile deep-review

# または非対話型 exec モードで使用
codex exec --profile deep-review "review this change"

Profile のマージ(統合)セマンティクス

Profile ファイルは完全な設定ではありません。ユーザーレベルの~/.codex/config.tomlの上に重ねる差分上書きレイヤーです。

つまり、Profile には「デフォルト設定と異なる」フィールドだけを書けばよく、他のフィールドは自動的にユーザーレベル設定を継承します。

ユーザーレベルと Profile の両方でmodel_catalog_json,が設定されている場合、Profile の値が優先されます。。

Codex 0.134.0 以降、--profileはconfig.toml内の[profiles.<name>]テーブルを読み取らず、トップレベルのprofile = "name"セレクターもサポートされません。過去の Profile 設定はすべて独立した~/.codex/<name>.config.tomlファイルに移行する必要があります。

旧設定から Profile への移行

以前のconfig.tomlが次のような場合:

例

# 旧形式(非推奨)
profile = "deep-review"

[profiles.deep-review]
model = "gpt-5.5"
model_reasoning_effort = "xhigh"

2 つのファイルに分割する必要があります:

# 文件路径:~/.codex/config.toml(保留非 profile 部分)
# 注意:删除了 profile = "deep-review" 选择器
# 文件路径:~/.codex/deep-review.config.toml
model = "gpt-5.5"
model_reasoning_effort = "xhigh"

移行後、従来のcodex --profile deep-reviewコマンドラインの使用方法は変わりません。


コマンドラインでの一時的なオーバーライド

一時的に 1、2 個のフィールドだけ変更してタスクを 1 回実行したい場合、設定ファイルを汚したくないことがあります。その場合は CLI で上書きできます:

専用フラグを優先して使用する

公式が専用パラメータを提供している場合(例:--model),専用フラグを優先して使用します。読みやすさが最も良いためです:

例

# 専用フラグでモデルを切り替え
codex --model gpt-5.4

--config を使用して任意のキーを上書きする

専用フラグがないフィールドには、-c 或 --configで上書きします。値は TOML 形式であり、JSON ではありません。

例

# 文字列値はダブルクォートで引用符をネストする
codex --config model='"gpt-5.4"'

# ブール値はそのまま記述する
codex --config sandbox_workspace_write.network_access=true

# 配列は TOML 配列構文を使用する
codex --config 'shell_environment_policy.include_only=["PATH","HOME"]'

陥りやすい注意点のルール:

  • ドット構文でネストしたフィールドを指定する。例:mcp_servers.context7.enabled=false
  • --configの値は TOML として解析される。スペースを含む文字列は必ず引用符で囲むこと
  • 解析に失敗した場合、Codex は値全体を文字列として扱う

オーバーライドが有効かどうかを確認する最速の方法は、コマンドの後に簡単な質問「what model are you using?」を続けて、Codex に現在の設定を能動的に報告させることです。


設定ファイルと状態の場所

Codex はすべてのローカル状態をCODEX_HOMEディレクトリに置く。デフォルトは~/.codex。

一般的なファイルとその意味:

ファイル役割機密性
config.tomlローカルメイン設定。すべてのカスタム項目はここに記述する否
auth.jsonファイル形式の認証情報(システムキーチェーンを使用しない場合)はい、600 権限を推奨
history.jsonlセッション履歴(無効化可能)機密内容を含む可能性あり
logs/、caches/実行ログとキャッシュリクエストボディの断片を含む可能性あり

OpenAI ベース URL だけを変更したい場合?

LLM プロキシ、ルーター、データ常駐プロジェクトを利用している多くのユーザーは、変更が必要なのはopenai組み込みプロバイダーの base URL のみです。

この場合は直接openai_base_urlを設定し、新規に[model_providers.openai]を作成しないでください。組み込み ID は上書きできないためです:

例

# ファイルパス:~/.codex/config.toml
# 組み込みの openai プロバイダーの base URL をプロキシに向ける
openai_base_url = "https://us.api.openai.com/v1"

プロジェクトレベル設定 .codex/config.toml

プロジェクトレベル設定はリポジトリルートの.codex/config.tomlに配置し、チームでデフォルト値を共有するために使用します。

Codex は作業ディレクトリから上に向かって階層的に検索し、現在の作業ディレクトリに最も近いファイルの優先度が最高になります。

プロジェクトレベル設定の境界

セキュリティ上の理由から、プロジェクトが「信頼済み」とマークされている場合にのみプロジェクトレベルの .codex/ 層(config.toml、ローカル hooks、ローカル rules を含む)が読み込まれます。

信頼されていないプロジェクトでは、下記の表の機密キーは無視され、起動時に警告が出力されます:

無視されるキー理由
openai_base_url、chatgpt_base_url認証情報のリダイレクト / host メタデータの変更を防止
apps_mcp_product_skuCodex Apps の製品識別に影響
model_provider、model_providers認証情報 / プロバイダー ID の置き換えを防止
notify任意のマシンローカルコマンドの実行を防止
profile、profilesプロジェクトレベルでは config profile を選択できない
experimental_realtime_ws_base_url、otelテレメトリとリアルタイムチャネル

これらのキーはユーザーレベルの~/.codex/config.tomlに配置する必要があります。

相対パス(例:model_instructions_file)は、その.codex/が置かれているディレクトリを基準に解決されます。

プロジェクトが信頼されておらず、model_provider = "proxy"を設定した場合、起動時に Codex は警告を出力し、デフォルトのプロバイダーを使用します。これはセキュリティ設計であり、バグではありません。


Hooks ライフサイクルフック

Hooks を使用すると、ツール呼び出しやターン開始などの重要なポイントにカスタムスクリプトを挿入でき、監査、機密語フィルター、コミットチェックなどに適しています。

Hooks 設定は2つの形式をサポートしており、イベント構造は完全に同一です:

形式場所適したシナリオ
hooks.jsonファイルconfig.toml と同じディレクトリJSON ツールチェーンに親和性が高く、再利用が容易
インライン[[hooks.*]] 表config.toml 内すべての設定を一元管理

最も一般的な4つの読み込み場所:

  • ~/.codex/hooks.json
  • ~/.codex/config.toml
  • <repo>/.codex/hooks.json
  • <repo>/.codex/config.toml

プロジェクトレベルの hooks はプロジェクトが信頼されている場合にのみ読み込まれ、ユーザーレベルの hooks は常に独立して読み込まれます。

インライン TOML Hook の例

以下は Bash ツール呼び出しの前に実行される事前チェックフックです:

例

# ファイルパス:~/.codex/config.toml
# すべての Bash ツール呼び出しにマッチ
[[hooks.PreToolUse]]
matcher = "^Bash$"

[[hooks.PreToolUse.hooks]]
type = "command"
# リポジトリ内の事前チェックスクリプトを呼び出す(パスは .codex/ が置かれているディレクトリを基準とする)
command = '/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_use_policy.py"'
timeout = 30                                 # タイムアウト秒数。タイムアウト後は拒否とみなす
statusMessage = "Checking Bash command"      # ステータスバー通知

同じ層にhooks.jsonとインラインの[hooks]テーブルの両方が存在する場合、Codex は両方を読み込んで警告を出力します。各層ではどちらか一方の形式のみを選択することを推奨します。メンテナンスコストが2倍になるのを防ぐためです。


カスタムモデルプロバイダー

Codex を LLM プロキシ、Ollama、Mistral、Azure などの非 OpenAI 公式エンドポイントに接続する必要がある場合、model_providersが入り口です。

組み込みプロバイダー ID(openai、ollama、lmstudio)は再利用できません。競合が発生するためです。

基本定義

例

# ファイルパス:~/.codex/config.toml
model = "gpt-5.4"           # モデル名は選択したプロバイダーによって決まる
model_provider = "proxy"    # 下記の [model_providers.proxy] を指す

[model_providers.proxy]
name = "OpenAI using LLM proxy"  # 表示名
base_url = "http://proxy.example.com"
env_key = "OPENAI_API_KEY"       # 環境変数からキーを読み取る

[model_providers.local_ollama]
name = "Ollama"
base_url = "http://localhost:11434/v1"

[model_providers.mistral]
name = "Mistral"
base_url = "https://api.mistral.ai/v1"
env_key = "MISTRAL_API_KEY"

HTTP ヘッダーを追加する

一部のプロキシは追加のヘッダー(テナント識別子、機能フラグなど)を必要とします:

例

[model_providers.example]
# 静的ヘッダー:毎回のリクエストに含める
http_headers = { "X-Example-Header" = "example-value" }
# 動的ヘッダー:値は環境変数から読み取る
env_http_headers = { "X-Example-Features" = "EXAMPLE_FEATURES" }

コマンドベース認証(Command-backed Auth)

プロバイダーの bearer token を外部の認証情報ヘルパーから動的に取得する必要がある場合は、[model_providers.<id>.auth]:

例

[model_providers.proxy]
name = "OpenAI using LLM proxy"
base_url = "https://proxy.example.com/v1"
wire_api = "responses"   インスタンス

[model_providers.proxy.auth]
command = "/usr/local/bin/fetch-codex-token"
args = ["--audience", "codex"]
timeout_ms = 5000            # Responses API プロトコルを使用
refresh_interval_ms = 300000 # 単回取得のタイムアウト

# 能動的更新サイクル(5分)

  • auth コマンドの実行制約:stdinを受け取らず、token をstdout
  • に出力する必要があります
  • Codex は前後の空白を自動的にトリムし、空の token はエラーとみなしますrefresh_interval_ms = 0設定
  • は認証失敗後にのみ更新することを意味します

Amazon Bedrock 組み込みプロバイダー

Amazon Bedrock 組み込みプロバイダーamazon-bedrockCodex にはmodel_provider組み込みプロバイダーが付属しており、

例

インスタンス
model_provider = "amazon-bedrock"
model = "<bedrock-model-id>"

[model_providers.amazon-bedrock.aws]
profile = "default"      # ファイルパス:~/.codex/config.toml
region = "eu-central-1"  # AWS プロファイル。未設定の場合は標準の認証情報チェーンを使用

# Bedrock リージョン.awsBedrock 組み込みプロバイダーはネストしたmodel_providers.<id>配下の profile と region の上書きのみをサポートします。その他のカスタム項目は標準の


OSS ローカルモード

OSS ローカルモード--ossCodex はローカルの「オープンソース」モデル(Ollama、LM Studio など)への接続をサポートしており、

を介して起動します。--ossプロバイダーを指定せずにoss_providerだけを渡した場合、Codex は

例

インスタンス
# ファイルパス:~/.codex/config.toml
oss_provider = "ollama"

# デフォルトのローカルプロバイダー。ollama または lmstudio を選択可能

例

インスタンス
codex --oss

# デフォルトの oss_provider(ollama)を使用
codex --oss --oss-provider lmstudio

Azure プロバイダーと微調整(ファインチューニング)

Azure プロバイダーとファインチューニング

例

インスタンス
[model_providers.azure]
name = "Azure"
base_url = "https://YOUR_PROJECT_NAME.openai.azure.com/openai"
env_key = "AZURE_OPENAI_API_KEY"          # ファイルパス:~/.codex/config.toml
query_params = { api-version = "2025-04-01-preview" }
wire_api = "responses"                    # 環境変数からキーを読み取る
request_max_retries = 4                   # Responses API プロトコルを使用
stream_max_retries = 10                   # 通常リクエストのリトライ回数
stream_idle_timeout_ms = 300000           # ストリーミングリクエストのリトライ回数

# ストリーミングのアイドルタイムアウト(5分)openai組み込みopenai_base_urlプロバイダーの base URL を変更する必要がある場合は、[model_providers.openai]。


ChatGPT データ常駐プロジェクト

データ常駐(Data Residency)を有効にした ChatGPT プロジェクトでは、リージョンプレフィックス付きのベース URL を使用する必要があります:

例

# ファイルパス: ~/.codex/config.toml
model_provider = "openaidr"

[model_providers.openaidr]
name = "OpenAI Data Residency"
# "us" をデータ常駐ドキュメントで要求されるプレフィックス(eu、jp など)に置き換えます
base_url = "https://us.api.openai.com/v1"

すべてのモデルがデータ常駐に対応しているわけではありません。選択前に OpenAI データ常駐ドキュメントの「eligible models」リストを確認してください。


モデルの推論、詳細度、コンテキスト

モデルの動作を制御する最も一般的な4点セット:

例

# ファイルパス: ~/.codex/config.toml
model_reasoning_summary = "none"          # 推論サマリーを無効化
model_verbosity = "low"                   # 回答の長さを短縮
model_supports_reasoning_summaries = true # モデルに推論の出力を強制
model_context_window = 128000             # コンテキストウィンドウサイズを上書き

そのうちmodel_verbosityResponses API を使用するプロバイダーでのみ有効で、Chat Completions プロバイダーはこの設定を無視します。


承認ポリシーとサンドボックスモード

approval_policyCodex がいつ停止して人間の確認を求めるかを制御し、sandbox_modeアクセスできるファイルとネットワークを制御します。

2つの次元は独立して組み合わせられます。以下は典型的な設定例です:

例

# ファイルパス: ~/.codex/config.toml
approval_policy = "untrusted"   # その他のオプション:on-request、never、または { granular = { ... } }
approvals_reviewer = "user"     # "auto_review" は自動レビューを使用
sandbox_mode = "workspace-write"
allow_login_shell = false       # ログインシェルを無効化(セキュリティ強化項目)

# きめ細かい承認ポリシーの例(プロンプトカテゴリ別)
# approval_policy = { granular = {
#   sandbox_approval = true,
#   rules = true,
#   mcp_elicitations = true,
# request_permissions = false, # 権限リクエスト系は直接 fail-closed
# skill_approval = false # skill スクリプト系は直接 fail-closed
# } }

[sandbox_workspace_write]
exclude_tmpdir_env_var = false  # $TMPDIR への書き込みを許可
exclude_slash_tmp = false       # /tmp への書き込みを許可
writable_roots = ["/Users/YOU/.pyenv/shims"]   # 追加の書き込み可能ディレクトリ
network_access = false          # デフォルトで外部ネットワークを禁止

[auto_review]
policy = """
Use your organization's automatic review policy.
"
""
]

よくある組み合わせ早見表

シナリオapproval_policysandbox_mode説明
ローカルでの日常開発on-requestworkspace-writeツール呼び出しのたびに確認を求め、最も安全
CI 自動化neverworkspace-write人間の介入なし。サンドボックスでのテストが必要
完全に信頼できる環境neverdanger-full-accessサンドボックスを無効化。隔離環境でのみ使用
監査が厳格なシナリオuntrustedworkspace-writeすべての書き込み操作に再確認が必要

サンドボックスを無効にする(注意して使用)

環境自体がすでにプロセスレベルの分離を行っている場合は、Codex サンドボックスを無効化できます:

例

# ファイルパス: ~/.codex/config.toml
sandbox_mode = "danger-full-access"

にworkspace-writeモードでは、一部の環境が.git/と.codex/読み取り専用を維持します。つまりgit commitなどのコマンドをサンドボックス外で実行する場合、承認が必要です。サンドボックス内で直接コミットするには、次を使用してください:rules明示的に許可してください。


Shell 環境変数戦略

shell_environment_policyCodex が子プロセスを起動する際に渡す環境変数を制御します。デフォルトの目標「シークレットの漏洩を減らす + タスクに必要なパスを保持する」です。

例

# ファイルパス: ~/.codex/config.toml
[shell_environment_policy]
inherit = "none"                            # クリーンな状態から開始(推奨)
set = { PATH = "/usr/bin", MY_FLAG = "1" } # 変数を明示的に設定
ignore_default_excludes = false             # デフォルトの KEY/SECRET/TOKEN フィルタリングを保持
exclude = ["AWS_*", "AZURE_*"]              # さらに glob に一致する変数を除外
include_only = ["PATH", "HOME"]             # ホワイトリストのみを渡す(exclude を上書き)

パターン構文:大文字小文字を区別しない glob、*任意の文字列にマッチ、?単一文字にマッチ、[A-Z]は文字クラスです。

ignore_default_excludes = falseCodex 組み込みの KEY/SECRET/TOKEN フィルターは保持され、include/exclude より前に有効になります。


MCP サーバー

MCP(Model Context Protocol)サーバーにより、Codex を外部ツールセットに接続できます。

完全な MCP 設定の説明は公式MCP ドキュメントを参照してください。本記事では詳しく説明しません。一般的なパターン:

例

# ファイルパス: ~/.codex/config.toml
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
enabled = true

# --config を使用して特定の MCP サービスを一時的に無効化
# codex --config mcp_servers.context7.enabled=false

可観測性とテレメトリー(OTel)

Codex は OpenTelemetry による実行ログのエクスポートをサポートしていますが、デフォルトでは無効です。有効にする方法:

例

# ファイルパス: ~/.codex/config.toml
[otel]
environment = "staging"   # デフォルトは dev
exporter = "none"         # オプション: otlp-http または otlp-grpc
log_user_prompt = false   # ユーザープロンプトの内容をエクスポートしない(推奨)

HTTP エクスポーターを選択

例

[otel]
exporter = { otlp-http = {
  endpoint = "https://otel.example.com/v1/logs",
  protocol = "binary",
  headers = { "x-otlp-api-key" = "${OTLP_TOKEN}" }
}}

gRPC エクスポーターを選択

例

[otel]
exporter = { otlp-grpc = {
  endpoint = "https://otel.example.com:4317",
  headers = { "x-otlp-meta" = "abc123" }
}}

エクスポートするイベントタイプ

Codex は構造化イベントを発行します。これには以下が含まれますが、これに限定されません:

イベント意味
codex.conversation_startsモデル、推論設定、サンドボックス/承認ポリシー
codex.api_requestAPI リクエストの試行、ステータス、所要時間、エラー
codex.sse_eventSSE ストリームイベント、トークン数(response.completed 時)
codex.websocket_request、codex.websocket_eventWebSocket リクエストとメッセージ
codex.user_promptユーザープロンプトの長さ。内容はデフォルトで redact
codex.tool_decisionツール呼び出しの決定:承認/拒否、ソースが設定かユーザーか
codex.tool_resultツール実行の所要時間、成功したかどうか、出力スニペット

当 exporter = "none"その場合、Codex はイベントをメモリ内に記録しますが送信しません。無効にしても、イベントごとに非同期バッチがトリガーされ、プロセス終了時に flush されます。

匿名メトリクス(デフォルトで有効)

Codex はデフォルトで、少量の匿名使用状況とヘルスデータを定期的に送信し、異常を検出します。PII は含まれません。

完全に無効にする場合:

例

# ファイルパス: ~/.codex/config.toml
[analytics]
enabled = false

推論イベントの非表示と表示

CI ログでは、推論出力がしばしば「ノイズ」になるため、グローバルに無効化できます:

例

# ファイルパス: ~/.codex/config.toml
hide_agent_reasoning = true

逆に、モデルの生の推論内容を確認する必要がある場合:

例

# ファイルパス: ~/.codex/config.toml
show_raw_agent_reasoning = true

ワークフローが生の推論の公開を許可していることを確認した場合にのみ有効にしてください。一部のモデル(例:gpt-oss)は生の推論を出力しないため、この設定は効果がありません。


外部通知(notify)

Codex が1ターンを完了すると、外部スクリプトをトリガーして、デスクトップ通知、チャット webhook、CI ステータス更新などを実現できます。

例

# ファイルパス: ~/.codex/config.toml
notify = ["python3", "/path/to/notify.py"]

スクリプトは1つの JSON 引数を受け取ります。一般的なフィールド:

フィールド意味
type現時点ではagent-turn-complete
thread-idセッション ID
turn-idターン ID
cwd作業ディレクトリ
input-messagesユーザーメッセージのリスト
last-assistant-message最後の assistant メッセージ

terminal-notifier を呼び出す簡単なスクリプト例:

例

# ファイルパス: /path/to/notify.py
#!/usr/bin/env python3
import json, subprocess, sys

def main() -> int:
    notification = json.loads(sys.argv[1])
    # ターン完了イベントのみ処理
    if notification.get("type") != "agent-turn-complete":
        return 0
    title = f"Codex: {notification.get('last-assistant-message', 'Turn Complete!')}"
    message = " ".join(notification.get("input-messages", []))
    subprocess.check_output([
        "terminal-notifier",
        "-title", title,
        "-message", message,
        "-group", "codex-" + notification.get("thread-id", ""),
        "-activate", "com.googlecode.iterm2",
    ])
    return 0

if __name__ == "__main__":
    sys.exit(main())

notify と tui.notifications の違い

メカニズム適したシナリオ主要な設定
notifywebhook、デスクトップ通知、CI フック外部プログラム
tui.notificationsTUI 組み込み通知イベントタイプによるフィルタリングをサポート
tui.notification_method端末通知方式auto / osc9 / bel
tui.notification_conditionトリガー条件unfocused / always

autoモードでは、Codex は OSC 9 ターミナルエスケープシーケンスを優先的に使用します。一部の端末ではこれをデスクトップ通知として扱います。サポートされていない場合は BEL(\x07)。


フィードバックと履歴

フィードバック収集を無効にする

デフォルトでは、Codex は TUI で/feedbackコマンドを提供します。無効にする場合:

例

# ファイルパス:~/.codex/config.toml
[feedback]
enabled = false

無効にした後/feedback無効メッセージが表示され、Codex はフィードバックの送信を拒否します。

履歴(history.jsonl)

Codex はデフォルトでローカルセッションのトランスクリプトを~/.codex/history.jsonlに書き込みます。無効にする方法:

例

# ファイルパス:~/.codex/config.toml
[history]
persistence = "none"

ファイルサイズを制限(超過時は最も古いエントリを破棄して圧縮):

例

# ファイルパス:~/.codex/config.toml
[history]
max_bytes = 104857600  # 100 MiB

クリック可能な引用(Clickable Citations)

端末またはエディタがサポートしている場合、Codex はファイル参照をクリック可能なリンクとしてレンダリングできます。

例

# ファイルパス:~/.codex/config.toml
# オプション:vscode、cursor、windsurf、vscode-insiders、none
file_opener = "vscode"

設定すると、参照は/home/サンプル/project/main.py:42に書き換えられvscode://file/.../main.py:42、VS Code でクリックするとジャンプできます。


プロジェクト指示の発見(AGENTS.md)

Codex が読み取るのはAGENTS.md(および関連ファイル)で、プロジェクトの規約をセッションの「最初のターン」に自動的に持ち込みます。

2つの主要な設定項目:

設定キー用途典型値
project_doc_max_bytes各 AGENTS.md から読み取る最大バイト数デフォルトで約 32 KiB
project_doc_fallback_filenamesAGENTS.md がない場合の代替ファイル名如 CLAUDE.md

ターミナルインターフェース(TUI)オプション

実行codexサブコマンドなしで実行すると、対話型 TUI に入ります。[tui]表の下にある一般的なキー:

键用途選択可能な値
tui.notificationsTUI 通知の有効化/無効化。イベントタイプでフィルタリング可能ブール値 / イベントタイプ配列
tui.notification_method端末通知方式auto、osc9、bel
tui.notification_conditionトリガー条件unfocused、always
tui.animationsASCII アニメーションと shimmer エフェクトtrue / false
tui.alternate_screen代替スクリーンを使用するかどうか(never に設定するとスクロール履歴を保持)auto、always、never
tui.show_tooltipsウェルカムページに初心者向けヒントを表示するかどうかtrue / false

よく使う設定の早見表

このセクションを「忘れたら見返す」早見チェックリストとしてお使いください:

ニーズ設定場所 / コマンド
モデルの切り替え--model gpt-5.4 或 model = "..."
シナリオ別の設定--profile <name> + ~/.codex/<name>.config.toml
任意のフィールドを一時的に変更--config key=value(TOML 構文)
OpenAI エンドポイントの変更openai_base_url
プロキシ/独自構築ベンダーへの接続[model_providers.<id>] + model_provider
ローカルマシンの Ollama--oss + oss_provider
サンドボックスの無効化(注意して使用)sandbox_mode = "danger-full-access"
匿名メトリクスの無効化[analytics] enabled = false
履歴の無効化[history] persistence = "none"
フィードバックの無効化[feedback] enabled = false
デスクトップ通知notify = ["python3", "/path/to/notify.py"]

よくある質問

プロジェクトレベル設定で設定した model_provider が反映されない?

セキュリティ上の理由から、model_provider、model_providers、profile、notifyなどの機密キーはプロジェクトレベルの .codex/config.toml では無視され、起動時に警告が出力されます。

これらのキーをユーザーレベル~/.codex/config.tomlの設定に移動すればOKです。

--config を書いても変化がない?

3点を確認してください:値が TOML 構文に適合しているか(配列は[]、文字列は""、ネストはドットを使用);シェルがスペースを区切り文字として複数の値に分割していないか;キー名が正しく綴られているか。確認するには~/.codex/logs/の下の最新ログを開くと、解析に失敗した元の文字列を確認できます。

Profile 起動後もデフォルトモデルのまま?

最も一般的な原因:Profile ファイルがまだ古い[profiles.<name>]テーブルを使用しているか、ファイル名の接尾辞が.config.tomlではないことです。0.134.0 以降は~/.codex/<name>.config.toml形式のみ認識されます。

サンドボックスを無効にしても git commit に承認が必要?

無効化sandbox_modeは承認ポリシーに影響しません。git commitなどのコマンドは依然としてapproval_policy = "on-request"が原因でプロンプトが表示される可能性があります。「全自動コミット」を実現したい場合は、承認ポリシーも同時に設定する必要があります。never。

カスタムモデルで gpt-5 シリーズを選択できますか?

によりますbase_urlが指すサービスがサポートしているかどうか。Codex 自体はmodelフィールドを厳密に検証しないため、重要なのはプロバイダー側が認識して応答できるかどうかです。

その他の拡張