[BUG]
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Bug Report: Claude Desktop zombie Helper processes on macOS
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
Environment
- OS: macOS 12.7.6 Monterey (Mac mini)
- Claude Desktop: 1.2581.0
- Claude Code: v2.1.90
What's Wrong?
Claude Desktop spawns multiple "Claude Helper" processes that become zombies (0 bytes memory, 0 threads) and are never cleaned up between sessions. After accumulating enough zombie processes, Claude Desktop becomes unresponsive and cannot be launched from the menu bar without manually force-quitting all Helper processes first.
Steps to Reproduce
- Launch Claude Desktop
- Use it normally for a session
- Close/minimize Claude Desktop
- Open Activity Monitor → filter by "Claude"
- Observe multiple "Claude Helper", "Claude Helper (Renderer)", and "Claude Helper (Plugin)" processes with 0 bytes memory and 0 threads
- Repeat over 2-3 sessions without force-quitting — zombie count grows
- Eventually Claude Desktop fails to launch from menu bar
Observed Behavior
Activity Monitor snapshot 1 (Memory tab):
| Process | Memory | Threads | PID |
|---------|--------|---------|-----|
| Claude Helper | 0 bytes | 0 | 1207 |
| Claude Helper (Renderer) | 0 bytes | 0 | 1213 |
| Claude Helper (Renderer) | 0 bytes | 0 | 1210 |
| Claude Helper (Plugin) | 0 bytes | 0 | 1345 |
| Claude Helper | 0 bytes | 0 | 1237 |
| Claude Helper (Plugin) | 0 bytes | 0 | 1346 |
| Claude Helper (Renderer) | 0 bytes | 0 | 1212 |
| Claude Helper (Plugin) | 0 bytes | 0 | 1238 |
| Claude Helper (Plugin) | 0 bytes | 0 | 1343 |
| Claude Helper (Renderer) | 0 bytes | 0 | 1875 |
| Claude Helper (Renderer) | 0 bytes | 0 | 2040 |
| Claude Helper | 30.4 MB | 9,556 | 1209 |
| Claude (main) | 5.0 MB | 40 | 1204 |
11 zombie Helper processes + 1 helper with abnormal thread count (9,556).
Activity Monitor snapshot 2 (Network tab, after restart):
Same pattern with new PIDs (706-1599): 8 zombie helpers with 0 bytes, main helper at 29.5 MB with 3,634 threads.
Expected Behavior
Helper processes should be properly terminated and cleaned up when:
- A session ends
- Claude Desktop is closed
- A new session starts
The process lifecycle should not require manual user intervention.
Current Workaround
killall "Claude Helper" 2>/dev/null; killall "Claude" 2>/dev/null
Must be run daily before launching Claude Desktop.
Additional Context
- Issue confirmed independently by both Claude Sonnet 4.5 and Claude Opus 4.6 analyzing Activity Monitor screenshots
- The zombie processes appear to be Electron sub-processes (Renderer, Plugin types) that lost IPC connection to the main process
- The one surviving helper with 9,556 threads suggests a thread leak in addition to the process cleanup issue
- Screenshots available upon request
Secondary Issue: MCP Google Drive and Slack
While investigating, also discovered that MCP connectors for Google Drive (drivemcp.googleapis.com) and Slack (mcp.slack.com) connect successfully but return 0 tools during discovery. Gmail (7 tools) and Google Calendar (8 tools) work correctly on the same account. Confirmed by both Sonnet 4.5 and Opus 4.6.
What Should Happen?
Helper processes should be automatically cleaned up when a session ends or Claude Desktop is closed/minimized. The process lifecycle should not require manual user intervention (daily killall).
Error Messages/Logs
No error logs in Console.app (macOS) — zombie processes die silently.
Activity Monitor data:
- 11 Claude Helper processes showing 0 bytes memory, 0 threads
- 1 Claude Helper with 30.4 MB and 9,556 threads (resource leak)
- PIDs: 1207, 1210, 1212, 1213, 1237, 1238, 1343, 1345, 1346, 1875, 2040
- Main process (PID 1204): 5.0 MB, 40 threads (normal)
Console.app log (only entries):
AUTHREQ_ATTRIBUTION: msgID=156.75, accessing com.anthropic.claudefordesktop, pid=5664
AUTHREQ_SUBJECT: msgID=156.75, subject=com.anthropic.claudefordesktop
Steps to Reproduce
- Launch Claude Desktop (v1.2581.0) on macOS 12.7.6 Monterey (Mac mini)
- Use Claude normally for one session
- Close or minimize Claude Desktop
- Open Activity Monitor → filter by "Claude"
- Observe multiple "Claude Helper", "Claude Helper (Renderer)", and "Claude Helper (Plugin)" processes with 0 bytes memory and 0 threads
- Repeat steps 1-4 over 2-3 sessions without force-quitting — zombie count grows
- Eventually Claude Desktop becomes unresponsive and cannot launch from menu bar
- Only workaround: killall "Claude Helper" in Terminal before each launch
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude Code version: 2.1.90
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Claude Desktop version: 1.2581.0, macOS 12.7.6 Monterey, Mac mini. Issue also affects MCP connectors — Google Drive and Slack return 0 tools.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗