[BUG] Desktop local-agent (Claude Code): 900s session idle timeout tears down the computer-use connector and never re-registers it on resume
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?
In the Claude desktop app's local-agent mode (Claude Code) on macOS, the per-session IdleManager disconnects a local session after a 15-minute idle period and tears down that session's connectors — including the computer-use connector. On reactivation the connector is NOT re-registered, there is no visible UI control to re-enable it, and the only recovery is a full app restart.
Effect: any computer-use task longer than the idle window silently breaks. It works for ~10 minutes, then the first time the session sits idle (a long analysis turn awaiting input, or the user reading/replying), the mcp__computer-use__* tools just vanish.
Environment: Claude desktop app com.anthropic.claudefordesktop v1.9659.2; Claude Code local-agent 2.1.156; macOS 15.7.3 (24G419), Apple Silicon, single display.
Related (same workflow): while computer-use drives another app that fully covers the Claude window, macOS marks it occluded and Chromium suspends rendering, so the UI freezes on a stale frame (input still works). Possibly worth a separate report.
What Should Happen?
Any one of these would fix it:
- On session resume from idle, automatically re-register/reconnect its connectors.
- Don't idle-disconnect a session that has an actively-used connector (e.g. computer-use used within the last N minutes).
- Make the 900s idle timeout configurable.
- Provide a reliable, visible "reconnect connector" control so an app restart isn't required.
(Related freeze: the app could pass --disable-backgrounding-occluded-windows / --disable-renderer-backgrounding / --disable-background-timer-throttling to its own renderer while automation is active, so its UI keeps painting.)
Error Messages/Logs
~/Library/Logs/Claude/main.log:
2026-06-01 16:06:41 [info] [IdleManager:session] Idle timeout reached, disconnecting local_db7f793c-...
2026-06-01 16:06:41 [info] [IdleManager:session] Starting idle timeout for local_db7f793c-...: 900s
The timeout appears hardcoded in the app bundle (app.asar), with no setting or env var to change it:
this.idleManager = new PLe({ idleTimeoutMs: 900*1e3 }) // 900s
(The timer resets on message-sent / turn-complete / activity / visibility-change, so it only fires after a genuine ~15-min lull.)
Steps to Reproduce
- Open a Claude Code local-agent session in the desktop app on macOS.
- Use the computer-use connector (request_access, then screenshot/click/type). It works correctly.
- Let the session sit idle ~15 min with no completed turns (e.g. one long analysis turn ending awaiting user input, plus the user taking time to read/reply).
- The session is disconnected by the idle timeout.
- Reactivate the session and try computer-use again: the mcp__computer-use__* tools are gone, in-app reconnect does not restore them, and only a full quit + relaunch brings the connector back.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown — I'm not aware of a version where this worked. Observed on v1.9659.2, and the same "works once then drops after a pause" behavior occurred in at least one earlier session. If a field is required, put 1.9659.2 (current) and note "no known good version."
Claude Code Version
Claude desktop app: com.anthropic.claudefordesktop v1.9659.2
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗