SessionViewer

Claude Code

Claude Code Conversation Viewer

Claude Code keeps every conversation as a JSONL file on your machine. Drop one here and read it properly: the messages, the thinking it usually hides, the diffs it applied, the todo list it worked through — and the output of every command it ran.

Drop a session file here

Codex and Claude Code .jsonl (.gz works too), or click to pick one

Codex: ~/.codex/sessions/ Claude Code: ~/.claude/projects/

The file is parsed in your browser. Nothing is uploaded unless you choose to create a share link.

“My conversation disappeared” — it didn't

This is the most common reason people go looking. The terminal scrollback is gone, /resume doesn't show what you wanted, the context got compacted — but the transcript itself is still sitting on disk. Claude Code writes one JSONL per session and never deletes it.

Sessions are filed by project, where the project folder name is its working directory with the slashes swapped for dashes. A project at /Users/me/dev/myapp becomes -Users-me-dev-myapp:

~/.claude/projects/<project-slug>/<session-uuid>.jsonl

# most recent conversations across every project:
ls -t ~/.claude/projects/*/*.jsonl | head -5

# search all of them for something you said:
grep -rl "the thing you remember" ~/.claude/projects/

What the viewer shows you

The raw file is one JSON object per line, with tool calls and their results in separate records and a lot of harness scaffolding mixed into the message stream. The viewer separates the signal from that:

Sharing a conversation with someone else

Every other Claude Code history tool is local — a desktop app, a VS Code extension, a CLI. Useful for you, useless for showing a colleague what happened. Click Create share link and you get a URL that anyone can open with nothing installed. It's a random string, never listed or indexed, and you get a delete command back with it.

Let Claude Code upload it for you

You don't have to hunt for the file yourself. Ask the Claude Code session you're already in — it reads a short instruction file here that tells it where transcripts live, how to slim one down, and how to upload it, then gives you the link.

Upload our conversation to https://sessionviewer.cc and give me a
viewing link. Read https://sessionviewer.cc/llms.txt first.

FAQ

Where is Claude Code conversation history stored?

In ~/.claude/projects/<project-slug>/<session-uuid>.jsonl, where the project slug is the working directory path with separators replaced by dashes (/Users/me/dev/app-Users-me-dev-app). One JSONL file per session.

My Claude Code conversation disappeared. Can I get it back?

Almost certainly yes. Losing the terminal scrollback, or having the context compacted, does not delete the transcript — the JSONL file is still in ~/.claude/projects/. Run ls -t ~/.claude/projects/*/*.jsonl | head -5, open the file here, and the whole conversation is back.

Can I see Claude's thinking?

Yes. Thinking blocks are written to the transcript in full, and the viewer shows them (collapsed by default, so they don't get in the way). This is one of the main reasons to read a transcript rather than scroll the terminal.

Is my conversation uploaded when I open it here?

No. Parsing happens entirely in your browser. An upload only happens if you click “Create share link”, and that returns a delete command so you can remove it at any time.

Does it work with Codex sessions too?

Yes — the same viewer auto-detects Codex rollout files as well. Drop either format in.

Share links are random strings, never listed or indexed. Every upload returns a delete command you can run any time.