JSONL Conversation and Transcript Viewer - Read and Search LLM Chat Logs

First Published:
Last Updated:

Read raw LLM conversation logs and transcripts as a clean, color-coded conversation. Paste a JSON array of messages, a JSON Lines file, or an Anthropic Messages / OpenAI-style chat log - tool calls, tool results, and long content are folded for readability, and everything stays in your browser.

All processing is performed entirely in your browser using client-side JavaScript. No data is transmitted to any server. Your conversation logs never leave your device.

  • This tool is provided "AS IS" without any warranties of any kind.
  • It is a viewer, not a validator - it shows logs as faithfully as it can and falls back to raw display for anything it does not recognize. It does not certify that a transcript is valid for any provider.
  • Transcripts may contain secrets, API keys, or personal data (prompts, tool inputs, results). Only load logs you are authorized to view, and handle them accordingly.
  • By using this tool, you accept full responsibility for any outcomes.

This tool uses client-side JavaScript for all processing. No data is transmitted to servers, no files are uploaded online, all processing happens locally in your browser. Once loaded, this tool continues to work even without an internet connection. For more details, please refer to our Web Tools Disclaimer.

Accepts a JSON array of messages, a { "messages": [ ... ] } object, a single message object, or JSON Lines (one JSON object per line). Anthropic Messages and OpenAI-style chat logs are both recognized; unknown shapes are shown as raw JSON.
Drop a .jsonl or .json file here, or click to browse.
Files are read locally in your browser and are never uploaded. Maximum 25 MB.
Search and filter
Roles:

Messages

0
Showing 0 of 0

Role Breakdown

  • No data

Parsing

  • Unparsed lines0
  • Unrecognized blocks0
No conversation loaded. Paste JSON or JSONL, upload a file, or try an example.

Features

  • Multiple Input Formats: JSON array of messages, { "messages": [ ... ] } objects, a single message, or JSON Lines (one object per line). Anthropic Messages and OpenAI-style chat logs are recognized.
  • Color-Coded Conversation: Each message is rendered as a card with a role badge (user, assistant, system, tool, other) and a colored left border for fast scanning.
  • Tool Call Rendering: tool_use blocks show the tool name and input JSON; tool_result blocks show the output and flag is_error results in red.
  • Search and Filter: Substring search highlights matches in place and narrows the view; toggle roles on or off, or show only messages that contain tool calls or results.
  • Collapsible Content: Long text and large JSON are folded by default with per-block expand controls, plus Expand All / Collapse All.
  • Copy Raw JSON: Copy the raw JSON of any single message or any individual block to the clipboard.
  • Statistics: Total message count, role breakdown, and counts of unparsed lines and unrecognized blocks.
  • Lenient Fallback: Lines that are not valid JSON and blocks of unknown type are preserved and shown as raw text or raw JSON, never silently dropped.
  • Privacy: Everything runs locally in your browser. No log data is sent anywhere.

How to Use

  1. Open the Examples tab to try a preset, or paste your own log in the Paste JSON / JSONL tab.
  2. Click Load Conversation (for pasted text) or drop a .jsonl / .json file in the Upload File tab.
  3. Read the conversation top to bottom. Click a block's toggle to expand long text, tool inputs, or results.
  4. Type in the Search box to highlight and filter messages; use the role checkboxes or Tool calls only to narrow the view.
  5. Use Copy raw on a message or Copy on a block to grab the underlying JSON.
  6. Click Clear All to reset the tool.

About This Tool

This is a general-purpose viewer for large-language-model conversation logs and transcripts. It normalizes each entry to a simple model - a role plus an ordered list of blocks (text, tool_use, tool_result, thinking, image, or "unknown") - and renders that model as a readable conversation. The parser is deliberately lenient: it accepts JSON Lines, message-array JSON, and single objects, tolerates role-name variations (for example model or ai mapped to assistant, human to user, developer to system), and recognizes OpenAI-style tool_calls and tool-result messages. Anything it does not recognize is kept and displayed as raw JSON rather than being reinterpreted.

The message and content-block field names it relies on (role; content as a string or an array of blocks; tool_use with type / id / name / input; and tool_result with type / tool_use_id / content / is_error) were verified against the official Anthropic Messages API documentation as of June 23, 2026. Formats and field names can change over time; treat this tool as a reading aid, not an authoritative schema check. Source: Anthropic - Tool use overview.

FAQ

Which formats are supported?
A JSON array of messages, a { "messages": [ ... ] } object (also conversation or events arrays), a single message object, or JSON Lines with one JSON object per line. Both Anthropic Messages content blocks and OpenAI-style chat messages (including tool_calls and role: "tool" results) are recognized.

Are my logs uploaded anywhere?
No. All parsing and rendering happen in your browser with client-side JavaScript. There are no network requests for your data, and files you drop are read locally and never uploaded.

How are tool calls displayed?
A tool_use block is shown with the tool name, its identifier, and the input JSON (collapsible). A tool_result block is shown with its tool_use_id and output; if is_error is true it is flagged and tinted red. You can copy the raw JSON of any block.

What happens to fields or block types it does not recognize?
They are never dropped. An unrecognized content block is shown as an "unknown" block with its raw JSON, and a line that is not valid JSON is shown as a raw-text card and counted under "Unparsed lines" in the statistics.

Can I use it to validate a transcript against a strict provider schema?
No - this is a lenient viewer for reading and debugging, not a validator. For building and checking Anthropic tool-use schemas, use a dedicated schema builder and validator; for inspecting MCP server testing and debugging workflows, see the related guide below.

Related Tools

Related articles:

Important Notes

This viewer parses common LLM transcript formats (verified against official documentation as of June 23, 2026) and falls back to raw display for anything it does not recognize. All parsing happens in your browser; logs are never uploaded. Transcripts may contain secrets or personal data - handle them accordingly.

  • Reading aid, not a validator: Strict per-provider validation is out of scope for this tool. It will happily display a malformed or non-standard log; it does not certify correctness.
  • Vendor-specific fields are not interpreted: Blocks and fields outside the verified set (for example thinking signatures, server-tool result blocks, or custom keys) are preserved and shown as raw JSON rather than decoded.
  • File size: Uploads are limited to 25 MB to keep the browser responsive, and very large transcripts are rendered in batches (use Show more to load additional messages).
  • Gzipped logs (.jsonl.gz) are not supported - decompress them before loading.
  • Search is a plain case-insensitive substring match; it highlights and filters but does not interpret regular expressions.

References:
Tech Blog with curated related content
Web Tools Collection

Written by Hidekazu Konishi