Windows Codex App: Browser Use unavailable because Node REPL tool is not exposed
What version of the Codex App are you using (From “About Codex” dialog)?
Codex Desktop Windows: 26.422.2437.0
Additional local runtime info:
codex-cli 0.124.0-alpha.2
Browser Use plugin: openai-bundled/browser-use/0.1.0-alpha1
What subscription do you have?
Plus
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
WSL workspace enabled
What issue are you seeing?
Browser Use is installed and enabled, but it cannot be used because the required Node REPL JavaScript tool is not exposed to Codex sessions.
Observed state:
browser_use true
in_app_browser true
js_repl true
The Browser Use plugin exists locally and browser-client.mjs is present:
/mnt/c/Users/kutay/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/scripts/browser-client.mjs
However, tool discovery does not expose any of the required Node REPL execution tools:
mcp__node_repl__js
node_repl js
js
js_reset
Only unrelated MCP tools are available, such as Supabase and Cloudflare. Because of this, the Browser Use skill cannot bootstrap:
const { setupAtlasRuntime } = await import(".../scripts/browser-client.mjs");
const backend = "iab";
await setupAtlasRuntime({ globals: globalThis, backend });
No Browser Use IAB bridge/socket appears in WSL:
/tmp/codex-browser-use*
and ss -xlpn | rg 'codex-browser-use|browser-use|codex' does not show a Browser Use socket.
The app-server process starts, but only normal MCP servers are visible. No Node REPL or Browser Use bridge process appears.
What steps can reproduce the bug?
Feedback / uploaded thread id:
019dbf64-6f3b-78e1-98c6-b269727ee9e2
Steps:
- Use Codex Desktop on Windows with a WSL workspace.
- Ensure Browser Use is installed/enabled.
- Enable
js_repl:
/mnt/c/Users/kutay/.codex/bin/wsl/codex features enable js_repl
- Fully quit Codex Desktop and restart it.
- Open a new thread and request Browser Use on the in-app browser, for example:
Use Browser Use to inspect the current in-app browser tab at http://localhost:5173/
- The Browser Use skill cannot start because the required Node REPL
jstool is not available in the model/tool environment.
Diagnostics after restart:
/mnt/c/Users/kutay/.codex/bin/wsl/codex features list | rg 'browser_use|in_app_browser|js_repl'
returns:
browser_use stable true
in_app_browser stable true
js_repl experimental true
js_repl_tools_only under development false
But tool discovery still does not expose mcp__node_repl__js / node_repl js.
What is the expected behavior?
When browser_use, in_app_browser, and js_repl are enabled and the Browser Use plugin is installed, Codex sessions should expose the required Node REPL JavaScript execution tool, typically mcp__node_repl__js, so the Browser Use skill can bootstrap browser-client.mjs with backend: "iab" and control/inspect the in-app browser.
Additional information
This appears related to, but distinct from, the existing Windows Browser Use issues where Node REPL is available but IAB control/navigation fails:
- #19187
- #19298
In this case, the Node REPL tool is not exposed at all, so Browser Use cannot even reach the bootstrap phase.
A Playwright CLI fallback can test the same local app successfully, so the local web app itself is not the blocker.
14 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
Hi, do you have a custom provider set up in the config? Aside from js_repl, are the other mcp tools available?
I can reproduce a very similar failure on Windows + WSL.
Environment:
Answering the custom-provider question: I do not appear to have an active custom provider selected. The top-level
model_providerentries inconfig.tomlare commented out. There is amodel_providers.openai-httpblock present, but it is not selected by an active top-levelmodel_provider.Other tools/connectors are available in the session, including normal shell tools, the generic
functions.js_repl, GitHub connector tools, and the OpenAI docs MCP. The missing part appears to be specifically the Browser Use / Node REPL bridge expected by the Browser Use skill.Local config includes:
The Browser Use client file exists:
But tool discovery cannot find the expected Browser Use Node REPL execution tools:
The exposed generic JS REPL is not equivalent to the expected
nodeReplenvironment. Infunctions.js_repl, this is the observed shape:Also, the Browser Use socket path exists but contains no backend socket:
When attempting to initialise the Browser Use client through the available generic JS REPL, it cannot attach to the IAB backend because no Codex browser session metadata is present:
So this looks like the same class of issue:
js_repl = trueis enabled and the Browser Use plugin is installed, but the session does not expose the Node REPL/browser bridge thatbrowser-client.mjsexpects.Answering the custom-provider question: I do not have a custom provider selected. My config uses:
There is no active top-level
model_providerset.Other MCP/tools are available in the session, including normal shell tools and configured MCP servers such as Supabase and Cloudflare. The missing part appears to be specifically the Node REPL / Browser Use bridge expected by the Browser Use skill.
I also tested the WindowsApps bundled Node runtime directly and it fails with Access is denied:
So this looks closely related to #19271. The visible symptom in my session is that
mcp__node_repl__jsis not exposed at all, but the likely underlying cause may be the same WindowsApps bundlednode.exeexecution failure.I can reproduce a very similar failure on a newer Windows Desktop / WSL setup. The notable difference from earlier reports is that
js_replnow appears asremoved false, whilebrowser_useandin_app_browserare enabled.What issue are you seeing?
Browser Use is installed and enabled, but the session does not expose the Node REPL / JavaScript execution tool required by the Browser Use skill, so Browser Use cannot bootstrap against the in-app browser.
Environment:
Feature state:
The Browser Use plugin and client file exist:
The Browser Use skill still requires the Node REPL
jsexecution tool in order to run:But after fully restarting Codex Desktop and opening a fresh thread, tool discovery still does not expose any of:
What steps can reproduce the bug?
@browser-useon an open in-app browser tab.I also tried the Windows helper-binary workaround mentioned in related reports by copying these files from the packaged local cache into
%LOCALAPPDATA%\OpenAI\Codex\bin:The copied binaries are present, and both
codex.exeand the WSL launcher report:Running
node_repl.exedirectly starts far enough to attempt stdio MCP initialization, then exits because it was not launched by Codex with an initialize handshake:So the helper binary exists, but the Codex session still does not provision the Node REPL / Browser Use bridge tool.
What is the expected behavior?
When
browser_useandin_app_browserare enabled and the Browser Use plugin is installed, Codex sessions should expose whatever execution tool the Browser Use skill currently requires, or the skill should use the replacement Browser Use pathway ifjs_repl/ Node REPL has been removed.At minimum, the session should report a clear remediation path when Browser Use is enabled but its required execution bridge is unavailable.
Additional information
This looks like either:
js_repl/ Node REPL tool path, orThe current failure mode is confusing because the feature flags imply Browser Use is enabled, while the documented bootstrap path in the installed skill requires a tool that is not available in this build.
Codex Desktop Windows 26.429.3425.0
Browser Use / in-app browser cannot open google.com.
Initial failure:
failed to execute Node: Access is denied. (os error 5)
Confirmed:
C:\Program Files\WindowsApps\OpenAI.Codex_26.429.3425.0_x64__2p2nqsd0c76g0\app\resources\node.exe
→ Access is denied
C:\Program Files\WindowsApps\OpenAI.Codex_26.429.3425.0_x64__2p2nqsd0c76g0\app\resources\rg.exe
→ Access is denied
Confirmed working:
C:\Users\mmggr\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin\node.exe
→ v24.14.0
Workaround tried:
Copied the working node.exe into recent:
C:\Users\mmggr\.codex\tmp\...\codex-arg*
Result:
node_repl minimal calls started working and Browser Use could detect an about:blank tab.
New failure:
Trying to open https://www.google.com causes node_repl/kernel to close and Codex falls back to:
windows sandbox failed: runner error: CreateProcessAsUserW failed: 5
Also tried:
[windows]
sandbox = "unelevated"
Result:
Does not fix Browser Use. node_repl / Browser Use still fail.
Tried enabling runCodexInWindowsSubsystemForLinux manually in:
C:\Users\mmggr\.codex\.codex-global-state.json
Result:
Codex hangs indefinitely when running pwd, so WSL agent mode is not usable from this build/UI.
Conclusion:
This appears to combine the WindowsApps packaged helper execution failure with the Windows sandbox CreateProcessAsUserW failed: 5 issue. Browser Use remains unusable on this Windows Desktop build.
Additional data point from Windows Desktop
26.506.3741.0/ bundled CLI0.130.0-alpha.5.Feature state from the bundled CLI:
The bundled Browser Use plugin is enabled in
config.toml:In the active Desktop session, a tool discovery query for
node_repl js mcp__node_repl__js browser-usedid not exposemcp__node_repl__js,node_repl js,js, orjs_resetas callable tools.At the same time, the app-server has many live
node_repl.exechildren:So this is not simply “the node_repl binary is missing”. The process host exists and is being spawned, but the Browser Use-required callable tool is not reliably present in the model/tool environment.
This also seems distinct from the process accumulation issue tracked in #20883/#21984: there are too many
node_repl.exehost processes, yet the current agent can still report that the Node REPL browser tool is unavailable. Those two symptoms probably share the same Node REPL / Browser Use / MCP integration area, but one is tool injection/discovery and the other is process lifecycle cleanup.Additional Windows data point connecting Node REPL tool injection failure with fallback browser process growth.
After
mcp__node_repl__js/node_repl jswas not exposed reliably, agents used a Chrome DevTools / controlled-profile fallback. On this machine that fallback path grew substantially:Important distinction: the machine also had a separate
node_repl.exelifecycle leak, now mitigated locally by a conservative cleanup task. But these Chrome processes are separate and became the dominant memory footprint. So the Node REPL tool-injection problem can push agents toward fallback browser control, and that fallback path appears to have its own lifecycle/cleanup risk.Related routing/fallback issue: #21868. Related browser process lifecycle issue: #17832.
Additional current data point after the Browser Use plugin was replaced by the newer Chrome plugin path.
Environment:
Current plugin/config state:
I removed the stale old config block for
browser-use@openai-bundled; it no longer appears inconfig.toml. The oldbrowser-useplugin also no longer appears in the currentopenai-bundledmarketplace on this install.The Chrome plugin cache now appears structurally valid:
After a clean remove/add of the Chrome plugin and a full Codex Desktop restart, the previous loader error is gone. I no longer see fresh
missing or invalid plugin.jsonwarnings forchrome@openai-bundled.However, the actual browser-control tool surface is still not exposed to the model. When asking Codex with the explicit plugin mention:
Tool discovery still does not return any Chrome / Browser Use / Node REPL execution tool. It returns unrelated tools such as DataForSEO, Figma, and Supabase. No callable tool such as these appears:
Feature state is also notable:
So this no longer looks like a broken plugin cache or native-host install problem. The Chrome plugin is installed and enabled, the cache contains the expected runtime files, and the app-server starts normally from the bundled WSL binary, but the runtime/tool interface expected by the Chrome skill is not injected into the model session.
In short: on the current Chrome plugin path, the failure mode appears to have moved from “Browser Use plugin cannot bootstrap because Node REPL is missing” to “Chrome plugin route/skill is present, but the browser runtime / Node REPL-backed callable tool surface is still not exposed.”
Follow-up: I found a local workaround and it also narrows the failure mode.
Switching Codex Desktop from the WSL app-server path to native Windows execution fixed the Chrome plugin tool exposure problem on my machine. After moving Codex to Windows native mode,
@Chromebrowser control works again.So the issue appears specific to the Windows + WSL app-server path rather than the Chrome plugin installation itself:
This is a viable workaround for me, but I do not think it fully resolves the underlying bug because the WSL app-server mode still fails to expose the Chrome/browser-control runtime tools even when the Chrome plugin is installed and enabled.
I’m seeing the same class of Browser/Chrome tool exposure failure on a newer Windows Desktop build, with an additional data point about js_repl being rewritten after restart.
Environment
Codex Desktop Windows package: 26.609.9530.0
Bundled/user CLI: codex-cli 0.140.0-alpha.2
Platform: Windows native mode
runCodexInWindowsSubsystemForLinux = false
Browser plugin: browser@openai-bundled enabled
Chrome plugin: chrome@openai-bundled enabled
Current config after a normal Codex restart
[plugins."browser@openai-bundled"]
enabled = true
[plugins."chrome@openai-bundled"]
enabled = true
[features]
js_repl = false
[desktop]
runCodexInWindowsSubsystemForLinux = false
[mcp_servers.node_repl]
command = 'C:\Users\white\AppData\Local\OpenAI\Codex\runtimes\cua_node\789504f803e82e2b\bin\node_repl.exe'
startup_timeout_sec = 120
Feature state
browser_use stable true
browser_use_external stable true
computer_use stable true
in_app_browser stable true
js_repl removed false
js_repl_tools_only removed false
plugins stable true
tool_search removed false
What I tried
The Browser and Chrome plugin files exist locally, including:
C:\Users\white\.codex\plugins\cache\openai-bundled\browser\26.609.71450\scripts\browser-client.mjs
C:\Users\white\.codex\plugins\cache\openai-bundled\chrome\26.609.71450\scripts\browser-client.mjs
However, tool discovery still does not expose any of the Browser/Chrome control or Node REPL execution tools expected by the installed Browser/Chrome skills:
mcp__node_repl__js
node_repl js
js
js_reset
browser.user.openTabs
I also manually changed:
[features]
js_repl = true
and made config.toml read-only before launching Codex. This can preserve the file-level js_repl = true value, but it does not make the Browser/Chrome control tools appear. I tried that more than ten times with the same result.
When config.toml is not read-only and Codex is restarted normally, Codex rewrites the setting back to:
js_repl = false
So the important distinction is:
I also noticed the original issue mentions enabling the feature from WSL:
/mnt/c/Users/kutay/.codex/bin/wsl/codex features enable js_repl
I have a similar WSL codex binary locally:
C:\Users\white\.codex\bin\wsl\48731301ce01af57\codex
but this machine currently has no WSL distribution installed, so wsl.exe cannot run it. wsl.exe --list --verbose fails because there is no installed distro.
Possible related WindowsApps execution issue
There is also a possibly related WindowsApps execution issue. The running app-server process is:
C:\Program Files\WindowsApps\OpenAI.Codex_26.609.9530.0_x64__2p2nqsd0c76g0\app\resources\codex.exe
Trying to execute these directly returns Access denied:
C:\Program Files\WindowsApps\OpenAI.Codex_26.609.9530.0_x64__2p2nqsd0c76g0\app\resources\codex.exe
-> Access is denied
C:\Program Files\WindowsApps\OpenAI.Codex_26.609.9530.0_x64__2p2nqsd0c76g0\app\resources\rg.exe
-> Access is denied
But the per-user CLI works:
C:\Users\white\AppData\Local\OpenAI\Codex\bin\f1c7ee7a13db5fed\codex.exe
-> codex-cli 0.140.0-alpha.2
Summary
Even in native Windows mode with runCodexInWindowsSubsystemForLinux = false, Browser/Chrome plugins installed, and mcp_servers.node_repl configured, the active session does not expose the browser-control execution tool.
Forcing js_repl = true in config does not help because the runtime reports js_repl removed false, the Browser/Chrome tools are still not injected, and Codex rewrites the setting back to false after restart when the config file is writable.
This looks like the current Desktop/runtime feature registry has removed or disabled js_repl, while the installed Browser/Chrome skills still require the Node REPL-backed execution path.
This seems related to #19365, #26133, #26732, and possibly the WindowsApps execution issues in #19271 / #21496 / #27313.
Update: see the follow-up below. After this same thread was opened successfully in Codex Desktop, the Browser runtime became visible. Treat the empty backend list below as a pre-Desktop-handoff observation, not as evidence of a standalone Browser plugin/tool-injection failure.
I have a related observation from Windows 10 with the newer bundled Browser plugin present.
Environment:
The Browser skill was visible to the CLI session, and
node_replitself was available. However, after loading the browser client from the bundled Browser plugin, the in-app browser backend list was empty:Result:
At the same time, stale native-host config still referenced older Desktop/plugin/runtime paths, including a
codexCliPathpointing tocodex-cli 0.135.0-alpha.1, while the active CLI was0.140.0and the newer Desktop runtime was0.140.0-alpha.2.So this may be another symptom of the stale Desktop/browser runtime sync described in #26011 / #26792 rather than a separate Browser skill issue. I have not isolated a separate root cause yet. I am leaving this as an additional data point rather than proposing a code change for Browser Use at this stage.
Follow-up/correction from the same Windows 10 machine: after validating the
/appDesktop handoff fix from #28667, the Browser runtime became visible to the CLI session.Earlier, before the successful Desktop handoff, this returned an empty browser list:
After opening the same thread in Codex Desktop via the protocol-handler
/apppath, the same check returned an in-app browser backend:So on this repro, the earlier empty Browser backend list may have been caused by the session not being successfully handed off/opened in Desktop yet, rather than by a standalone Browser-plugin tool-injection failure.
The stale native-host config issue still remains separately: both
chrome-native-hosts.jsonfiles still reference the oldcodex-cli 0.135.0-alpha.1path even after Desktop launched successfully. I am keeping that evidence under #26011 rather than treating it as proof of this Browser issue.I can reproduce this on a current native Windows Desktop build, with a stronger isolation of the failing layer.
Environment
Confirmed healthy
browser-use native pipe listeningcomputer-use native pipe startup readynode_repl.execodex.execodex mcp listshowsnode_replenabled.initialize+tools/listhandshake against the configurednode_repl.exesucceeds and returns:jsjs_add_node_module_dirjs_resetjsdiagnostic with the task'sx-codex-turn-metadatasuccessfully initializes the bundled browser client.agent.browsers.list()returns both:This rules out extension installation, native-host registration, native-pipe startup, Node execution, Node REPL startup, MCP handshake, and browser-backend discovery.
Failing layer
The Desktop task's callable/deferred tool surface does not expose any of:
It also does not expose a tool-discovery entry that can retrieve the deferred Node REPL tools. Other connector/plugin tools are available normally.
Feature state:
The Chrome plugin has been removed/re-added and the app restarted repeatedly (seven complete reinstall attempts) with no change.
Conclusion
In this reproduction, the failure is specifically after successful MCP/browser discovery and before per-task tool registration/indexing. The backend is live and usable, but Desktop/App Server omits the required Node REPL tools from the task tool store. This also looks related to #19425 and #21451, but unlike #21451 the discovery surface itself is unavailable in this task.