Codex CLI のエラー

Error loading configuration: <path>/config.toml

結論

config.toml の書式が壊れている状態。メッセージに行と桁が出るので、その位置だけ直せば済む。

確認した版 Codex CLI v0.153.0
確認日 2026年9月3日
最終更新 2026年9月3日
根拠 実機で確認

エラー文字列

Codex CLI
Error loading configuration: <path>/config.toml

⚠️ 標準エラーに出て、終了コードは 1 です。 codex login status のような、通信しないコマンドでも落ちます。

Error loading configuration: C:\Users\<名前>\.codex\config.toml:2:7: key with no value, expected `=`

🔴 codex exec では前置きが違う

同じ原因でも、非対話の codex exec から出ると先頭の文言が変わります。

Error loading config.toml:
C:\Users\<名前>\.codex\config.toml:2:19: string values must be quoted, expected literal string
  |
2 | approval_policy =
  |                   ^

⚠️ Error loading configuration で検索しても、この形は出てきません。 CI のログで見るのはたいてい後者です。原因も直し方も同じです。

出どころ 先頭の文言 位置の示し方
対話セッション Error loading configuration: 1行に続けて ファイル:行:桁
codex exec Error loading config.toml: 改行してから、下に `

何が起きているか

config.tomlTOML として読めない状態です。

メッセージの末尾に「ファイル:行:桁: 何が悪いか」が出ます。 探す必要はありません。上の例なら 2行目7桁目で、= が無いという意味です。

🔴 知らないキーは、エラーになりません

v0.149.0 で実測しました。書き間違えたキー名は黙って無視されます。

config.toml の状態 結果
書式が壊れている(= が無いなど) Error loading configuration: で停止
知らないキーが書いてある 何も言わずに素通り(その設定は効かない)

⚠️ つまり 「設定が効かない」ときにエラーは出ません。 キー名の打ち間違いは、自分で気づく以外に方法がありません。

直し方

1. メッセージの位置を直す

出ている 行:桁 をそのまま開きます。TOML でよくある形はこの3つです。

書き間違い 正しい形
model gpt-5 model = "gpt-5"
model = gpt-5 model = "gpt-5"(文字列は引用符が要る)
[profiles [profiles](角括弧を閉じる)

2. どのファイルを読んでいるか確認する

既定は ~/.codex/config.toml ですが、CODEX_HOME が設定されているとそちらを読みます。

Windows(PowerShell)

if ($env:CODEX_HOME) { "CODEX_HOME = $env:CODEX_HOME" } else { "既定: $env:USERPROFILE\.codex" }

macOS / Linux

echo "${CODEX_HOME:-$HOME/.codex}"

⚠️ メッセージに出ているパスが、いま直そうとしているファイルと同じか必ず見てください。

3. TOML として妥当か確かめる

Windows(PowerShell) — 追加インストール無しで、壊れている行だけを見つけます。

$p = "$env:USERPROFILE\.codex\config.toml"
Get-Content $p | Select-String -Pattern '^\s*[^#\[\s][^=]*$' |
  ForEach-Object { "{0} 行目: {1}" -f $_.LineNumber, $_.Line }

⚠️ = を含まない行(コメントと見出し行を除く)を拾います。TOML の完全な検証ではありませんが、今回のような書き間違いはこれで見つかります。

macOS / Linux

python3 -c "import tomllib,sys;tomllib.load(open(sys.argv[1],'rb'))" ~/.codex/config.toml && echo OK

tomllib は Python 3.11 以降に標準で入っています。追加インストールは不要です。

4. 切り分けたいときは、一時的に別の場所を読ませる

設定を消さずに、既定の状態で動くかを確かめられます。

macOS / Linux

CODEX_HOME="$(mktemp -d)" codex login status

Windows(PowerShell)

$env:CODEX_HOME = New-Item -ItemType Directory -Path (Join-Path $env:TEMP "codex-test") -Force | Select-Object -ExpandProperty FullName
codex login status
$env:CODEX_HOME = $null

これで通るなら、原因は設定ファイルです。

再発防止

  • 設定を直したら、通信しない codex login status一度読ませて確認する
  • 🔴 キー名の打ち間違いはエラーにならない。 設定が効かないときは、綴りを疑う
  • 文字列の値は必ず引用符で囲む(model = "gpt-5"

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する