[Bug] VS Code Codex extension host stays above 300% CPU on macOS
Bug: VS Code Codex extension host stays above 300% CPU on macOS
Summary
The Codex VS Code extension appears to trigger persistent high CPU usage in the VS Code extension host process on macOS. The process shown in Activity Monitor is Code Helper (Plugin), and it remains around 280-350% CPU for multiple minutes after VS Code starts.
The high CPU is in the VS Code extension host process, not in the spawned codex app-server child process. The extension host has openai.chatgpt activated and has spawned:
~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
Environment
OS: macOS 15.7.4 (24G517)
Architecture: arm64
VS Code: 1.120.0
Extension ID: openai.chatgpt
Extension display name: Codex - OpenAI's coding agent
Extension version: 26.5513.21555
Extension path: ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64
Reproduction
- Open VS Code normally.
- Wait for the Codex extension to activate.
- Observe Activity Monitor or
ps. Code Helper (Plugin)remains above 250-300% CPU for several minutes.
The issue is reproducible after restarting VS Code. Running code --disable-extension openai.chatgpt did not persistently disable the extension and did not stop the already-running extension host.
Observed CPU Evidence
Process snapshots taken every 5 seconds:
2026-05-18 15:37:15 CST
35998 35259 329.9 6.7 03:28 Code Helper (Plugin) --type=utility --utility-sub-type=node.mojom.NodeService ...
36420 35998 0.0 0.1 03:26 ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
36440 35998 0.0 0.3 03:26 .../jsonServerMain --node-ipc --clientProcessId=35998
36649 35998 0.0 0.2 03:21 .../dbaeumer.vscode-eslint-3.0.24/server/out/eslintServer.js --node-ipc --clientProcessId=35998
2026-05-18 15:37:20 CST
35998 35259 328.0 5.5 03:33 Code Helper (Plugin) --type=utility --utility-sub-type=node.mojom.NodeService ...
36420 35998 0.0 0.1 03:31 ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
2026-05-18 15:37:25 CST
35998 35259 345.1 6.2 03:38 Code Helper (Plugin) --type=utility --utility-sub-type=node.mojom.NodeService ...
36420 35998 0.0 0.1 03:36 ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
2026-05-18 15:37:30 CST
35998 35259 356.3 8.3 03:43 Code Helper (Plugin) --type=utility --utility-sub-type=node.mojom.NodeService ...
36420 35998 0.0 0.1 03:41 ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
2026-05-18 15:37:35 CST
35998 35259 336.5 7.2 03:48 Code Helper (Plugin) --type=utility --utility-sub-type=node.mojom.NodeService ...
36420 35998 0.0 0.1 03:46 ~/.vscode/extensions/openai.chatgpt-26.5513.21555-darwin-arm64/bin/macos-aarch64/codex app-server --analytics-default-enabled
Activity Monitor screenshots also showed:
Code Helper (Plugin): 319.8% CPU, CPU time 2:20.23
Code Helper (Plugin): 285.2% CPU, CPU time 2:35.83
VS Code Extension Host Log Evidence
From ~/Library/Application Support/Code/logs/20260518T153346/window1/exthost/exthost.log:
2026-05-18 15:33:48.322 [info] Extension host with pid 35998 started
2026-05-18 15:33:48.418 [info] ExtensionService#_doActivateExtension openai.chatgpt, startup: false, activationEvent: 'onChatSession:openai-codex'
...
2026-05-18 15:33:49.847 [info] ExtensionService#_doActivateExtension dbaeumer.vscode-eslint, startup: false, activationEvent: 'onStartupFinished'
From ~/Library/Application Support/Code/logs/20260518T153346/window1/exthost/openai.chatgpt/Codex.log:
2026-05-18 15:33:49.540 [info] Activating Codex extension
2026-05-18 15:33:49.540 [info] [CodexMcpConnection] Spawning codex app-server
2026-05-18 15:33:49.540 [info] ChatGPT desktop bridge active
2026-05-18 15:33:49.540 [info] Desktop bridge registered
2026-05-18 15:33:49.540 [info] Work with apps desktop bridge initialized
The same log contains repeated warnings/errors around feature sync and network/API responses:
WARN codex_core_plugins::manager: failed to warm featured plugin ids cache
remote plugin sync request to https://chatgpt.com/backend-api/plugins/featured failed with status 403 Forbidden
codex_features: unknown feature key in config: remote_connections
Request failed ... method=experimentalFeature/enablement/set
unsupported feature enablement `auth_elicitation`
Error fetching httpStatus=403 ... url=https://chatgpt.com/ces/v1/rgstr...
Failed to list resource templates for MCP server 'godot-mcp-pro': Mcp error: -32601: Method not found
Failed to list resources for MCP server 'computer-use': Mcp error: -32601: Method not found
Expected Behavior
The VS Code extension host should return to low CPU after Codex activation completes. Background network failures, feature flag sync errors, telemetry failures, or MCP resource-listing failures should not cause persistent extension host CPU above 250-300%.
Actual Behavior
The VS Code extension host remains above 300% CPU for multiple minutes. The spawned Codex app-server child process remains at 0.0% CPU, which suggests the hot loop is likely in the VS Code extension host side rather than the app-server child.
Notes / Hypothesis
This may be related to one or more repeated background loops after extension activation:
- feature enablement sync repeatedly trying unsupported keys such as
auth_elicitation; - repeated handling of
remote_connectionsas an unknown feature key; - repeated Cloudflare/403 HTML response handling for
backend-api/plugins/featured; - repeated telemetry
/ces/v1/rgstr403 handling; - repeated MCP resource/resource-template listing against servers that return
-32601 Method not found.
The logs above do not prove which loop burns CPU, but they are the recurring Codex-side events visible during the high CPU period.
Request
Could the Codex VS Code extension team investigate why the extension host process can remain above 300% CPU after activation on macOS?
It would also help if the extension had:
- backoff/deduplication for repeated 403/network failures;
- backoff/deduplication for unsupported feature enablement sync;
- backoff/deduplication for MCP
resources/listandresources/templates/listcalls when a server returns-32601 Method not found; - a clear way to disable Codex persistently from the CLI, or documentation explaining that
code --disable-extension openai.chatgptis launch-scoped and does not write VS Code's global disabled extension state.
3 Comments
seeing the same... when codex is working 350% CPU... when it's idle it goes to negligible
I am seeing the same pattern on another macOS / Apple Silicon machine.
Environment:
Observed during a short monitor run:
Code Helper (Plugin)processes climbed to about 333-343% CPU for roughly a minute.codex app-serverprocesses stayed at 0.0% CPU during the spike, so the hot loop appears to be inside the VS Code extension host rather than the app-server child.Codex.login both windows kept growing during the spike. The repeated line was:[IpcClient] Received broadcast but no handler is configured method=thread-stream-state-changedThis looks very close to the original report here and also overlaps with #7972 and the repeated
thread-stream-state-changedlog signature from #13343.Additional confirmation on a newer VS Code extension version. I observed the same shape of issue today.
Environment:
Symptoms:
Code Helper (Plugin)extension-host processes were hot for a long time:Mitigation / confirmation:
openai.chatgpt, fully quitting VS Code, removing the stale extension folder, and reopening VS Code stopped the loop.openai.chatgpt/ Codex VS Code helper process remained.So this appears to still reproduce on
openai.chatgpt@26.527.31454, and the key signal is the same as this issue: the hot process is the VS Code extension host, not the spawnedcodex app-serverchild.