Session Recorder → Session Recorder with ChatGPT
Workflow
Give ChatGPT a complete browser bug report
Screenshots plus a paragraph of description is the worst input you can give a model that is good at reasoning. Upload one file that contains the whole session instead.
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 ChatGPT, Claude Code, Cursor, Codex, and other coding agents.
The workflow
-
Record the bug
Open the side panel on the tab running the app, click Record, and reproduce the problem. Talk while you do it: “this total should be forty-two” becomes a line in the report at the moment you said it, next to the click that produced the wrong number.
-
Export at Compact or Minimal
A chat window is not a repository — you want a report that stands alone. Compact (about 50k tokens) and Minimal (about 15k) are both self-sufficient without the asset files.
-
Read it before you upload it
This is the step people skip. Uploading sends the contents of the report to OpenAI. Redaction masks passwords, authorization headers, and token-like fields at capture time, but response bodies from your own app are yours to judge. Open
report.mdand skim it first. -
Attach the report and ask
Attach
report.mdto the conversation — plus any annotated screenshots you want it to look at — and use a prompt that explains the format:Attached is report.md, a chronological recording of a browser session in my web app, captured by a browser extension. [mm:ss] timestamps are the join key across interactions, screenshots, network requests, and my voice transcript. "##" headings mark navigations. "xN similar" means repeated identical requests were collapsed. Blockquotes are my own markers and notes. 1. Summarize what I was trying to do, step by step. 2. Identify what went wrong: the first error and its likely root cause, citing [mm:ss] timestamps and the specific requests and console lines. 3. Suggest the concrete code change or the next thing to investigate. If a detail you need was trimmed, tell me which [mm:ss] event to re-export at a higher verbosity level.
Re-export instead of re-recording. If ChatGPT says it needs the
full response body from [01:12], open the session again
and export at Standard or Full. The extension keeps full fidelity
locally and re-runs the trimmer, so you never reproduce the bug twice.
Then hand the answer to a coding agent
ChatGPT is a good place to think about a bug and a bad place to apply the fix. A common loop: reason about the recording in ChatGPT, then take the same report to Claude Code, Cursor, or Codex, which can read your repository and make the change. The report is the same file in both places.
Why one file beats a thread of screenshots
- Order is preserved. A screenshot has no before and after. The report puts the click, the request, the 500, and the console exception in the sequence they happened, which is usually the whole answer.
- The network is included. The single most useful thing a model can see about a web bug is the request and the response, and that is exactly what a screenshot cannot show.
- Your intent survives. Markers, notes, and narration are never trimmed at any detail level, so the model always knows what you expected — not just what happened.
See what the file actually looks like.
What stays local
Recording and export are entirely local: no account, no backend, no upload. Whether anything reaches OpenAI is your decision at the moment you attach the file. If you would rather nothing left your machine at all, use a local agent instead — the recorder does not care which one.
Record your next bug instead of describing it
Free, open source, and everything stays on your machine.