Overview
AI Session Viewer renders a raw AI chat session export as a clean,
readable transcript. Import a session file and view it as chat bubbles, a compact log, or a
document, then edit the content, redact sensitive details, and export the result to PDF.
Handy for saving a conversation, cleaning it up for a write-up, or sharing a spicy exchange
with someone else.
Everything runs locally in a single HTML file — nothing is uploaded and your sessions
never leave your machine.
What files are supported?
Drop or import any of these session formats:
.json — the viewer’s native export format (single object with a
messages array).
.jsonl — raw session logs from Claude Code (Anthropic
CLI).
.jsonl — raw session logs from Gemini Antigravity IDE.
The viewer auto-detects the format and normalizes everything into a unified shape, so they all
render the same way.
How do I find my session files?
Easier route: just ask the agent itself — e.g. “export this session
as .jsonl in the project root.” Claude Code and the Gemini Antigravity IDE
both have file-system access to their own session logs and can copy the current conversation out
for you in one step.
Claude Code stores each session as a JSONL log under your home directory:
~/.claude/projects/<sanitized-project-path>/<session-uuid>.jsonl
Gemini Antigravity IDE writes session logs to its own data directory, typically:
~/.gemini/antigravity-ide/… (path varies by version)
Copy the .jsonl file out (or drag it directly into this page) — nothing else
needs to be set up.
What can I do with a loaded session?
- Switch themes — Bubble, Compact, and Article layouts in the sidebar.
- Edit any message — click the text and start typing. Changes stay in
the tab until you save.
- Format text — select text inside a message and a floating toolbar
appears with bold, italic, underline, and inline code. Bold,
italic, and underline also respond to ⌘B /
⌘I / ⌘U. Each button lights up when the
selection already has that format; click again to remove it.
- Highlight & obfuscate — the same toolbar can add a yellow
highlight (⌘⇧H) or blur out sensitive text
(⌘⇧O). Click a blurred span to reveal it; toggle the button off to
clear the mark. All formatting is preserved when you save or export the session.
- Delete messages — hover a message and use the trash button.
- Filter content — hide session context, agent thoughts, or tool
activity.
- Customize the header — rename the title, add a custom subtitle,
toggle the subtitle, model, and date, or hide the header entirely.
- Rename participants — set custom labels for “User” and
“Agent”.
- Save the edited session — export to a new
.json file
(never overwrites the original).
- Export to PDF — uses your browser’s print dialog.
- Replace the session — drop a new file anywhere on the main area while
a session is loaded.
Is my data private?
This viewer is a single static HTML page. Your session never leaves your
browser. There is no server, no upload, no telemetry, and no analytics.
- Files you drop in are parsed entirely in-memory by JavaScript running in your tab.
- No network requests are made with your data — the only external resources are CSS/JS
libraries (Tailwind, Marked, Lucide, fonts) loaded once from public CDNs at page load.
localStorage is used only for UI preferences (theme, header settings, custom
labels) — never for session content.
- Closing the tab discards the loaded session from memory.
Tips
- Press
Esc to close this dialog.
- The sun/moon toggle in the top bar follows your system appearance by default
(Auto); a small accent dot on the lit icon means you’ve pinned a mode
instead. Click either icon to pin Light or Dark, click the lit icon again to return to Auto,
or press
L to flip light/dark.
- Edited text is preserved in “Save session” export as plain text (markdown
formatting is not re-encoded).
- The viewer’s normalized format is what gets exported — not the original
tool’s raw schema. Re-importing the exported file works, but feeding it back into
Claude Code or the Gemini IDE will not.