Local IDE agent chats and the Agent CLI still use separate session stores. Cloud/mobile sync for cloud agents is useful, but it doesn’t solve local back-and-forth.
Problem
- IDE chats live in the editor index /
agent-transcripts(composer/conversation id). - CLI chats live under
~/.cursor/chatsand resume viacursor-agent --resume <id>. - Staff have confirmed these don’t sync (CLI resume vs app history).
- Passing an IDE chat/transcript id to
cursor-agent --resumedoes not load that IDE conversation. In practice it can also rewrite/clobber the observe transcript jsonl for that id. - That blocks tools that need Claude Code–style behavior: observe a chat, then safely continue it headlessly with the same session id.
What we need
- One stable session id for a local agent conversation across IDE Agents Window,
cursor-agent, and SDKAgent.resume. cursor-agent -p --resume <that-id>(and SDK resume) continues the same IDE chat with full history.- Guarantee resume is non-destructive to
agent-transcripts/ IDE history (append-only; never replace the transcript with an empty/new session). - Document which id to use (composer id vs request id vs anything else). Today “Copy ID” / “Copy Request ID” are easy to confuse; request ids are per-turn and not resumable.
Why Claude Code already works this way (claude -p --resume <uuid>). Cursor already has resume on the CLI/SDK side and sync on the cloud/mobile side — local IDE ↔ CLI is the missing piece for local-first agent tooling.