Codex Chrome Plugin: extension-host not running, node_repl MCP tool unavailable in session

Resolved 💬 4 comments Opened May 31, 2026 by hy198619 Closed Aug 4, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of the Codex App are you using (From “About Codex” dialog)?

26.527.31326 (3390)

What subscription do you have?

free

What platform is your computer?

macOS m1

What issue are you seeing?

The @chrome plugin cannot establish communication with Chrome. All static checks pass (Chrome running, extension installed & enabled, native host manifest correct), but the runtime communication chain never completes:

extension-host (native messaging host binary) is never spawned as a process
node_repl MCP tool is not available in the session, preventing browser-client.mjs from setting up the connection
Environment
Codex desktop app (latest, bundled plugins)
Chrome 148.0.7778.181 on macOS ARM64
Codex Chrome Extension: hehggadaopoacecdllhhajmbjkdcmajg v1.1.5_0, installed & enabled in Default profile
Plugin: chrome@26.527.31326 (OpenAI bundled)
Session type: Projectless chat thread
Diagnostics
All static checks pass:

chrome-is-running.js --check → ✅ Chrome running
check-extension-installed.js --json → ✅ installed, enabled, registered
check-native-host-manifest.js --json → ✅ manifest exists, path correct, origin allowed
Runtime checks fail:

extension-host process → ❌ not running (checked via pgrep -f extension-host)
node_repl MCP tool → ❌ not listed in available MCP tools; globalThis.nodeRepl is undefined
open-chrome-window.js → ❌ fails with kLSServerCommunicationErr (LaunchServices not available in sandbox)
CDP remote debugging port → ❌ no port open (scanned 9222-9230)
browser-client.mjs setup → ❌ fails with privileged native pipe bridge is not available; browser-client is not trusted
Binary status:

node_repl → ✅ exists at /Applications/Codex.app/Contents/Resources/node_repl, properly code-signed (Team ID: 2DC432GLL2)
extension-host → ✅ exists, executable, correct path in manifest
Root Cause
The communication chain is:

Chrome Tab ⇄ Chrome Extension (Native Messaging) → extension-host (stdio) → native pipe → node_repl (MCP server) → Codex Session
It breaks at two points:

extension-host never starts. Chrome should launch it on demand for native messaging, but it never does. The Chrome extension appears enabled in preferences but may not have its background service worker actively running, or the handshake never initiates.

node_repl MCP tool is unavailable. The binary exists but the MCP server it provides is not registered for the current session. Without it, browser-client.mjs cannot access globalThis.nodeRepl?.nativePipe or call agent.browsers.get("extension").

Workarounds Tried (all no change)
Restart Chrome completely
Reinstall Codex Chrome Extension from Chrome Web Store
Remove & reinstall Chrome plugin from Codex plugin UI
Restart Codex desktop app entirely
Create new chat thread
Suspected Areas
node_repl MCP server may only be started for workspace-based sessions, not projectless threads
Chrome extension may be registered/enabled but its background.service_worker not actively running
The browser plugin (which has node-repl keyword) is not installed, while the chrome plugin depends on its MCP server
sandbox_approval: false and rules: false in session approval policy may block process spawning
No --remote-debugging-port flag used, so CDP fallback path is unavailable

What steps can reproduce the bug?

Since I installed the CodeX and Chrome extensions, I haven't been able to use them successfully

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

4 Comments

github-actions[bot] contributor · 2 months ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #25247
  • #23884
  • #24845
  • #24838

Powered by Codex Action

joonathan · 1 month ago

Adding a fresh macOS reproduction on a substantially newer Codex Desktop build. This appears to be the same underlying failure: the Chrome plugin is installed correctly and the browser backend starts, but the tools required to use it are not injected into new Desktop threads.

Environment

  • macOS
  • Codex Desktop: 26.707.91948
  • Codex CLI bundled with Desktop: 0.144.5
  • Chrome plugin: chrome@openai-bundled version 26.707.91948
  • Session type: projectless local Codex Desktop task
  • Reproduction task ID: 019f6adb-f996-77f1-83b5-b4f980d59a0e

Reproduction prompt

Use @chrome to list my currently open Chrome tabs. Do not interact with any page.

User-visible result

I couldn’t list the tabs because the Chrome plugin’s required browser-control runtime isn’t available in this task. I did not interact with any page.

Plugin and Chrome validation

The supported static checks all pass:

  • chrome@openai-bundled is installed and enabled.
  • Google Chrome is running.
  • The ChatGPT Chrome Extension is installed, registered, and enabled in the selected Default profile.
  • Extension version: 1.2.27203.26575_0.
  • The native messaging manifest exists at:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.openai.codexextension.json
  • The manifest name is correct: com.openai.codexextension.
  • Its allowed origin matches the expected Chrome extension.
  • The bundled node_repl executable exists and is executable.
  • codex mcp list reports node_repl as enabled.
  • The bundled browser runtime paths are detected successfully.
  • App logs report the browser backend starting and becoming ready.

Relevant successful log state:

browser_use_runtime_paths_selected
nodeReplPath=/Applications/ChatGPT.app/Contents/Resources/cua_node/bin/node_repl
nodeVersionStatus=ok
nodeVersionValue=v24.14.0

The active task also received a ready browser-use backend and native-pipe socket.

Actual failure

The task’s recorded dynamic-tool inventory contains only:

codex_app
plugin_management

It does not contain:

mcp__node_repl__js
tool_search

Therefore, the task cannot run the Chrome skill’s required bootstrap or discover the deferred Node REPL tool.

This appears to fail at the capability-exposure boundary:

Chrome plugin installed
→ extension and native host valid
→ node_repl configured and detected
→ browser backend starts successfully
→ required tools are not injected into the Desktop task

Recovery attempts

I tested all of the following without resolving the problem:

  1. Fully quit and reopened Codex Desktop.
  2. Created a genuinely new projectless task.
  3. Removed and reinstalled the Chrome plugin through the Codex plugin UI.
  4. Fully restarted Codex again.
  5. Created another fresh task and repeated the minimal tab-listing prompt.

The Chrome extension and native-host checks continued to pass, but the fresh task still lacked both mcp__node_repl__js and tool_search.

Why this seems related

This looks closely related to:

  • #19425 — MCP server and tools are discovered, but not exposed to Desktop threads.
  • #20579 — Browser Use missing node_repl/js after a Desktop update.
  • #21451 — deferred node_repl/js can sometimes be recovered through tool_search; that workaround is unavailable here because tool_search itself is absent.
  • #25843 — codex mcp list sees an enabled server, but its tools are not exposed in Desktop threads.

This newer reproduction suggests the MCP/browser tool-exposure problem remains present, or has recurred, in Desktop build 26.707.91948.

Please let me know if a sanitized diagnostic export, exact application-log excerpts, or the task JSONL tool inventory would be useful.

colindotfun · 1 month ago

Filed a related issue with component-level isolation on the same builds as the reproduction above (Desktop 26.707.91948, CLI 0.144.5): #33599.

Key difference: it reproduces with the in-app Browser plugin and no Chrome extension installed, on a fully clean install — so the defect appears to be the Desktop task runtime silently failing to inject the node_repl tools at all, rather than anything in the Chrome/extension chain. The node_repl server answers a manual stdio probe correctly, and the terminal CLI reading the same ~/.codex/config.toml injects the tools fine.

joonathan · 1 month ago

Update: this now works for me on the newer build.

  • ChatGPT/Codex Desktop and Chrome plugin: 26.715.21425
  • Bundled CLI: 0.145.0-alpha.18
  • Model: gpt-5.6-sol, Medium
  • Task: 019f6f09-72f7-74e1-9432-98aba23d1ab1

In a fresh task, tool_search was present, discovered mcp__node_repl__js, and Chrome successfully returned all 24 open tabs. This is the same Mac/setup that failed on Desktop 26.707.91948 / CLI 0.144.5, with both tools absent.

The live Sol catalog changed between direct and code_mode_only during follow-up checks, so I cannot attribute the recovery to one stable metadata value. However, the original tool-exposure failure no longer reproduces for me.