Codex CLI のエラー

--profile `<name>` cannot be used while <path> contains legacy `[profiles.<name>]` config

結論

プロファイルの置き場所が変わった。`[profiles.X]` は使えず、`X.config.toml` に分ける。

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

エラー文字列

Codex CLI
--profile `<name>` cannot be used while <path> contains legacy `[profiles.<name>]` config

⚠️ 標準エラーに出て、終了コードは 1 です。

Error loading config.toml: --profile `work` cannot be used while
C:\Users\<名前>\.codex\config.toml contains legacy `profile = "work"` or `[profiles.work]` config;
move those settings into C:\Users\<名前>\.codex\work.config.toml and remove the legacy
profile selector/table. See https://developers.openai.com/codex/config-advanced#profiles
for more information.

何が起きているか

🔴 プロファイルの置き場所が変わりました。 設定が間違っているのではなく、書き方が古いという指摘です。

旧(使えない)
置き場所 config.toml の中 プロファイルごとに別ファイル
書き方 [profiles.work] work.config.toml
既定の選択 profile = "work" 🔴 廃止

⚠️ 今まで動いていた設定が、更新した日から突然使えなくなります。 壊れたのではありません。

メッセージが移動先のフルパスを教えてくれます。 探す必要はありません。

🔴 [profiles.X] が残っているだけで止まる

⚠️ そのプロファイルを使っていなくても関係ありません。 --profile を渡した時点で、config.toml に古い書き方が1つでも残っていれば止まります。

直し方

1. いまの config.toml を確認する

macOS / Linux

grep -n 'profile' "${CODEX_HOME:-$HOME/.codex}/config.toml"

Windows(PowerShell)

$h = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }
Select-String -Path "$h\config.toml" -Pattern 'profile'

⚠️ CODEX_HOME が設定されていると ~/.codex は見られません。 先に確認してください。

2. 先にバックアップを取る

cp "${CODEX_HOME:-$HOME/.codex}/config.toml" "${CODEX_HOME:-$HOME/.codex}/config.toml.bak"
$h = if ($env:CODEX_HOME) { $env:CODEX_HOME } else { "$env:USERPROFILE\.codex" }
Copy-Item "$h\config.toml" "$h\config.toml.bak"

3. プロファイルごとにファイルを分ける

config.toml にこう書いていたなら:

profile = "work"

[profiles.work]
model = "gpt-5.6"
approval_policy = "never"

work.config.toml を新しく作り、[profiles.work]中身だけを移します。

model = "gpt-5.6"
approval_policy = "never"

🔴 [profiles.work] という見出しの行は移しません。 ファイル名がプロファイル名になります。

そのうえで config.toml から、見出しと profile = "..." の行を両方消します。

4. 使うときは毎回指定する

codex --profile work

⚠️ profile = "..." による既定の指定は廃止されました。 常に同じものを使いたい場合は、その内容を config.toml 本体に直接書いてください。

5. 動作を確認する

codex exec --profile work --skip-git-repo-check "hello"

冒頭に出る model:provider: が、意図したものになっているか見てください。

似ているが別のエラー

メッセージ 違い
Error: --profile only applies to runtime commands 対応していないサブコマンドに付けた(詳細
Error loading config.toml: ... TOML として読めていない詳細
Error: Model provider ... not found 接続先の名前が未定義(詳細

再発防止

  • 🔴 プロファイルは <名前>.config.toml に分ける。 config.toml の中の [profiles.X] は使えない
  • profile = "..." による既定指定は廃止。使うときに毎回 --profile を渡す
  • 更新後に設定まわりで止まったら、壊れたのではなく書き方が変わった可能性をまず疑う

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

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

エラーを報告する