Session Recorder → Session Recorder with Cursor
Workflow
Debug browser bugs with Cursor
Cursor's agent can read anything in your workspace. Put the recording in the workspace and the agent stops guessing what happened in the browser.
Session Recorder is a free, open-source, local-first Chrome extension for recording web bugs for AI coding agents. It captures clicks, console errors, network requests and responses, screenshots, video, voice narration, DOM interactions, annotations, and uploaded files, then exports an LLM-ready Markdown report you can hand to Cursor, Claude Code, Codex, ChatGPT, and other coding agents.
The gap Cursor cannot close on its own
Cursor indexes your codebase. It does not see the request your app sent, the response it got, or the exception the browser threw. So a prompt like “the dashboard shows stale numbers after saving” makes the agent search for plausible causes rather than the actual one — and plausible causes are how you end up with a confident patch to the wrong file.
The workflow
-
Record the bug in Chrome
Open the Session Recorder side panel, click Record, and reproduce the problem. Narrate while you work — spoken notes are transcribed and land on the timeline at the moment you said them.
-
Export at Compact
Compact targets roughly 50k tokens: JSON bodies become shape summaries, repeated calls collapse, and screenshots are kept for errors and annotations. It is the level that fits comfortably alongside the rest of Cursor's context.
-
Unzip into the project
unzip ~/Downloads/stale-dashboard.zip -d .bugs/Anything inside the workspace folder is reachable by the agent. Add
.bugs/to.gitignore— recordings can contain real data from your app. -
Attach it to the Agent
In the Cursor chat, reference the file directly with
@.bugs/stale-dashboard/report.md, or drag the folder into the composer. Then:@.bugs/stale-dashboard/report.md This is a recording of a browser session against this app. [mm:ss] timestamps join interactions, network requests, console output and my narration; blockquotes are my own notes. Find the first real failure, trace it into this codebase citing timestamps and the specific requests, and propose the smallest fix. Ask before editing. -
Let it verify
After the fix, record a second short session of the same flow and attach it. A “before” and “after” recording is the cheapest regression check there is.
Watch the context budget. Cursor is already holding your codebase. If the agent starts losing the thread, re-export the same recording at Minimal — a narrative skeleton of navigations, clicks, narration, markers, and errors, at roughly 15k tokens. Your explicit signals survive every level.
Add a rule so you only explain it once
If you record often, put the interpretation in a project rule instead of
every prompt. Create .cursor/rules/session-recordings.mdc:
---
description: How to read Session Recorder bug reports
globs: .bugs/**/report.md
---
Files under .bugs/*/report.md are browser session recordings.
- [mm:ss] timestamps are the join key across interactions, network, console,
screenshots, and the voice transcript.
- "##" headings mark navigations and tab switches.
- "xN similar" means repeated identical requests were collapsed.
- Blockquotes are the user's own markers and notes: highest-priority signal.
- Errors are prefixed with a warning sign and link to the request that caused them.
When a needed body was trimmed, say which [mm:ss] event to re-export instead of
guessing at its contents.
What is in the export
The zip contains report.md (the agent's entry point),
session.json (the same events, machine-readable),
MANIFEST.md, and the assets: screenshots, full network
bodies, audio, and any files you uploaded to the app.
Read a complete example.
Local by default
Nothing is uploaded. The session lives in your browser's IndexedDB and leaves only as a zip you save. Secrets are masked at capture time, not after the fact. How the local-first design works.
Record your next bug instead of describing it
Free, open source, and everything stays on your machine.