Reading Claude Code session transcripts
Claude Code records every session as JSONL in ~/.claude/. claude-devtools parses these transcripts into a chronological conversation with per-tool renderers and cross-session search.
Every Claude Code session is recorded as a JSONL transcript in ~/.claude/. Each line is a message: user prompt, assistant response, tool call, tool result, or system event. Raw transcripts are unreadable — thousands of lines of escaped JSON with embedded system prompts.
claude-devtools parses these session transcripts and renders them as a chronological conversation view with:
- Chronological turn navigation — jump to any message in the session
- Specialized renderers per tool — syntax-highlighted Read, inline Edit diffs, Bash output
- Expandable sections — collapse/expand thinking, tool I/O, subagent trees
- Cross-session search — find any message across every transcript (Cmd+K)
- Live updates — sessions still running tail in real time as new turns arrive
You can export a rendered transcript as Markdown, JSON, or plain text for sharing or archiving.
If you'd rather understand the JSONL format directly — for example to write your own tooling — see the anatomy of a Claude Code transcript.
Related
Install claude-devtools
Homebrew, direct download, or Docker. Works on macOS, Linux, and Windows. No API keys, no login, no configuration — claude-devtools just reads ~/.claude/.
How to debug Claude Code tool calls
Every tool call expanded — syntax-highlighted Read calls, inline Edit diffs, full Bash output, regex search matches, recursive subagent trees, and rendered Markdown / Mermaid.