Codex Desktop sessions get no exec/shell/file-edit tools (only collaboration tools)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Environment
- Codex Desktop (MSIX) — package
OpenAI.Codex_26.915.4065.0_x64__2p2nqsd0c76g0 - Windows 11, user
ZENINGYA\26364 CODEX_HOMEon another volume via junction:C:\Users\26364\.codex→D:\Codex\.codex- Model provider: custom OpenAI-compatible endpoint (
wire_api = "responses"), no ChatGPT account login
Symptom
Every session reports it has only collaboration tools — no exec, no shell/Terminal tool, no local file read/write, no apply_patch. Brand-new threads behave identically to existing ones.
Verified with an on-disk test (not the model's word)
I asked it to create D:\codex综合\codex-tool-test.txt. It replied that it cannot. Verified independently:
- the file does not exist
- 0 files modified in that directory within 10 minutes
- the directory's mtime is from the previous day
- logs contain no
ExecCommandBeginEventand noapply_patch
→ confirmed: no command is ever executed. (Asking it to run pwd returns a plausible path, but that is just the model answering from the known workspace path — nothing actually runs.)
The settings page reports
Codex is ignoring 2 unrecognized configuration settings.
session-flags: `features.thread_tools` is ignored.
user (D:\Codex\.codex\config.toml): `disable_response_storage` is ignored.
Evidence from the desktop logs (…\LocalCache\Local\Codex\Logs\…)
1) The bundled plugin that provides the app tools never installs. Copying it out of the package directory fails, and that package directory is EFS-encrypted (cipher /c reports compatibility level "Application Protected"):
[BundledPluginsMarketplace] plugin_marketplace_folder_write_failed
errorMessage="UNKNOWN: unknown error, copyfile
'C:\Program Files\WindowsApps\OpenAI.Codex_26.915.4065.0_x64__2p2nqsd0c76g0\app\resources\plugins\openai-bundled\plugins\codex-app-tools\.codex-plugin\plugin.json'
-> 'D:\Codex\.codex\.tmp\bundled-marketplaces\openai-bundled.staging-<guid>\plugins\codex-app-tools\.codex-plugin\plugin.json'"
[BundledPluginsMarketplace] bundled_plugins_marketplace_resolve_failed (same cause)
Minimal repro (Node on Windows): copying that same file with fs.copyFileSync fails with UNKNOWN: unknown error, while fs.readFileSync + fs.writeFileSync succeeds (and Python's shutil.copy2 succeeds too). Copying it to a destination on the same volume (C: → C:) fails identically → this is not a cross-volume or permission problem; it is CopyFile against an EFS-encrypted source. Windows returns ERROR_ENCRYPTION_FAILED (6000), which libuv does not map — hence UNKNOWN.
2) Manually placing the plugin files does not help. After copying the bundled plugins to CODEX_HOME\plugins\cache\openai-bundled\<plugin>\<version>\ and adding [plugins."codex-app-tools@openai-bundled"] enabled = true, the plugin's MCP server does start:
mcp_server_startup_status_updated server=codex_app status=ready
…but its tools still never reach the session's tool list.
3) The in-app "reset & reinstall workspace" fails at the same step
[install-primary-runtime] primary_runtime_bundle_install_outcome
outcome=installed durationMs=70810 <- the runtime itself installs fine
[install-primary-runtime] primary_runtime_install_failed
errorCategory=post_install_failed
failureStage=sync_plugins
errorMessage="Failed to sync primary runtime bundled plugin marketplace"
retryable=false
→ only the plugin sync fails, and it is not retryable.
4) The client still sends a flag that the bundled CLI no longer recognises
session-flags: features.thread_tools is ignored.
(I tried adding the currently valid flags taken from the CLI binary's own feature list — [features] shell_tool / unified_exec / apply_patch_freeform = true. The "ignored" warnings disappeared, but sessions still receive no exec tool.)
5) Repeated auth-related failures
Request failed error={"code":-32600,"message":"read remote plugin details:
chatgpt authentication required for remote plugin catalog"} method=plugin/read
Questions
- Is exec/shell/file-edit tool provisioning gated on a successful bundled-plugin sync? What is the expected behaviour when the package directory is EFS-encrypted?
- Is it gated on a ChatGPT account login? Is there a supported way to keep the local tools when using a custom model provider?
Happy to provide full logs and thread ids on request.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the desktop logs for BundledPluginsMarketplace, the plugin.json path under openai-bundled, and the install-primary-runtime sync_plugins failure. Reproduce the EFS-encrypted package copy with the stated Node and Python commands, then trace whether a ready codex_app MCP server reaches the session tool list for a custom provider. Done means the expected local tools are provisioned or the failure and supported authentication behavior are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js
- Domain
- desktop, devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100