Computer Use is unusable in `codex-cli 0.145.0-alpha.18`: `js_repl` removed while `computer_use` still marked `stable`

Open 💬 1 comment Opened Jul 18, 2026 by DuoAp

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

26.715.31925

What subscription do you have?

codex app computer use

What platform is your computer?

_No response_

What issue are you seeing?

Computer Use is unusable in codex-cli 0.145.0-alpha.18: js_repl removed while computer_use still marked stable

Summary

In codex-cli 0.145.0-alpha.18, the js_repl feature is reported as stage = removed, while computer_use is reported as stage = stable. The computer-use@openai-bundled plugin's only documented entry point (mcp__node_repl__js + setupComputerUseRuntime) depends on js_repl. Because removed short-circuits before the user-level features.js_repl config is consulted, Computer Use cannot be re-enabled from user config in this build, even though the manifest claims it is enabled.

This produces a manifest-vs-runtime contradiction: a feature marked stable true cannot actually be used in any Codex desktop thread on this version.

Environment

| Component | Version |
| --- | --- |
| Codex CLI | codex-cli 0.145.0-alpha.18 |
| Codex desktop AppX | OpenAI.Codex_26.715.31925.0_x64__2p2nqsd0c76g0 (installed via WindowsApps) |
| Computer-use plugin | computer-use@openai-bundled v26.715.31925 |
| cua_node runtime | cua_node\03b1cdac8af3a530\bin |
| OS | Windows 11 10.0.22631 |

Confirmed configuration in ~/.codex/config.toml:

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

[mcp_servers.node_repl]
command = ''C:\Users\DAP\AppData\Local\OpenAI\Codex\runtimes\cua_node\03b1cdac8af3a530\bin\node_repl.exe''
startup_timeout_sec = 120

[mcp_servers.node_repl.env]
SKY_CUA_NATIVE_PIPE = "1"
SKY_CUA_NATIVE_PIPE_DIRECTORY = ''\\.\pipe\codex-computer-use-<session-guid>''

Runtime state:

  • 4 node_repl.exe processes are running.
  • The named pipe \\.\pipe\codex-computer-use-<session-guid> is open.
  • codex-computer-use.exe (cua_node helper) is responsive to direct pipe traffic (verified, see Workaround section).

Steps to reproduce

> codex --version
codex-cli 0.145.0-alpha.18

> codex features list | Select-String -Pattern "js_repl|computer_use"
computer_use                         stable             true
js_repl                              removed            false
js_repl_tools_only                   removed            false

Attempting to re-enable from config has no effect:

> codex features enable js_repl
Enabled feature `js_repl` in config.toml.

> codex features list | Select-String -Pattern "js_repl"
js_repl                              removed            false
js_repl_tools_only                   removed            false

Flipping back (features disable js_repl) and re-enabling produces identical features list output. The flag is a no-op.

In a Codex desktop thread, the agent follows the plugin's documented entry point:

if (!globalThis.sky) {
  const { setupComputerUseRuntime } = await import(
    "C:/Users/DAP/.codex/plugins/cache/openai-bundled/computer-use/26.715.31925/scripts/computer-use-client.mjs"
  );
  await setupComputerUseRuntime({ globals: globalThis });
}

Expected

  • mcp__node_repl__js is exposed to the agent.
  • setupComputerUseRuntime succeeds and installs globalThis.sky from the cua_node helper, allowing the agent to drive Windows via sky.click, sky.typeText, sky.screenshot, etc.

Actual

  • mcp__node_repl__js returns unsupported call: mcp__node_repl__js on every invocation, even though it appears in the agent's tool surface.
  • setupComputerUseRuntime cannot run: globalThis.nodeRepl.nativePipe and globalThis.nodeRepl.env.SKY_CUA_NATIVE_PIPE_DIRECTORY are never injected by the harness.
  • features.js_repl = true in config.toml is ignored because removed is checked before the user config flag.
  • codex update does not work on this install method:

``powershell
> codex update
Error: Could not detect the Codex installation method. Please update manually: https://developers.openai.com/codex/cli/
``

  • Other removed features in this build that may share the same gating logic include apply_patch_freeform, apps_mcp_path_override, multi_agent_mode, plugin_hooks, remote_control, search_tool, sqlite, tool_search, tui_app_server, etc. (full list available via codex features list).

Root cause

computer-use@openai-bundled/scripts/computer-use-client.mjs requires two pieces of runtime state that are only injected by Codex's node_repl MCP server:

  • globalThis.nodeRepl.nativePipe.createConnection
  • globalThis.nodeRepl.env.SKY_CUA_NATIVE_PIPE_DIRECTORY

node_repl is only spawned when js_repl is enabled. In 0.145.0-alpha.18, js_repl was moved to stage = removed. The harness's effective-state check appears to short-circuit on removed before reading the user-level features.js_repl config, so the flag in config.toml cannot override it.

The computer_use feature manifest was not updated to reflect this dependency: it is still listed as stable true. Users are told the feature works while the runtime entry point is unreachable. The plugin's SKILL still instructs the agent to load its runtime via mcp__node_repl__js, so every Codex thread on this build fails at step 1.

The downstream components (cua_node helper, @oai/sky runtime, the named pipe) are intact and functional — the gap is only in the Codex harness layer that mediates between the agent and those components.

Suggested fix

Any one of the following would resolve this:

  1. Restore js_repl in the next alpha build (move it back to under development or stable) so that user config can re-enable it. This is the smallest change.
  2. Demote computer_use to removed (or under development) until its runtime dependency is restored, so codex features list reports the true effective state and users are not led to debug a feature that cannot run.
  3. Add a non-js_repl entry point for Computer Use — for example a dedicated mcp__computer_use__* tool surface — so the plugin does not become unusable whenever a js_repl-adjacent feature is removed.
  4. Detect and warn at thread-init time when a stable feature references a removed dependency, instead of silently failing later inside the agent's tool call.

Workaround (informational; not a request to upstream)

While waiting for a fix, the cua_node helper can be driven directly over its named pipe without going through the Codex harness. The wire protocol is documented in @oai/sky/dist/project/cua/sky_js/src/targets/windows/internal/computer_use_client_base.js:

  • 4-byte little-endian length-prefixed JSON-RPC frames.
  • Request envelope: {"jsonrpc":"2.0","id":N,"method":"request","params":{"method":"<sky_op>","params":{...}}}.
  • Approval handshake: server sends {"method":"requestComputerUseApproval","id":"computer-use-approval:<uuid>","params":{...}}; client replies {"jsonrpc":"2.0","id":"computer-use-approval:<uuid>","result":{"action":"accept"}}.
  • Sky ops used: list_windows, list_apps, activate_window, get_window, get_window_state, click, click_element, scroll, drag, press_key, type_text, set_value, launch_app, perform_secondary_action.
  • The cua_node helper serializes requests. Concurrent calls return {"error":{"code":-32000,"message":"Computer Use helper already has an active request"}}.
  • get_window_state occasionally returns {"error":{"code":-32000,"message":"foreground window did not report a process id"}} when the Codex desktop window itself has focus. Retrying once after activate_window typically clears it.

A self-contained ESM reference client, a Notepad typing demo, and a mspaint rectangle-drawing demo are available in this report's attachments:

  • codex-cua-pipe-client.mjs — reusable client (auto-detects pipe from ~/.codex/config.toml, auto-handles approvals, serializes calls).
  • demo.mjs — connects, lists windows, types two lines into Notepad, saves a JPEG screenshot.
  • draw-rectangle.mjs — locates the mspaint rectangle tool via UI Automation tree, then draws via drag.

End-to-end verification screenshots:

  • demo-2026-07-18T14-32-34-973Z.jpg — Notepad after typing.
  • paint-after-rect-2026-07-18T14-41-19-216Z.jpg — mspaint after drawing a rectangle.

Impact

Any user on codex-cli 0.145.0-alpha.18 who tries to use computer-use@openai-bundled (or any plugin that depends on mcp__node_repl__js) will hit this. The stable true label on computer_use actively misleads them because the manifest looks correct.

Code pointers (for maintainers)

  • codex-cli feature registry: js_repl and computer_use rows in codex features list.
  • Plugin entry point: ~/.codex/plugins/cache/openai-bundled/computer-use/26.715.31925/skills/computer-use/SKILL.md.
  • Plugin runtime loader: ~/.codex/plugins/cache/openai-bundled/computer-use/26.715.31925/scripts/computer-use-client.mjs.
  • Sky client surface that depends on js_repl: @oai/sky/dist/project/cua/sky_js/src/targets/windows/internal/computer_use_client_base.js.
  • Codex config that declares the node_repl MCP server: ~/.codex/config.toml [mcp_servers.node_repl] section.

Environment capture (raw)

$ codex features list (full)
apply_patch_freeform                 removed            false
apps_mcp_path_override               removed            false
codex_git_commit                     removed            false
collaboration_modes                  removed            true
computer_use                         stable             true
elevated_windows_sandbox             removed            false
experimental_windows_sandbox         removed            false
external_migration                   removed            false
image_detail_original                removed            false
js_repl                              removed            false
js_repl_tools_only                   removed            false
multi_agent_mode                     removed            false
non_prefixed_mcp_tool_names          under development  false
plugin_hooks                         removed            false
remote_control                       removed            false
remote_models                        removed            false
request_permissions_tool             under development  false
request_rule                         removed            false
resize_all_images                    removed            true
responses_websockets                 removed            false
responses_websockets_v2              removed            false
search_tool                          removed            false
shell_tool                           stable             true
skill_env_var_dependency_prompt      removed            false
sqlite                               removed            true
steer                                removed            true
terminal_resize_reflow               removed            true
tool_call_mcp_elicitation            stable             true
tool_search                          removed            false
tool_search_always_defer_mcp_tools   removed            true
tool_suggest                         stable             true
tui_app_server                       removed            true
unavailable_dummy_tools              removed            false
undo                                 removed            false
use_linux_sandbox_bwrap              removed            false
workspace_owner_usage_nudge          removed            false

What steps can reproduce the bug?

  1. prepare codex app
  2. edit `config.toml' to using third-part model.
model = "MiniMax-M3"
model_provider = "minimax"
model_context_window = 1000000
personality = "pragmatic"

[model_providers.minimax]
name = "MiniMax"
base_url = "https://api.minimaxi.com/v1"
experimental_bearer_token = "xxxx"
wire_api = "responses"
  1. try to do something by 'computer use'

What is the expected behavior?

_No response_

Additional information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗