Claude JSONL Conversation Viewer

Upload your Claude.ai export or Claude Code CLI session log and instantly browse every conversation with proper formatting, syntax-highlighted code blocks, tool call visualization, and search. Supports all Claude JSONL formats including Claude Code with thinking blocks and tool calls. Your data stays on your device - we never upload or store your conversations.

Claude JSONL Conversation Viewer

Open and browse Claude.ai exports and Claude Code CLI logs directly in your browser. Full markdown rendering, code highlighting, tool call visualization, and search. Nothing leaves your device.

Drop your file here or click to browse

.jsonl or .json

Your data never leaves your browser. All processing happens locally.

What Is a JSONL Conversation Export?

When you export your conversation history from Claude.ai, the platform delivers a .jsonl file. JSONL (JSON Lines) is a text format where each line contains a standalone JSON object. In practice, every line represents one complete conversation, including the title, timestamps, and every message exchanged between you and Claude. While the format is great for machines, opening a JSONL file in a text editor gives you a wall of raw JSON that is nearly impossible to read.

This viewer solves that problem. Drop your file in, and the tool parses each line, detects the format automatically, and presents your conversations in a clean, readable layout with proper formatting.

Supported Formats

The viewer automatically detects and properly renders four distinct JSONL formats used across the Claude ecosystem:

Claude.ai Web Exports

When you export from claude.ai, each line is a conversation object containing a chat_messages array. The viewer extracts conversation titles, dates, and individual messages, presenting them exactly as they appeared in the Claude interface.

Claude Code CLI Session Logs

Developers using Claude Code (the CLI tool) generate JSONL session logs stored in the .claude/projects directory. These files use a different structure where each line is a single message with nested message.role and message.content fields, along with metadata like sessionId, parentUuid, and type. The viewer groups messages by session, handles content block arrays (text, tool_use, thinking), and presents them as clean conversation threads. Tool calls like Bash commands, file reads, and code edits appear as collapsible panels showing the tool name and parameters. Thinking blocks are collapsed by default to keep the view focused on the actual conversation.

Claude API Message Logs

If you log API calls to the Messages API, each line typically has a role field and a content field at the top level. The viewer threads these into a single conversation view.

Generic JSONL

Any other valid JSON objects are displayed as formatted, syntax-highlighted JSON. Useful for inspecting structured log files, data dumps, or custom JSONL datasets from other tools.

How the Viewer Works

The tool runs entirely inside your browser using JavaScript. When you upload or paste a JSONL file, the parser splits it by line and attempts to parse each line individually. Lines that contain valid JSON are kept; malformed lines are skipped with a warning so one bad line does not break the whole file. After parsing, format detection runs against a sample of parsed objects and selects the most appropriate rendering mode.

Features You Will Actually Use

If you have conversation data in other text formats, you can convert plain text to JSON before viewing it here.

Chat-Style Message Display

Messages are displayed in a chat-like layout with distinct visual treatment for each participant. Your messages appear with a blue accent and user avatar, while Claude responses have a purple accent with a bot avatar. This makes it easy to scan through long conversations and quickly identify who said what. Data records from generic JSONL get their own neutral styling.

Markdown Rendering

Claude responses are rich with markdown: headings, lists, bold text, links, tables, and more. The viewer renders all of this properly so you read the response the way it was meant to be seen, not as raw markdown syntax.

Code Block Highlighting

Conversations about programming make up a huge chunk of Claude usage. The viewer highlights code blocks with full syntax coloring for Python, JavaScript, TypeScript, PHP, Java, HTML, CSS, Bash, SQL, Ruby, Go, Rust, C, C++, YAML, and JSON. Copying code from a highlighted block is straightforward because every message has a dedicated copy button.

Tool Call Visualization

Claude Code sessions include tool calls where Claude reads files, runs bash commands, edits code, and searches the codebase. Instead of showing these as raw JSON, the viewer renders each tool call as a collapsible panel with the tool name prominently displayed. Click to expand and see exactly what parameters Claude used. This turns a wall of nested JSON into a scannable log of actions.

Thinking Block Support

When Claude uses extended thinking, those thinking blocks are captured in the JSONL. The viewer renders them as collapsed amber panels that you can expand when you want to see Claude's reasoning process. They stay collapsed by default so you can focus on the actual conversation output.

Single-Conversation Auto-View

When a file contains just one conversation, which is common with Claude Code CLI session logs, the viewer skips the sidebar conversation list entirely and displays the messages in a full-width layout right away. No extra clicks needed to start reading. If the file has multiple conversations, the sidebar and list appear as usual.

Message Role Filter

Long coding sessions with Claude can produce hundreds of messages. A segmented button group next to the message count lets you filter by role: show All messages, only Your messages, or only Claude's responses. The counter updates to reflect the filter, showing something like "42 / 255 messages" so you always know how many messages match. This is especially handy when you want to review just the prompts you sent or just the code Claude produced, without scrolling past everything else.

Smart Conversation Naming

Claude Code sessions often start with system-level messages like tool use interrupts or status updates, which make poor conversation titles. The viewer skips these and picks the first meaningful user message as the conversation title instead. The result is a sidebar full of descriptive, scannable titles that actually tell you what each session was about.

Search Across Conversations

Looking for that one conversation where you discussed database indexing strategies or asked about a specific error message? Type a keyword into the search bar and the viewer instantly filters the conversation list to show only matches. It searches both conversation titles and message content.

Inline Code Styling

Inline code references within messages, such as variable names, function calls, and file paths, are styled with a clean pink monospace font that stands out without heavy backgrounds or borders. Block-level code retains full syntax highlighting with the dark editor theme. The distinction keeps messages readable while still making technical terms easy to spot at a glance.

Conversation Export

Need to analyze conversation data in a spreadsheet? You can convert JSON to CSV to create a tabular dataset from your exported conversations.

Found the conversation you were looking for? Export just that one conversation as a standalone JSON file. This is handy when you want to share a specific conversation with a colleague or archive it separately.

Real-World Use Cases

  • Code review archaeology - A developer exported their Claude Code sessions after a major refactor. Using the search function, they found the exact conversation where Claude suggested the architecture change, complete with the original code snippets and reasoning.
  • Team knowledge sharing - A tech lead exports Claude conversations about infrastructure decisions and shares the JSONL file with the team. Everyone can browse through the discussions using this viewer instead of scrolling through raw JSON.
  • Audit trail - For compliance purposes, a company exports all Claude interactions monthly. This viewer lets auditors browse through conversations without needing technical knowledge of JSON formats.
  • Personal backup browsing - You exported your Claude history before deleting your account and now want to find that recipe Claude helped you perfect three months ago.

Who Is This For?

  • Developers who use Claude Code daily and want to revisit past sessions about specific bugs, architectures, or code reviews.
  • Researchers who export conversation data for analysis or record-keeping and need a quick way to browse through it.
  • Teams that share Claude conversation logs internally and need a readable viewer instead of passing around raw JSONL files.
  • Anyone who has exported their Claude history and simply wants to find and re-read old conversations.

Privacy by Design

Your conversations with Claude can contain sensitive information - business plans, personal reflections, proprietary code, or confidential discussions. That is why this tool processes everything locally in your browser. The JSONL file is never uploaded to any server. There are no network requests during parsing or viewing. Your data stays on your machine from start to finish.

Handling Large Files

Power users of Claude can accumulate thousands of conversations. The viewer accepts files up to 500 MB and handles them by parsing efficiently and only rendering the conversation you are currently viewing. The conversation list is paginated at 20 conversations per page, and individual message threads paginate at 50 messages. Even files with hundreds of conversations and tens of thousands of messages load smoothly without freezing your browser.

How to Export Your Claude Conversations

From Claude.ai

  1. Go to claude.ai and sign in to your account.
  2. Open Settings from the menu.
  3. Navigate to the Account section.
  4. Click Export Data. Claude will prepare your export and send it to your email.
  5. Download the ZIP file from your email and extract it. Inside you will find a conversations.jsonl file.
  6. Upload that file here to start browsing.

From Claude Code CLI

Claude Code session logs are stored automatically in your home directory under .claude/projects/. Each project has a folder, and inside you will find .jsonl files for each session. You can upload any of these files directly to the viewer. Subagent logs are stored in a subagents/ subfolder within each session directory.

For tabular data files, you can also view CSV files online directly in your browser with sorting and filtering.

Frequently Asked Questions About the JSONL Conversation Viewer