Local IDE agent chats and the Agent CLI still use separate session stores

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/chats and resume via cursor-agent --resume <id>.
  • Staff have confirmed these don’t sync (CLI resume vs app history).
  • Passing an IDE chat/transcript id to cursor-agent --resume does 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

  1. One stable session id for a local agent conversation across IDE Agents Window, cursor-agent, and SDK Agent.resume.
  2. cursor-agent -p --resume <that-id> (and SDK resume) continues the same IDE chat with full history.
  3. Guarantee resume is non-destructive to agent-transcripts / IDE history (append-only; never replace the transcript with an empty/new session).
  4. 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.

Hey thanks for the detailed breakdown. The premise is correct. Local IDE chats like agent-transcripts / editor index and CLI/ACP sessions like ~/.cursor/chats ~/.cursor/acp-sessions/<id>/store.db currently live in different storages. There is no common stable session id and no IDE to CLI bridge for --resume. Cloud/mobile sync does not cover this local back and forth.

I noted all four points. Especially valuable are the requirement for append only resume without overwriting the transcript and the request to separate composer id vs request id in the docs. This direction is already being discussed inside the team but I cannot give a timeline for implementation.

A couple of related threads if you want to subscribe or add your voice.

If additional details on the desired behavior appear for example priority CLI to IDE vs IDE to CLI direction add them here. It helps with prioritization.