Skip to content
| Marketplace
Sign in
Visual Studio Code>Data Science>JSONL Viewer & NDJSON Viewer (JSONL Table)New to Visual Studio Code? Get it now.
JSONL Viewer & NDJSON Viewer (JSONL Table)

JSONL Viewer & NDJSON Viewer (JSONL Table)

Zovo

| (0) | Free
| Sponsor
JSONL viewer and NDJSON viewer that opens .jsonl and .ndjson files as a table, as pretty records or as a chat view for LLM datasets. Fast on large files, with search, filters and live tail. Offline.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JSONL Viewer & NDJSON Viewer (JSONL Table)

VS Code installs Version Offline, no telemetry

A JSONL viewer and NDJSON viewer for VS Code. Open any .jsonl, .ndjson or .jsonl.gz file as a table, a record tree or a chat transcript, with the first rows on screen before the rest of the file is read.

Chat view of a fine-tuning set Table with a filter, a sort and one cell opened
An OpenAI-style fine-tuning record shown as chat bubbles with a system prompt, the user question, an assistant tool call to lookup_order with its JSON arguments, the tool result and the final answer A 30,000 line NDJSON log filtered to 312 error records slower than 300 ms, sorted by timestamp, with the nested ctx object of one row opened as a tree
Record tree with copy JSONPath Bad lines marked with their line numbers
One failed eval record as a JSON tree in the light theme, after copying the path $.output A file with blank lines, emoji, right-to-left text and three invalid lines shown in red with lines 7, 9 and 13

Real output. Each picture is the extension's own webview page, with its Content Security Policy, fed by its real indexer and message protocol and captured in headless Chrome. The files are generated by scripts/make-samples.js, so no real logs or datasets appear.

  • It stays fast on big files. The extension reads the file as a stream and keeps only one number per line (where that line starts). The webview gets 200 rows at a time and never sees the whole file. In the test suite a 40 MB file with 360,000 lines shows its first page in about 20 ms.
  • It reads LLM data the way you think about it. Files with messages (OpenAI), conversations (ShareGPT), contents (Gemini), role and content lines, or prompt and completion pairs open as a chat. Tool calls, tool results and thinking blocks get their own boxes.
  • It finds what you need across the whole file. Type text, or a filter such as level == error and ctx.ms > 500, and press Enter. The search runs in the background with a progress count and a Cancel button. Then sort, export the matches, or follow new lines as a log grows.

Quick start

  1. Install JSONL Viewer and click any .jsonl, .ndjson, .jsonlines or .jsonl.gz file.
  2. Switch between Table, Record and Chat at the top right. Press Enter in the Find or Filter box to search.

To edit the raw text, click Open as Text. Run "JSONL Viewer: Get Started" for a short tour.

What you can do

The table makes one column per top-level key, from the first 1,000 records. Each header shows the type (string, int, float, bool, object, array or mixed) and how many of those records fill that key. Click a header to sort the whole view. Clicks cycle through ascending, descending and file order, and missing values go last. Click a cell to open its value as a tree below the table. Double-click a row, or press Enter, to open the record.

The record view shows one record as a tree that opens two levels deep. Hover any line and click the small copy button to copy its JSONPath, such as $.messages[2].content. Copy JSON copies the whole record. Open line in editor jumps to that line in the text editor, beside the viewer. Use the arrow keys, or J and K, to move between records.

The filter language is short. key == value, key != value, >, >=, <, <=, key contains text, key !contains text, key =~ regex, key exists and key missing all work, joined with and. Nested keys look like ctx.user.id or tags[0], and quoted keys like ["odd key"]. Find matches text anywhere in the raw line and ignores case.

Lines that aren't valid JSON show in red with their line number and the parser's message. The status bar counts them. Click the count to see only bad lines, or Next bad line to step through them.

When a file grows, new records show up within about two seconds. Turn on Follow to keep the newest record in view. A search or filter that's open picks up new matches too. If the file is replaced by a shorter one, the viewer reloads it.

Export saves the records in view, after Find, Filter and sort, as CSV, a JSON array or JSON Lines. Lines that aren't valid JSON are skipped, and the message tells you how many.

Limits

What Limit
File size Under 4 GB. Bigger files show a message and an Open as Text button.
One line Lines over 5 MB show as truncated in the table and the record view. Open the line in the editor to see all of it.
.jsonl.gz Unpacked in memory up to 512 MB. Past that, the first 512 MB is shown with a note. Live tail is off for packed files.
Remote files (virtual workspaces) Read whole, up to 256 MB.
Sort Up to 2,000,000 records in view. Filter first for bigger files.
Columns From the first 1,000 records. Keys that appear only later still show in the record view.

Find works on the raw text of each line, so it won't match a character that the file stores as a \u escape. Use a filter with contains for that, since filters read the parsed values.

Privacy

JSONL Viewer runs offline. It makes no network calls and has no telemetry. The webview runs under a strict Content Security Policy with no remote scripts, and file content goes into the page only as text, never as HTML.

Settings

Setting Default What it does
jsonlViewer.liveTail true Add new records while the file grows
jsonlViewer.askForRating true Ask one time for a Marketplace rating, after 5 files and 2 days. Turn it off with false

Using it with Agent Session Viewer

If you also have Agent Session Viewer installed, VS Code asks which editor should open Claude Code and Codex session files. Pick "Configure Default" once and choose the one you want. Other .jsonl files always open in JSONL Viewer.

Support

Zovo extensions have no ads and no tracking, and sponsors pay for the time that goes into fixes and new viewers. You can sponsor the work on GitHub Sponsors.

More viewers by Zovo

  • Large JSON Viewer & JSON Tree shows large JSON files as a searchable tree, copies JSONPath and turns arrays of objects into a table.
  • CSV Viewer, Excel Viewer (XLSX) & Parquet Viewer opens CSV, TSV, Excel and Parquet files as a sortable, filterable table.
  • Claude Code History & Codex History Viewer browses and searches your local Claude Code and Codex sessions.
  • SQLite Viewer & DB Viewer (Read-Only) browses SQLite tables read-only and runs SELECT queries.
  • Claude Code Usage & Codex Usage Cost Meter shows Claude Code and Codex tokens and estimated cost from your local session files.
  • PDF Viewer & PDF Reader with Dark Mode reads PDFs with a real dark mode, search, an outline and thumbnails.
  • DOCX Viewer & Word Viewer with Dark Mode previews Word and ODT files with dark mode, an outline and search.
  • PPTX Viewer & PowerPoint Viewer shows PowerPoint slides, thumbnails and speaker notes.
  • HDF5 & NetCDF Explorer (H5 Viewer) browses groups, attributes and values in HDF5 and NetCDF files and plots slices.
  • GGUF, Safetensors & NPY Viewer (NumPy Viewer) shows NPY, NPZ, Safetensors and GGUF tensors with stats and heatmaps.
  • MP4 Video Player & Video Preview with Sound plays MP4, MOV, MKV and WebM files with their sound.
  • DXF Viewer & CAD Viewer for 2D Drawings opens ASCII and binary DXF drawings with layers, measuring and PNG or SVG export.
  • AGENTS.md & CLAUDE.md Linter (Context Drift) finds stale commands, paths and versions in AGENTS.md and CLAUDE.md files.
  • Agent Skills & Claude Skills (Skill Shelf) lists, checks and toggles the Agent Skills that Claude Code, Codex and Cursor load.

Coming soon to the Marketplace, with the code on GitHub now.

  • Avro Viewer, Arrow Viewer & Feather Viewer opens Avro, Arrow and Feather files as a paged table.
  • Audio Preview & Loudness Meter plays audio files with a waveform, a spectrogram and LUFS loudness.
  • Graphviz Preview & DOT Viewer shows a live preview of DOT files and exports SVG or PNG.
  • TIFF Viewer (16-bit, Float, GeoTIFF) opens 16-bit, float, multi-page and GeoTIFF images.
  • EML Viewer & MBOX Email Viewer reads EML, EMLX and MBOX email files with remote images blocked.
  • 3D Model Viewer (GLB, glTF, STL, OBJ, PLY) views GLB, glTF, STL, OBJ, PLY and 3MF models.
  • PKL Viewer & Pickle Viewer opens Python pickle files without Python and never runs their code.
  • DICOM Viewer & NIfTI Viewer for CT and MRI opens CT and MRI scans, DICOM folders and NIfTI volumes with window presets and three views.
  • ZIP Viewer & Archive Explorer (JAR, TAR, GZ) browses ZIP, JAR, VSIX, TAR and GZ files, opens entries in tabs and extracts them safely.
  • GCode Viewer & 3D Print Preview shows GCode toolpaths in 3D layer by layer, with print time and filament use.
  • EPUB Reader & EPUB Viewer reads EPUB books with a table of contents, search and light, sepia or dark themes.
  • HAR Viewer & HTTP Archive Viewer opens HAR files from browser DevTools with a timing waterfall, filters and a redacted copy for sharing.
  • Font Viewer & Font Preview (TTF, OTF, WOFF) opens TTF, OTF, WOFF, WOFF2 and TTC fonts with a glyph grid, a type tester with variable axes and the license fields.
  • File Viewers Pack installs the PDF, table, Word, PowerPoint, HDF5 and tensor viewers in one step.

License

MIT. Gzip support uses fflate (MIT).

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft