codex - 💡(How to fix) Fix Windows Codex Desktop WSL: Browser Use IAB skill unavailable because node_repl/js tool is not injected [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openai/codex#20417Fetched 2026-05-01 05:43:18
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
labeled ×6

In Codex Desktop on Windows using WSL runtime, the bundled Browser Use / in-app browser skill appears to be installed and enabled, and the in-app browser itself can be opened and used manually. However, the skill cannot automate the browser because the required Node REPL js tool is not injected into the thread.

The Browser Use skill expects a callable tool such as mcp__node_repl__js, but the active thread only receives the standard desktop tools.

Root Cause

In Codex Desktop on Windows using WSL runtime, the bundled Browser Use / in-app browser skill appears to be installed and enabled, and the in-app browser itself can be opened and used manually. However, the skill cannot automate the browser because the required Node REPL js tool is not injected into the thread.

Code Example

<Windows user profile>/.codex/bin/wsl/codex app-server --analytics-default-enabled
The app-server environment includes:

HOME=<WSL home>
CODEX_HOME=<WSL home>/.codex
SHELL=/usr/bin/zsh
WSL_DISTRO_NAME=Ubuntu
CODEX_INTERNAL_ORIGINATOR_OVERRIDE=Codex Desktop
What I expected
When using the bundled browser-use:browser skill with the Codex in-app browser, the thread should expose the Node REPL JavaScript execution tool, typically:

mcp__node_repl__js
Then the skill should be able to run:

const { setupAtlasRuntime } = await import("<plugin root>/scripts/browser-client.mjs");
await setupAtlasRuntime({ globals: globalThis, backend: "iab" });
and control the Codex in-app browser.

What actually happens
The Browser Use skill is available, but the required node_repl / js tool is not available in the thread.

The current thread dynamic tools only include:

automation_update
read_thread_terminal
load_workspace_dependencies
install_workspace_dependencies
No node_repl, js, or mcp__node_repl__js tool is present.

Tool discovery for node_repl js, mcp__node_repl__js, and similar terms does not expose the Node REPL tool.

Configuration
browser-use@openai-bundled is enabled in config.toml:

[plugins."browser-use@openai-bundled"]
enabled = true

[marketplaces.openai-bundled]
source_type = "local"
source = "<WSL home>/.codex/.tmp/bundled-marketplaces/openai-bundled"
Relevant feature config:

[features]
js_repl = true
js_repl_tools_only = false
plugins = true
tool_search = true
However, the app-server feature list reports:

browser_use                         stable   true
in_app_browser                      stable   true
js_repl                             removed  false
js_repl_tools_only                  removed  false
plugins                             stable   true
tool_search                         stable   true
Additional diagnostics
The in-app browser itself appears to work manually. I can open the IAB and search Google manually.

Desktop logs show the Browser Use native pipe server starting, for example:

browser-use native pipe listening pipePath=\\.\pipe\codex-browser-use\<uuid>
The bundled Browser Use plugin files exist, including:

<WSL home>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/skills/browser/SKILL.md
<WSL home>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/scripts/browser-client.mjs
I also tested node_repl.exe manually. It can expose MCP tools js and js_reset when launched directly. With CODEX_HOME passed through WSLENV, the privileged native pipe bridge can be injected for modules under CODEX_HOME.

However, manual node_repl cannot complete Browser Use setup because it does not have Codex turn/session metadata:

Failed to connect to browser-use backend "iab".
No current Codex session metadata was available, so IAB ownership could not be checked.
This suggests that Browser Use requires the official Desktop/app-server-injected Node REPL tool so that x-codex-turn-metadata / session ownership metadata is available.

Suspected cause
This looks like a Desktop/app-server tool injection issue rather than a missing plugin or browser problem.

The Browser Use plugin is installed and enabled, the IAB native pipe server exists, and the browser UI is usable manually. But the thread does not receive the required node_repl/js execution tool, so the skill cannot bootstrap.

It may be related to js_repl being marked as removed while Browser Use still depends on node_repl for IAB control.

Reproduction steps
Use Codex Desktop on Windows.
Configure Agent runtime to WSL.
Enable the bundled browser-use@openai-bundled plugin.
Start a new thread.
Ask Codex to use browser-use:browser to open or inspect a page in the in-app browser.
Observe that the Browser Use skill is loaded, but mcp__node_repl__js / node_repl is not available.
The assistant cannot run Browser Use bootstrap code because the required js tool is missing.
Expected fix
Please ensure that when Browser Use / IAB is available in Codex Desktop, the required Node REPL JavaScript execution tool is injected into the thread with the necessary Codex turn/session metadata, or update the Browser Use skill/runtime to use the current supported mechanism.

### What steps can reproduce the bug?

1. Open Codex Desktop on Windows.

2. Configure the Agent runtime to WSL.

3. Make sure the bundled Browser Use plugin is enabled:
RAW_BUFFERClick to expand / collapse

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

26.426.12240

What subscription do you have?

Pro

What platform is your computer?

Microsoft Windows NT 10.0.26200.0 x64

What issue are you seeing?

Summary

In Codex Desktop on Windows using WSL runtime, the bundled Browser Use / in-app browser skill appears to be installed and enabled, and the in-app browser itself can be opened and used manually. However, the skill cannot automate the browser because the required Node REPL js tool is not injected into the thread.

The Browser Use skill expects a callable tool such as mcp__node_repl__js, but the active thread only receives the standard desktop tools.

Environment

Platform

Microsoft Windows NT 10.0.26200.0 x64

Runtime

  • Codex Desktop on Windows
  • Agent runtime: WSL
  • WSL distro: Ubuntu
  • Workspace opened from a WSL filesystem path
  • CODEX_HOME is set to a WSL-side path, for example ~/.codex

Codex app-server

The WSL-side app-server process is launched by Codex Desktop as:

<Windows user profile>/.codex/bin/wsl/codex app-server --analytics-default-enabled
The app-server environment includes:

HOME=<WSL home>
CODEX_HOME=<WSL home>/.codex
SHELL=/usr/bin/zsh
WSL_DISTRO_NAME=Ubuntu
CODEX_INTERNAL_ORIGINATOR_OVERRIDE=Codex Desktop
What I expected
When using the bundled browser-use:browser skill with the Codex in-app browser, the thread should expose the Node REPL JavaScript execution tool, typically:

mcp__node_repl__js
Then the skill should be able to run:

const { setupAtlasRuntime } = await import("<plugin root>/scripts/browser-client.mjs");
await setupAtlasRuntime({ globals: globalThis, backend: "iab" });
and control the Codex in-app browser.

What actually happens
The Browser Use skill is available, but the required node_repl / js tool is not available in the thread.

The current thread dynamic tools only include:

automation_update
read_thread_terminal
load_workspace_dependencies
install_workspace_dependencies
No node_repl, js, or mcp__node_repl__js tool is present.

Tool discovery for node_repl js, mcp__node_repl__js, and similar terms does not expose the Node REPL tool.

Configuration
browser-use@openai-bundled is enabled in config.toml:

[plugins."browser-use@openai-bundled"]
enabled = true

[marketplaces.openai-bundled]
source_type = "local"
source = "<WSL home>/.codex/.tmp/bundled-marketplaces/openai-bundled"
Relevant feature config:

[features]
js_repl = true
js_repl_tools_only = false
plugins = true
tool_search = true
However, the app-server feature list reports:

browser_use                         stable   true
in_app_browser                      stable   true
js_repl                             removed  false
js_repl_tools_only                  removed  false
plugins                             stable   true
tool_search                         stable   true
Additional diagnostics
The in-app browser itself appears to work manually. I can open the IAB and search Google manually.

Desktop logs show the Browser Use native pipe server starting, for example:

browser-use native pipe listening pipePath=\\.\pipe\codex-browser-use\<uuid>
The bundled Browser Use plugin files exist, including:

<WSL home>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/skills/browser/SKILL.md
<WSL home>/.codex/plugins/cache/openai-bundled/browser-use/0.1.0-alpha1/scripts/browser-client.mjs
I also tested node_repl.exe manually. It can expose MCP tools js and js_reset when launched directly. With CODEX_HOME passed through WSLENV, the privileged native pipe bridge can be injected for modules under CODEX_HOME.

However, manual node_repl cannot complete Browser Use setup because it does not have Codex turn/session metadata:

Failed to connect to browser-use backend "iab".
No current Codex session metadata was available, so IAB ownership could not be checked.
This suggests that Browser Use requires the official Desktop/app-server-injected Node REPL tool so that x-codex-turn-metadata / session ownership metadata is available.

Suspected cause
This looks like a Desktop/app-server tool injection issue rather than a missing plugin or browser problem.

The Browser Use plugin is installed and enabled, the IAB native pipe server exists, and the browser UI is usable manually. But the thread does not receive the required node_repl/js execution tool, so the skill cannot bootstrap.

It may be related to js_repl being marked as removed while Browser Use still depends on node_repl for IAB control.

Reproduction steps
Use Codex Desktop on Windows.
Configure Agent runtime to WSL.
Enable the bundled browser-use@openai-bundled plugin.
Start a new thread.
Ask Codex to use browser-use:browser to open or inspect a page in the in-app browser.
Observe that the Browser Use skill is loaded, but mcp__node_repl__js / node_repl is not available.
The assistant cannot run Browser Use bootstrap code because the required js tool is missing.
Expected fix
Please ensure that when Browser Use / IAB is available in Codex Desktop, the required Node REPL JavaScript execution tool is injected into the thread with the necessary Codex turn/session metadata, or update the Browser Use skill/runtime to use the current supported mechanism.

### What steps can reproduce the bug?

1. Open Codex Desktop on Windows.

2. Configure the Agent runtime to WSL.

3. Make sure the bundled Browser Use plugin is enabled:

```toml
[plugins."browser-use@openai-bundled"]
enabled = true
Start a new Codex Desktop thread.

Ask Codex to use the bundled Browser Use skill, for example:

Use browser-use:browser to open https://www.google.com in the in-app browser.
Observe that the in-app browser can be opened and used manually, but the assistant cannot automate it.

Inspect the tools available to the thread. The expected Node REPL JavaScript execution tool is missing.

Expected tool:

mcp__node_repl__js
Actual tools exposed to the thread:

automation_update
read_thread_terminal
load_workspace_dependencies
install_workspace_dependencies
Because mcp__node_repl__js / node_repl is not injected, the Browser Use skill cannot run its required bootstrap code:
const { setupAtlasRuntime } = await import("<plugin root>/scripts/browser-client.mjs");
await setupAtlasRuntime({ globals: globalThis, backend: "iab" });
If node_repl.exe is launched manually as an MCP server, it can expose js and js_reset, but Browser Use setup still fails because Codex turn/session metadata is missing:
Failed to connect to browser-use backend "iab".
No current Codex session metadata was available, so IAB ownership could not be checked.
So this seems to require the official Desktop/app-server-injected Node REPL tool, not a manually launched MCP server.

Session id: available on request, but omitted here to avoid including user-specific local state.

Token/context usage: not applicable. The issue reproduces in a fresh thread before context pressure becomes relevant.

### What is the expected behavior?

_No response_

### Additional information

_No response_

extent analysis

TL;DR

The Browser Use skill in Codex Desktop on Windows with WSL runtime is unable to automate the in-app browser due to the missing Node REPL JavaScript execution tool, which is required for controlling the browser.

Guidance

  1. Verify the js_repl feature status: Although the js_repl feature is marked as removed, the Browser Use skill still depends on it. Check if there's an alternative mechanism or update available for the Browser Use skill to use the current supported features.
  2. Check the app-server configuration: Ensure that the app-server is configured to inject the necessary Node REPL tool into the thread, including the Codex turn/session metadata required for the Browser Use skill.
  3. Test with manual Node REPL launch: Launch node_repl.exe manually as an MCP server to see if it exposes the js and js_reset tools, and if the Browser Use setup still fails due to missing Codex session metadata.
  4. Review the plugin and feature configurations: Double-check the config.toml file to ensure that the browser-use@openai-bundled plugin is enabled and the js_repl feature is correctly configured, considering its removed status.

Example

No code snippet is provided as the issue seems to be related to the configuration and feature dependencies rather than a specific code error.

Notes

The issue might be related to the js_repl feature being marked as removed while the Browser Use skill still depends on it. The exact solution may depend on updating the Browser Use skill or the app-server configuration to use the current supported mechanisms.

Recommendation

Apply a workaround by manually launching node_repl.exe as an MCP server and investigating alternative mechanisms for the Browser Use skill to control the in-app browser, as the official Desktop/app-server-injected Node REPL tool seems to be required for the necessary Codex turn/session metadata.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING