Everything happens in this browser tab. Your .snap.jsonl is parsed locally and never uploaded.
Your Anthropic API key, if you provide one, is stored only in this browser's localStorage and is sent only to api.anthropic.com.
Source: github.com/achiii800/claude-snap.
Threat model: SECURITY.md.
1 · Load a session
Drop a .snap.jsonl here, paste it as text, or pick a file. The original Claude Code .jsonl works too — uncompressed sessions render the same.
Drop a session file here, click to browse, or paste below.
Or paste the JSONL contents
2 · Transcript
Read-only view of the unpacked session. The receiver-side has no executor — you can read, ideate, and ask follow-ups, not Edit / Write / Bash.
3 · Continue the conversation (optional)
Steps 1 & 2 above are the whole experience for read-only use — no API key required.
Continue here only if you want to ask a follow-up. Doing so requires pasting your Anthropic
API key into this page (sent only to api.anthropic.com, stored only in this
browser's localStorage).
Local mode. You're running this PWA via claude-snap chat on
your own machine. The API key comes from your shell's ANTHROPIC_API_KEY env
var via the local proxy — not from any field on this page. The browser never sees it.
Don't want to paste a key into a webpage?
Run locally instead: pip install claude-snap, then
ANTHROPIC_API_KEY=sk-ant-… claude-snap chat <file.snap.jsonl>.
Same UI, same model, but the key stays in your shell environment and only ever
reaches localhost. See trust modes.