openai / openai/codex

Codex Desktop sessions get no exec/shell/file-edit tools (only collaboration tools)

Open
#46,582 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug custom-model skills tool-calls windows-os
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_HOME on another volume via junction: C:\Users\26364\.codexD:\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 ExecCommandBeginEvent and no apply_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
  1. 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?
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.