Session Recorder → A local-first bug recorder

Privacy

A local-first bug recorder, for when the recording cannot leave

Most bug-capture tools are cloud products: you record, it uploads, you share a link. Session Recorder has no upload step, because it has no server to upload to.

Session Recorder is a free, open-source, local-first Chrome extension for recording web bugs for AI coding agents. There is no account, no backend, and no telemetry. Sessions are written to IndexedDB inside your own browser and leave only as a zip file you save yourself.

What “local-first” means here, concretely

One exception, and it is opt-in. If you turn on voice transcription and supply your own API key for Deepgram, OpenAI, or ElevenLabs, the recorded audio is sent to the provider you chose to produce a transcript. Without a key, audio stays on your machine and the report keeps the raw audio file instead. This is the only outbound call the extension can make, and it is disclosed in the privacy policy.

Secrets are masked before they are written

Redaction runs at capture time, not at export time. Authorization headers, token-like JSON and form fields, sensitive URL parameters, and password inputs are masked on the way into storage, so the unredacted value never exists on disk in the first place. You can add your own rules or disable redaction per session on the options page.

This matters more than it sounds: a tool that scrubs at export has already persisted the secret. One that scrubs at capture never has it.

Who this design is for

The honest trade-offs

Local-first is a real constraint, not just a virtue. What you give up:

You lose Why What to do instead
Shareable links There is no server to host the recording. Send the zip, or attach it to the ticket you already have.
Jira / Linear / Slack integrations Same reason: integrations need a backend to call them. Attach report.md to the issue.
Non-technical reporters Recording is easy; the report is written for an agent. A cloud tool is genuinely better for customer-facing capture. See the comparison.
Cross-device history IndexedDB is per-profile, per-machine. Keep the exported zips wherever you keep artifacts.

You do not have to take our word for it

The whole extension is on GitHub. The claims above are checkable in about ten minutes: grep the source for fetch(, read the permission justifications, or open DevTools' network panel on the extension itself while recording and watch nothing go out. The permissions the extension asks for and why it needs each one are documented in the README, and the export pipeline — capture, redaction, deterministic trimming, zip — is all in lib/.

Trimming is deterministic and contains no model call: the same recording at the same level produces the same report, every time. Nothing about your session is sent anywhere to be summarized.

Record your next bug instead of describing it

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