Session Recorder → Session Recorder with Codex

Workflow

Debug browser bugs with Codex

Codex works from your repository — locally in the CLI and IDE extension, or from a snapshot in the cloud. In neither case can it watch your browser. A recording gives it the evidence it is otherwise missing.

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 Codex, Claude Code, Cursor, ChatGPT, and other coding agents.

The workflow (local Codex)

  1. Record the reproduction

    Open the Session Recorder side panel on the tab running your app, click Record, and reproduce the bug. Drop a marker the moment it breaks so the agent knows exactly where to look.

  2. Export at Compact

    Pick a detail level and watch the token estimate. Compact keeps the report self-sufficient at roughly 50k tokens; Minimal drops to about 15k when the session was long.

  3. Unzip into the working directory

    unzip ~/Downloads/upload-hangs.zip -d .bugs/
    codex

    Codex reads files under the directory it was started in. Add .bugs/ to .gitignore — recordings can contain real data from your app.

  4. Prompt against the report

    Read .bugs/upload-hangs/report.md — a chronological recording of a browser
    session against this app. [mm:ss] timestamps join interactions, network
    requests, console output, and my spoken narration. Blockquotes are my own
    markers and are the most important signal.
    
    Tell me the first real failure, trace it into this repository citing the
    timestamps and requests involved, and write the fix with a test that would
    have caught it.

Using it with cloud Codex

A cloud task works from a snapshot of your repository, not from your laptop's filesystem — so an unzipped folder in .bugs/ is invisible to it. Two options:

Before either: open report.md and skim it. Redaction masks passwords, authorization headers, and token-like fields at capture time, but only you know whether the response bodies from your own app are safe to push to a remote.

Teach Codex the format once

Put the interpretation in AGENTS.md so you do not repeat it in every prompt:

## Browser bug recordings

Files at `.bugs/*/report.md` are Session Recorder exports: chronological
recordings of a browser session.

- `[mm:ss]` timestamps are the join key across interactions, network requests,
  console output, screenshots, and the voice transcript.
- `##` headings mark navigations and tab switches.
- `xN similar` means repeated identical requests were collapsed; a request with
  a differing status is always shown in full, because anomalies are signal.
- Blockquotes are the user's own markers and notes. Trust them first.
- Errors link to the request that caused them; that request's body is never
  trimmed.

If a body you need was trimmed, name the `[mm:ss]` event and ask for a
re-export at a higher level rather than guessing.

Why this beats a pasted stack trace

A stack trace tells Codex where the program gave up. It does not say what you clicked, what the server returned, or which of five similar requests was the one that failed. The report carries the whole sequence — and the one request whose status differed from its neighbours is usually the answer. More on what agents actually need.

What is in the export

report.md, plus session.json for programmatic use, a manifest, and the assets: screenshots, full network bodies, audio, and files you uploaded to the app. Optionally an OpenAPI spec compiled from the requests your app actually made, which is useful when Codex needs to know the shape of an endpoint it cannot see. Read a complete example.

Record your next bug instead of describing it

Free, open source, and everything stays on your machine.