@openai/codex-sdk opens a visible codex.exe console window on Windows

Open 💬 2 comments Opened May 21, 2026 by yanxiyue

What is the problem?

When using @openai/codex-sdk from a GUI/background app on Windows, starting a Codex task opens a visible black console window. The window title is the bundled native Codex binary path, for example:

E:\git\github\..\node_modules\@openai\codex-win32-x64\vendor\x86_64-pc-windows-msvc\codex\codex.exe

This appears to be the TypeScript SDK's direct codex.exe child process, not the separate PowerShell helper window tracked in other Windows issues.

Why this matters

@openai/codex-sdk is useful from Electron apps, editor integrations, background workers, and daemons. In those hosts, SDK calls should be able to run non-interactively without flashing or leaving a visible terminal window on the user's desktop.

Environment

  • OS: Windows 10
  • Host: Node/Electron background worker
  • Observed with: @openai/codex-sdk@0.129.0
  • Latest checked: @openai/codex-sdk@0.132.0
  • Native binary package: @openai/codex-win32-x64

Evidence

The latest published @openai/codex-sdk@0.132.0 still spawns the native binary without windowsHide:

const child = spawn(this.executablePath, commandArgs, {
  env,
  signal: args.signal
});

The command is the SDK's JSON exec path, so it is already non-interactive/stdin-stdout based. On Windows, Node will create a visible console window for a console subsystem executable unless the parent passes windowsHide: true.

Expected behavior

When the TypeScript SDK launches Codex in its non-interactive JSON exec mode on Windows, it should not create a visible console window.

Actual behavior

A visible black console window titled with the bundled codex.exe path appears while the task is running.

Suggested fix

Set windowsHide: true on the SDK's child_process.spawn call that launches this.executablePath, or expose a SDK option that allows hosts to pass it through. Since this SDK path uses exec --experimental-json with piped stdio, hiding the console seems like the expected default on Windows.

Related but distinct issues

  • #18984 tracks PowerShell parser child windows spawned by native codex.exe.
  • #20510 tracks long-lived PowerShell helper windows spawned by codex.exe even when the parent launches Codex hidden.

This issue is one level earlier: the TypeScript SDK currently launches codex.exe itself without windowsHide.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗