Source: https://reclaimllm.com/news/cursor-capture-now-uses-transcripts-as-the-source-of-truth
← Back to News feature May 6, 2026Cursor capture now uses transcripts as the source of truth
RCLM now captures Cursor sessions by reading the Cursor transcript on completion, while using hook events for file edits, lifecycle data, and fallback coverage. RCLM now has first-class Cursor capture that treats Cursor’s transcript file as the primary source for complete session data. When a Cursor session ends, RCLM reads the transcript path provided by Cursor and uploads a normalized session with messages, tool calls, file diffs, model metadata, working directory, timing, and transcript path. This matters because Cursor hook stop events can arrive with little or no message content. In those cases, relying only on live hook payloads creates incomplete records. The transcript contains the richer conversation state, so RCLM now uses that file first and keeps hook events as supporting data.How it works
Cursor hooks are installed through the same hook installer used for the other supported coding tools. Cursor uses a.cursor/hooks.json file with a flat event-to-command structure, so RCLM now writes Cursor hook commands using Cursor’s hook schema instead of the Claude/Codex nested hook shape.
At a workflow level:
- user and assistant messages
- tool calls
- file diffs
- working directory
- model name when available
- start and end timing
- transcript path
- token counts when Cursor transcript data includes them
Why transcript-first
The initial question was whether Cursor sessions should be built only from hook events, only from transcripts, or from both. Hook-only capture is attractive because it gives immediate event-level visibility. The problem is that Cursor’s hook payloads are not yet proven to be stable or complete enough to reconstruct every session. Some observed stop events provide no messages and only point to a local transcript file. Transcript-only capture is cleaner, but it would lose useful live event context. Hook events still matter for file edits, lifecycle timing, debugging payload shape changes, and fallback behavior when a transcript is missing or unreadable. The chosen approach is hybrid but transcript-first:- Install the Cursor hooks.
- Record useful hook data during the session.
- Use the transcript path at completion as the primary source of normalized session content.
- Fall back to accumulated hook events only when transcript parsing cannot produce data.
Current limitations
Cursor support is still being validated against real-world Cursor payloads. The main thing we are watching is whether Cursor changes transcript structure, hook field names, or the location convention for agent transcripts. There is also an operational edge case: if multiple Cursor hook commands are installed in.cursor/hooks.json, Cursor may call more than one RCLM binary for the same event. That can create duplicate ingests or inconsistent records if different installed versions are present. If you see duplicate Cursor sessions, check the Cursor hook config and remove stale hook command entries.
For now, temporary hook payload logging may be used during debugging to understand exactly what Cursor sends for each event. That logging should become configurable or be removed once the event shapes are confirmed.
Feedback is useful here. If a Cursor session uploads with missing messages, missing file diffs, or an unexpected model name, the most useful detail is the shape of the stop/session-end payload and whether the transcript path exists locally.
ShareShare on X Share on LinkedIn Share on Facebook