Computer Use is unusable in `codex-cli 0.145.0-alpha.18`: `js_repl` removed while `computer_use` still marked `stable`
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- javascript, rust
- Domain
- cli, desktop-dev, tooling
Research direction
Start with the codex-cli feature registry entries for js_repl and computer_use, then inspect the gating behavior described in the issue. Read the computer-use SKILL.md and computer-use-client.mjs entry points alongside the node_repl section in config.toml. Done means the reported feature state matches runtime availability and the documented computer-use entry point works or is accurately marked unavailable.
Written by the indexing model from the issue text.
Description
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.exeprocesses 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__jsis exposed to the agent.setupComputerUseRuntimesucceeds and installsglobalThis.skyfrom the cua_node helper, allowing the agent to drive Windows viasky.click,sky.typeText,sky.screenshot, etc.
Actual
-
mcp__node_repl__jsreturnsunsupported call: mcp__node_repl__json every invocation, even though it appears in the agent's tool surface. -
setupComputerUseRuntimecannot run:globalThis.nodeRepl.nativePipeandglobalThis.nodeRepl.env.SKY_CUA_NATIVE_PIPE_DIRECTORYare never injected by the harness. -
features.js_repl = trueinconfig.tomlis ignored becauseremovedis checked before the user config flag. -
codex updatedoes not work on this install method:> codex update Error: Could not detect the Codex installation method. Please update manually: https://developers.openai.com/codex/cli/ -
Other
removedfeatures in this build that may share the same gating logic includeapply_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 viacodex 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.createConnectionglobalThis.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:
- Restore
js_replin the next alpha build (move it back tounder developmentorstable) so that user config can re-enable it. This is the smallest change. - Demote
computer_usetoremoved(orunder development) until its runtime dependency is restored, socodex features listreports the true effective state and users are not led to debug a feature that cannot run. - Add a non-
js_replentry point for Computer Use — for example a dedicatedmcp__computer_use__*tool surface — so the plugin does not become unusable whenever ajs_repl-adjacent feature is removed. - Detect and warn at thread-init time when a
stablefeature references aremoveddependency, 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_stateoccasionally returns{"error":{"code":-32000,"message":"foreground window did not report a process id"}}when the Codex desktop window itself has focus. Retrying once afteractivate_windowtypically 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 viadrag.
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-clifeature registry:js_replandcomputer_userows incodex 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_replMCP 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?
- prepare codex app
- 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"
- try to do something by 'computer use'
What is the expected behavior?
No response
Additional information
No response
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- Avg merge
- 1m
- Merged PRs (30d)
- 1k
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from openai/codex
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
bug CLI windows-os
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
macOS sandbox blocks hw.optional.arm64 sysctl, causing Flutter to misdetect Apple Silicon as x64 Openbug CLI sandbox
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
bug CLI TUI
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
CLI config enhancement skills
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
A-linter
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
oxc-project/oxc#26863 ·