はじめに
OpenAI CodexですがCLI版のみでなく、Windowsアプリ版もリリースされ便利になりましたね。
自分は普段Claude Code中心に使っていて、今回初めてアプリ版導入して使ってみることにしました。
しかし使用中、shell_command 経由のコマンド実行がすべて失敗。。。
要するに、プロンプト経由だとPowershellが起動せず実質的に作業が一切できなくなるエラーに遭遇しました。
調査の結果、Claude Code の設定を Codex にインポートした際に書き込まれる [shell_environment_policy] inherit = "core" が根本原因であることが判明しました。
原因の切り分けから解決までの過程を共有します。
環境
- OS: Windows 10/11
- Codexアプリ: デスクトップ版(GPT-5.4 / GPT-5.3-Codex)
- シェル: Windows PowerShell 5.1(OS標準)
- PowerShell 7(pwsh): 未インストール
症状
Codexアプリでタスクを実行すると、すべてのシェルコマンドが起動段階で失敗します。
こんな感じ↓

なんかキミ、ClaudeCodeと動きちゃうやん・・・
一体どうなってるの?
ここから先のプロンプトはシェルの動作不良を解明するやり取りが続くんですが・・・
いかんせんPowerShellがろくすっぽ動かないので、原因究明しようにもファイル1つまともに読み出しができないという悪夢。
結局Claudeで原因究明することに・・
(余談ですが,こういったトラブルの対応ってChatGPTよりClaudeのほうが解決能力桁違いかなって個人的に思ってます)
-
Get-ChildItem -Force→ 失敗 -
rg --files→ 失敗 -
git status --short→ 失敗 -
cmd /c echo ...→ 失敗
エラーの詳細を確認すると、以下のようなログが出ていました。
Results: functions.shell_command が3回とも PowerShell 初期化エラー(aborted)で失敗
Exit code: -65536
一方、Codexのスレッド端末(画面内のターミナル表示)ではPowerShellが正常に動作しており、コマンドも実行できる状態でした。つまり「端末は動くのに shell_command ツール経由だけ動かない」という状況です。
原因の切り分け
試したが効果がなかった対策
1. config.toml でサンドボックス関連の設定を変更
[features]
experimental_windows_sandbox = false
elevated_windows_sandbox = true
powershell_utf8 = true
→ 変化なし
2. サンドボックスの完全無効化
sandbox_mode = "danger-full-access"
→ Codexアプリはこの設定を無視し、「Set up Agent sandbox to continue」というダイアログを表示
3. サンドボックスの再セットアップ
Codexアプリ画面下部の「Set up」ボタンからサンドボックスの初期セットアップを実行。
→ セットアップ自体は成功。しかし shell_command は依然として失敗
4. PowerShell 7(pwsh)のインストール
winget install Microsoft.PowerShell
→ これで動作するようになった。 いやー、めでたしめでたし。
・・・しかし後の検証で、これは根本解決ではなく回避策だったことが判明。
別端末での検証で新事実が判明
pwsh 未インストールの別端末で同じプロジェクトを開いたところ、Codexは正常に動作しました、ちゃんとShell動いとるやん。
つまりpwsh の有無だけが原因ではありません。
さらにその後、Codexアプリの「設定 → 構成 → Import external agent config」で Claude Code の設定をインポートした直後、同じエラーが再現しました。

↑Codexアプリの設定画面の[構成]項目
他のAIエージェントを使用していると設定のインポートができる項目がある
二分探索で真犯人を特定
インポートで追加された設定を段階的に切り戻し、最終的に以下が判明しました。
最小構成(動作する):
[windows]
sandbox = "elevated"
これを追加すると壊れる:
[shell_environment_policy]
inherit = "core"
[windows]
sandbox = "elevated"
[shell_environment_policy] inherit = "core" が 1行あるだけで shell_command が全滅します。
真の原因:inherit = "core" によるPowerShell環境変数の喪失
inherit = "core" は Claude Code 用の設定で、シェル起動時に継承する環境変数を最小限のコアセットに制限するものです。
Claude Code は内部的に Git Bash(bash)を使用するため、この設定で問題は起きません。しかし Codex は powershell.exe または pwsh.exe を使用しており、PowerShell の初期化には PSModulePath などの環境変数が必要です。
inherit = "core" によってこれらが剥ぎ取られた結果、PowerShell の InitialSessionState の型初期化が失敗し、Exit code -65536 で即座にクラッシュしていました。
inherit = "core" が設定されている場合の動作:
Codex → shell_command → PowerShell 起動
↓
環境変数が最小限に制限
↓
PSModulePath 等が存在しない
↓
InitialSessionState 初期化失敗
↓
Exit code: -65536
なぜ pwsh インストールで動いたのか
PowerShell 7(pwsh)は PowerShell 5.1 と比べて環境変数への依存が少なく、inherit = "core" で環境変数が制限された状態でも初期化に成功します。つまり pwsh のインストールは根本原因の解決ではなく、偶然の回避策でした。
解決策
config.toml から shell_environment_policy セクションを削除する
%USERPROFILE%\.codex\config.toml を確認し、[shell_environment_policy] セクションがあれば丸ごと削除してください。
修正前(エラーになる):
[shell_environment_policy]
inherit = "core"
[shell_environment_policy.set]
BASH_DEFAULT_TIMEOUT_MS = "120000"
BASH_MAX_OUTPUT_LENGTH = "100000"
BASH_MAX_TIMEOUT_MS = "600000"
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR = "1"
DISABLE_TELEMETRY = "0"
MAX_MCP_OUTPUT_TOKENS = "25000"
MCP_TIMEOUT = "30000"
MCP_TOOL_TIMEOUT = "30000"
ENABLE_TOOL_SEARCH = "true"
[windows]
sandbox = "elevated"
修正後(正常動作):
[windows]
sandbox = "elevated"
修正後、Codexアプリを完全に終了して再起動すれば解決します。
この問題が発生する典型的な経緯
- Claude Code と Codex を同じ端末で併用している
- Codex の「Import external agent config」で Claude Code の設定を読み込む
- Claude Code 固有の
[shell_environment_policy] inherit = "core"が config.toml に書き込まれる - Codex の
shell_commandが PowerShell を起動できなくなる
Claude Code と Codex の設定は互換性がありません。
インポート機能を使った場合は、config.toml の内容を必ず確認してください。
→さらに言うとClaude Code導入済みの人がCodexアプリを使おうとした時に、脳死で設定インポートボタンなんか押してしまうとハマります
この問題かどうかを判断する方法
1. Codex で診断プロンプトを実行
新しいスレッドに以下を入力してください。
Codex経由でshell起動できるか確かめて
実行結果に以下のいずれかが含まれていれば、本記事と同じ問題の可能性が高いです。
Exit code: -65536-
shell_commandがabortedで終了 - 「PowerShell の起動時点で失敗」という趣旨のメッセージ
-
(no output)のまますべてのコマンドが失敗
2. config.toml を確認
Get-Content "$env:USERPROFILE\.codex\config.toml"
[shell_environment_policy] セクションや inherit = "core" が含まれていたらビンゴです。
補足:Codex と Claude Code のシェル実行方式の違い
同じAIコーディングツールでも、内部で使用するシェルが異なります。
| ツール | 内部シェル | Windows での必須要件 |
|---|---|---|
| OpenAI Codex アプリ | PowerShell(powershell.exe / pwsh.exe) | 特になし(OS標準で動作) |
| Claude Code | Git Bash(bash) | Git for Windows のインストール |
Codex は Windows ネイティブ(PowerShell)路線、Claude Code は Unix 互換(bash)路線という設計思想の違いがあります。この違いにより、設定ファイルの互換性がないのが今回の問題の背景です。
まとめ
- Codexアプリの
shell_commandがExit code: -65536で失敗する場合、config.toml の[shell_environment_policy] inherit = "core"を疑う - この設定は Claude Code 用のもので、Codex の PowerShell 初期化に必要な環境変数を奪ってしまう
- Codex の「Import external agent config」で Claude Code の設定を読み込んだ場合に発生しやすい
- 解決策は config.toml から
[shell_environment_policy]セクションを削除すること - pwsh(PowerShell 7)のインストールでも動作するが、これは回避策であり根本解決ではない
- Claude Code と Codex の設定ファイルには互換性がないため、インポート後は必ず config.toml を確認すること
おわりに
まぁ最初からCLI版を触ってる人からしたら「ド素人」なハマりかも・・・
Windows版アプリのリリースを機に触る人も増えるだろうから、そんな人に刺されば幸いです。
(そもそもOS標準でPowerShell7.0で入れとry・・)
参考リンク
- OpenAI Codex Windows ドキュメント
- Codex config.toml リファレンス
- Codex Config basics
- PowerShell のインストール(Microsoft 公式)
- GitHub Issue: Sandbox setup error on Windows #10601
*本記事の執筆にはClaudeを援用しました