0.150.1 regression: sessions provisioned without shell tool (code-mode harness only exposes apply_patch + MCP); 0.149.1 works
What happened
After auto-updating to codex-cli 0.150.1 (macOS arm64, standalone install), every new session — TUI and codex exec — is provisioned without any local shell / file-read tools. The model only receives the code-mode JS exec harness exposing apply_patch, image_gen, and MCP tools; shell_command / exec_command are absent from the tool list entirely.
The model can chat normally but cannot run even ls or git status, replying e.g.:
但当前会话没有可用的本地文件/终端读取工具 … ("the current session has no local file/terminal tools available")
Asking the model to dump its available tool names from inside the exec harness confirms the provisioning gap — the full list contains only apply_patch, create_goal, get_goal, image_gen__imagegen, list_mcp_resources, MCP tools, etc. No shell tool.
A/B isolation (same machine, same account, same enterprise policy)
| codex-cli | model | force flags | shell tool |
|---|---|---|---|
| 0.150.1 | default (gpt-5.6) | — | ❌ absent |
| 0.150.1 | gpt-5.5 (-m gpt-5.5) | — | ❌ absent |
| 0.150.1 | default | -c features.shell_tool=true -c features.unified_exec=true | ❌ absent |
| 0.149.1 (GitHub release rust-v0.149.1) | default | — | ✅ works, executes commands normally |
So this is not local config, sandbox mode, trust level, model choice, or feature flags — pinning the CLI back to 0.149.1 with everything else identical restores shell execution.
Timeline detail that may help: on the same day, one early 0.150.1 session did still get shell_command, and sessions a few hours later did not — so a server-side provisioning component interacting with the 0.150.1 client may be involved.
Environment
- codex-cli 0.150.1 (broken) vs 0.149.1 (works), standalone auto-updated install
- macOS 15 (Darwin 25.5.0), Apple Silicon
sandbox_mode = "workspace-write",approval_policy = "on-request", project trusted- ChatGPT Enterprise account with managed requirements (verified not the cause: 0.149.1 works under the same policy)
- Reproduces headlessly:
codex exec "run ls; if you have no shell tool reply NO_SHELL_TOOL"→NO_SHELL_TOOL
Expected
New sessions on 0.150.1 should provision the local shell tool exactly as 0.149.1 does.
Workaround
Repoint ~/.codex/packages/standalone/current to the retained 0.149.1-aarch64-apple-darwin release and set features.in_app_updates = false.
1 Comment
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action