Avoid a persistent Node launcher for each computer-use REPL
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What variant of Codex are you using?
Codex desktop on macOS. Observed on September 4, 2026 with desktop version 26.901.31953, bundled Codex CLI 0.153.1, and Unified Computer Use plugin 26.901.31953.
What feature would you like to see?
Let the computer-use REPL start without keeping a separate Node launcher alive for its entire lifetime.
In a process snapshot, I found eight instances of:
codex app-server
└── node .../unified-computer-use/.../scripts/launch.mjs
└── node_repl
There were four actively running tasks, but eight loaded tool runtimes. Each computer-use runtime had both a launcher and a REPL process.
The installed scripts/launch.mjs reads the tool descriptions and banner, builds environment settings, and spawns CUA_REPL_NODE_REPL_PATH with inherited stdio. It then remains alive to forward signals and propagate the child's exit status. Its source annotation identifies cua/cua_repl/src/launch.ts.
Please move this initialization into the REPL executable, or use another platform-appropriate handoff that removes the persistent wrapper while preserving its lifecycle behavior. In the observed layout, that would eliminate eight launcher processes while retaining the eight REPLs.
Validation should cover:
- Browser/computer surface selection, tool descriptions, banners and trusted-service configuration.
- Stdio behavior, startup failures, exit status, cancellation and shutdown.
- REPL reset and cleanup on each supported platform.
- Process count and measured memory use before and after the change.
Additional information
This was an ownership and source inspection, not a controlled performance benchmark. The launchers had live parents. I haven't measured the savings or established that the wrapper is removable on every platform without additional lifecycle support.
https://github.com/openai/codex/issues/2335 proposes starting MCP servers only when needed. This request addresses the extra launcher that remains after a computer-use runtime has started. I didn't find an existing issue specifically proposing its removal.
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.
Research direction
Start with scripts/launch.mjs and its source annotation, cua/cua_repl/src/launch.ts, then inspect how CUA_REPL_NODE_REPL_PATH starts node_repl and handles signals and exit status. Compare the current launcher and REPL lifecycle across supported platforms. Done means the persistent wrapper is removed while preserving initialization, stdio, failures, cancellation, cleanup, process behavior, and the stated validation coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- desktop, performance, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 46/100