[Bug] VS Code Codex extension host stays above 300% CPU on macOS

Open 💬 3 comments Opened May 18, 2026 by BravoNiceCatch

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

  1. Open VS Code normally.
  2. Wait for the Codex extension to activate.
  3. Observe Activity Monitor or ps.
  4. 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_connections as an unknown feature key;
  • repeated Cloudflare/403 HTML response handling for backend-api/plugins/featured;
  • repeated telemetry /ces/v1/rgstr 403 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/list and resources/templates/list calls 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.chatgpt is launch-scoped and does not write VS Code's global disabled extension state.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗