Cursor reopens / restarts shortly after I quit or close windows (macOS)

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

On macOS, Cursor does not stay closed. After I quit the app (File → Exit / Cmd+Q) or close workspace windows, Cursor comes back within seconds to ~1 minute — either as a new process or with new workspace windows opening again.

This does not look like a macOS LaunchAgent/login-item auto-start (no Cursor LaunchAgent found). Logs instead show rapid process restarts and internal window/workspace reopening tied to active Agent sessions.

Relevant local signals from logs (~Jul 30, 2026 19:47–19:53):

  • Multiple new log sessions within minutes: 20260730T195009, 20260730T195029, 20260730T195144
  • Lifecycle shutdown reason 2 (app quit) followed by a new process ~7–20s later
  • Lifecycle shutdown reason 1 (window close only) without full quit, then new windows/process later
  • Active agent-loop wakelock: composerId b1c3b38c-42e1-4f82-b5ff-fb973d687a82
  • remote-control-keep-awake wakelock enabled (cursor/glassRemoteControlKeepAwakeWhilePluggedIn = true)
  • cursor-agent-worker repeatedly spawning for workspace multimodal-annotation-platform, exiting code=1 with “The provided API key is invalid”
  • Agent workspace migration / new window open (window1_wb2 for multimodal-annotation-platform at 19:53:13)
  • Open Design integration present in child process env (OD_REQUIRE_DESKTOP_AUTH=1); desktop auth gate active around 19:47

No Cursor crash reports in Crashpad during this period.

Steps to Reproduce

  1. macOS, Cursor 3.13.25, Glass layout.
  2. Have one or more Agent conversations active (especially with agent-loop / background agent / Automations / Private Worker).
  3. Optional: remote-control keep-awake enabled; cursor-agent-worker configured for a project workspace.
  4. Quit Cursor via File → Exit (Cmd+Q), or close all workspace windows.
  5. Within seconds to ~1 minute, Cursor reopens — either full app relaunch (new logs/ session folder) or new workspace window (e.g. project workspace opens again while empty-window session exists).

Observed restart pattern from logs:

  • 19:49:53 app quit (reason: 2)
  • 19:50:10 new process start
  • 19:50:23 app quit again
  • 19:50:30 new process start
  • 19:51:09 windows close (reason: 1)
  • 19:51:44 new process start

Expected Behavior

After File → Exit / Cmd+Q, Cursor should fully terminate and not relaunch unless I explicitly open it again.

Closing a workspace window should not automatically reopen other workspace windows or relaunch the app.

Stopping/cancelling all running Agents should allow a clean quit without the UI coming back.

Operating System

MacOS

Version Information

Cursor IDE: 3.13.25 (darwin-universal, stable)
Electron: 40.10.3 (from crashpad annotation)
Channel: stable, layout: glass
macOS: darwin 25.2.0 (arm64)

For AI issues: which model did you use?

composer-2.5 (Agent mode)

For AI issues: add Request ID with privacy disabled

f9a7046a-279b-47e5-ab48-6e8dc12daba1

Additional Information

Log paths on macOS:

  • ~/Library/Application Support/Cursor/logs//main.log
  • ~/Library/Application Support/Cursor/logs//window*/renderer.log
    (search: agent-loop, remote-control-keep-awake, lifecycle, reason: 1/2)
  • ~/Library/Application Support/Cursor/User/globalStorage/anysphere.cursor-agent-worker/*.log

Not found:

  • Cursor LaunchAgent in ~/Library/LaunchAgents
  • Cursor in macOS login items (separate app CursorUsageMenuBar is in login items, not Cursor.app)

Possibly related:

  • glassRemoteControlKeepAwakeWhilePluggedIn = true
  • cursor-agent-worker invalid API key loop for project workspace
  • Open Design desktop auth (OD_REQUIRE_DESKTOP_AUTH=1 in Cursor helper processes)
  • Agent workspace switching (move_agent_to_root / Glass tab migration) opening new windows after close

Happy to provide full log excerpts or run additional repro steps if needed.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey there,

Nothing in your agent sessions or Remote Control can reopen the app. What relaunches Cursor after a quit is the macOS updater’s install-on-restart step getting stuck - it’s a local state thing, not your setup, and it clears easily.

Try these in order:

  1. Reboot your Mac, then quit Cursor and see if it stays closed. This fixes it most of the time.
  2. If it comes back, do a clean reinstall: quit with Cmd+Q, drag Cursor from Applications to the Trash and empty it, then reinstall from Cursor · Download . Your settings, extensions, and chat history are kept.
  3. You mentioned CursorUsageMenuBar and an Open Design helper — both are third-party and can reopen Cursor on their own. Quit them, then do a clean Cmd+Q to rule that out.

Separately, that cursor-agent-worker “invalid API key” loop is unrelated and won’t reopen the app — toggling Remote Control off and back on clears it.

If it still comes back after a reboot, send the ShipIt_stderr.log (in ~/Library/Caches/…ShipIt/) from around a relaunch and I’ll dig in.

OK,I will try it

Update: We’ve confirmed the root cause on our side — matches your ShipIt / install-on-restart diagnosis.

We checked the local ShipIt state and logs. The stuck updater state is still present and explains the relaunch after quit.

1. ShipItState.plist still shows a pending install with auto-launch enabled:

Path: ~/Library/Caches/com.todesktop.230313mzl4w4u92.ShipIt/ShipItState.plist

launchAfterInstallation => true

targetBundleURL => file:///Applications/Cursor.app/

updateBundleURL => file:///Users/jaypan/Library/Caches/com.todesktop.230313mzl4w4u92.ShipIt/update.GvrZ465/Cursor.app/

useUpdateBundleName => true

2. ShipIt_stderr.log shows the updater completing install and then explicitly relaunching Cursor:

Path: ~/Library/Caches/com.todesktop.230313mzl4w4u92.ShipIt/ShipIt_stderr.log

On 2026-07-29 10:16:42:

Installation completed successfully

On main thread and launching: file:///Applications/Cursor.app/

Bundle URL is valid

Attempting to launch app on 11.0 or higher

Launching new ShipIt at …/Squirrel.framework/Resources/ShipIt with instructions to launch file:///Applications/Cursor.app/

On 2026-07-29 10:16:47:

Detected this as a launch request

Successfully launched application at file:///Applications/Cursor.app/

So the relaunch is from ShipIt’s post-install launch step, not from Agent sessions or Remote Control.

3. The same log also shows repeated failed update attempts while Cursor was still running:

Aborting update attempt because there are 1 running instances of the target app

Installation cancelled: Error Domain=SQRLInstallerErrorDomain Code=-9 “App Still Running Error”

NSLocalizedRecoverySuggestion=All instances of the target application should be quit during the update process

This pattern appears multiple times (e.g. 2026-03-10, 2026-07-28), which likely left the updater in a bad/stuck state and kept launchAfterInstallation set.

Conclusion: Root cause on our machine is a stuck Squirrel/ShipIt “install on quit + launch after installation” cycle — a local updater state issue, not our Agent/Remote Control setup. This aligns with your explanation.

Next steps we’ll try (as you suggested):

  1. Reboot Mac, then Cmd+Q and verify Cursor stays closed
  2. If it still relaunches: quit third-party helpers (CursorUsageMenuBar, Open Design), clean reinstall from Applications
  3. Toggle Remote Control off/on separately for the unrelated cursor-agent-worker invalid API key loop

If it still relaunches after a reboot, we’ll attach ShipIt_stderr.log from around the next occurrence.

Thanks for the pointer — the ShipIt logs made the root cause clear.