Windows: visible cmd.exe windows flash on screen when spawning MCP servers and subprocesses
Summary
On Windows, the Claude desktop app spawns several background processes through cmd.exe wrappers without the CREATE_NO_WINDOW flag (or equivalent windowsHide: true in Node.js spawn options). This causes cmd.exe console windows to briefly flash on screen every time these processes start.
Affected Processes
Three processes spawn visible console windows:
| Process | What it is |
|---|---|
| cmd.exe /d /s /c chrome-native-host.exe | Chrome extension native messaging bridge |
| cmd.exe /c uvx chroma-mcp | Built-in Chroma vector DB MCP server (spawned by ccdScheduledTasksEnabled feature) |
| cmd.exe /d /c claude.cmd | Claude Code CLI subprocess spawned by the desktop app |
Root Cause
The Claude desktop Electron app spawns these processes without windowsHide: true in the Node.js child_process.spawn() options. On Windows, this causes a visible console window to appear briefly for every subprocess launch.
Expected Behavior
All background processes should spawn silently with no visible console window.
Fix
Add windowsHide: true to child_process.spawn() / child_process.exec() calls for these background processes in the Electron app. This is a one-line fix per spawn call.
For user-configured MCP servers in claude_desktop_config.json, "windowsHide": true can be added to each mcpServers entry:
{
"mcpServers": {
"my-server": {
"command": "uvx",
"args": ["some-mcp"],
"windowsHide": true
}
}
}
The built-in spawns (chroma-mcp, claude.cmd) need to be fixed in the app's source code directly.
Environment
- OS: Windows 11 Pro 10.0.26200
- Claude desktop app with Claude Code integration
- Claude Code v2.1.87
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗