Repository navigation
Codex-injected Node REPL starts for every unused subagent and is not reaped #42005
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.825.51511
What subscription do you have?
Pro 20x
What platform is your computer?
No response
What issue are you seeing?
Codex Desktop automatically injects and eagerly starts its bundled node_repl MCP for every task/subagent, even when neither JavaScript nor Browser tooling is used.
Environment:
- Codex Desktop 26.825.6671.0
- Native Windows x64
- Bundled Browser plugin 26.825.51511
- One multi-agent wave with 8 subagents
The user did not install node_repl. Codex writes it into the global configuration:
[mcp_servers.node_repl]
args = []
command = "/node_repl.exe"
startup_timeout_sec = 120
Its environment explicitly connects it to the Browser/Chrome runtime. None of the subagents invoked Node REPL, Browser, Chrome, visualization, or JavaScript tools.
The ordinary default, worker, and explorer subagent profiles explicitly contained:
[mcp_servers.node_repl]
command = "cmd.exe"
args = ["/d", "/c", "exit", "0"]
enabled = false
Despite that override, after the subagents completed, the current Desktop app-server retained:
- 6 node_repl.exe processes
- 19 additional Node processes belonging to injected MCP/app-tool stacks
Across all live Codex app-servers, process-tree inspection found:
- 11 node_repl.exe processes
- 39 node.exe processes
All 50 were verified descendants of Codex app-server processes. None belonged to active Node development work. Terminating those exact descendants reduced the Codex-owned Node/Node REPL count to zero without affecting the active Codex task.
What steps can reproduce the bug?
Just have a session with subagents
What is the expected behavior?
- Do not start node_repl until an agent first invokes its JavaScript or Browser functionality.
- Honor per-agent enabled=false before initializing inherited/global MCP servers.
- Do not attach node_repl to subagents that have no Browser, Chrome, visualization, or JavaScript tools.
- Terminate the node_repl kernel immediately when the owning subagent completes.
- Reuse a bounded pool if startup latency makes lazy creation undesirable.
Additional information
Actual behavior:
Codex starts another Node REPL for every subagent at session initialization and leaves completed-agent kernels running. Process count and memory usage therefore grow linearly with multi-agent work, even though the feature was never used.
There is no documented user-configurable idle TTL or lazy-start option. The only reliable workarounds are disabling a Codex-provided feature, restarting Desktop, or externally terminating processes by PID ancestry.
Related:
- Desktop app (macOS): idle node_repl visualization kernels accumulate (60–70 concurrent, ~600 MB), causing severe input lag #39816
- [Windows] Subagents leave unused stdio MCP process trees after task completion #38693
- Codex Desktop (native Windows agent env): every update re-injects node_repl MCP and eagerly initializes the browser/computer-use runtime at thread start, blocking the composer #28935
This report is specifically about native Windows, the current app build, unused subagents, and the failure to honor per-agent enabled=false for a Codex-injected MCP.
Activity
github-actions commentedon Sep 1, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action