openai / openai/codex

Avoid a persistent Node launcher for each computer-use REPL

Open
#42,886 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app computer-use enhancement performance
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.