← LeaderboardThe Skill Leaderboard

reset-cursor-acp

Reset a stuck Cursor ACP thread in your chat app and reload its configuration. Use only when the user explicitly invokes /reset-cursor-acp.

Published by davidondrej ↗davidondrej/skills

Try your first task

reset-cursor-acp

Start a fresh conversation. Replace the highlighted placeholders.

Use reset-cursor-acp to /reset-cursor-acp for thread [thread-id]

Required inputs

  • [thread-id]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: reset-cursor-acpdescription: 'Reset a stuck Cursor ACP thread in your chat app and reload its configuration. Use only when the user explicitly invokes /reset-cursor-acp.'disable-model-invocation: true

Reset Cursor ACP in your chat app

For terminal sessions use cursor-cli; for general app control use <app-cli>.

How resets work

  • The app's ACP integration starts one cursor-agent acp subprocess per thread, on demand.
  • There is no global Cursor ACP server. Do not create one or keep it alive with a watchdog.
  • Rules, skills, and .cursor/mcp.json reload when a new subprocess starts.
  • Use the app's thread-stop command with the thread ID to release the runtime and stop its subprocess while preserving history. The next message starts a fresh agent.

Quick reset

Resolve <reset-script> relative to this SKILL.md. Run:

<reset-script> <thread-id>      # reset one Cursor thread
<reset-script> --self           # reset the current thread
<reset-script>                  # no thread: orphan cleanup + health check only
<reset-script> --dry-run        # show what would happen
<reset-script> <id> --kill-all  # also kill live agents of OTHER Cursor threads

Find Cursor thread IDs using the app's status or thread-list command.

The script stops the selected thread, removes orphaned cursor-agent acp processes, reports CLI version/login/update status, and asks for the next message. Other threads stay running unless --kill-all.

If sandboxing blocks ps with "operation not permitted", rerun the script outside the sandbox.

Verify

Send one short message to verify a fresh agent responds. If it hangs again, check the causes below before another reset.

Known causes

  • Old Cursor CLI. If the health check shows an update, use the app's update command, then reset.
  • Expired login. Symptom "Failed to initialize session services". Fix: cursor-agent login, then reset.
  • Pending permission. Cursor waits for session/request_permission. Check and resolve the thread's pending approval before resetting.
  • Resume failure. For session/load → "Session not found", use a fresh session after stopping the thread rather than retrying the load.
  • Team-level MCP servers from the Cursor dashboard do not work in ACP mode. Only project or user .cursor/mcp.json.
  • Rate limits. Enable retries using the app's plugin controls.

Do not

  • No launchd KeepAlive, cron, or watchdog for cursor-agent acp.
  • Never blindly run pkill -f cursor-agent; it kills all Cursor threads and the interactive TUI. Use the reset script, which targets orphans by default.
  • Do not restart the app for one stuck thread; stop only the affected thread.
  • Do not use the app's thread-compaction feature; Cursor does not support it.