twilight ventures

jsonl lens for vs code

Open VSXVisual Studio Marketplacefree viewer, Pro by subscription

Install from Open VSXInstall from the Visual Studio Marketplacefree to read; the Pro trial runs 30 days on each machine

Take the headlamp into VS Code: a gigabyte-scale JSONL file lights up while its index is still being built, and the index of offsets is the only thing kept in memory.

JSONL Lens for VS Code opens a .jsonl or .ndjson file in the editor. Records are indexed by byte offset in one pass and read on demand, so the 1.02 GB file of 5,000,000 records in the screenshot below is on screen while its index builds (3.7 s for that file), and what the extension keeps in memory is the list of offsets rather than the file. The viewer is free: the grid, find with regular expressions, the schema tab and the record detail. Pro, a subscription shared with Parquet Lens and Log Lens for VS Code, adds whole-file filter queries, export to JSONL or CSV, exact stats and grid themes, and it is on from the first open, since each machine gets a 30-day trial with no key to enter.

opens
.jsonl, .ndjson, .ldjson and .jsonlines files, gzipped or not; never plain .json
runs on
VS Code 1.90 and every later release, with no upper bound; the Open VSX build serves VSCodium and the other editors that use that gallery
stores
Open VSX and the Visual Studio Marketplace
newest version
0.6.0, published 2026-10-27 on both stores
pro
one subscription from Polar, one key for the three extensions; a 30-day trial on each machine first
JSONL Lens in VS Code: a five-million-record file as a grid with the Pro filter box above it
checkout-events.jsonl in VS Code: 5,000,000 records and 1019.9 MB, the grid with 11 sampled columns, the Pro filter box above it.

free

  • Any size: a line index built in one pass with live progress; browse records while indexing runs
  • Find in file: full-text search across every record, or a regular expression tested against each record on its own; a case toggle, next and previous, and matches only to page through the hits alone
  • Go to row: type a record number, Enter, and the grid is there (Ctrl+G for the box)
  • Grid view: records as rows, fields as columns, the column set from a sample of the file, nested fields as dot paths such as user.plan
  • Schema tab: every field path seen in a sample, with present, missing and null counts, types, min, max, average, distinct strings and example values
  • Record detail: the selected record pretty-printed with key order and int64 precision preserved, copied in one click
  • Robust: malformed lines, blank lines, CRLF endings and oversized records are reported, never fatal
  • Reads in place: the file is never copied or converted; the index is thrown away when the tab closes
  • Private by construction: no account, no telemetry; the free viewer makes no network calls

pro

  • Whole-file filter queries: level == "error" && status >= 500, tested against every record in the file; the grid becomes the matching set
  • Export: all records, the filter matches or the search matches, to JSONL or CSV, with a cancellable progress bar, never over the source file
  • Exact stats: the schema tab's full scan reads every record instead of a sample
  • Themes: twelve looks for the grid, each tuned for light and dark editors; trying one is free for the window, keeping it is Pro

price, as the store shows it

$4.90 a month or $49 a year personal, $9.90 a month or $99 a year business: one key for all three extensions, and Pro stays on in every build while the subscription runs. a personal key activates on up to 3 machines, a business key on 10, all three extensions on each (each extension on each machine is one activation: 9 on the personal key, 30 on the business key); release a machine from the Polar customer portal. when the subscription ends, Polar revokes the key and Pro turns off at the extension's next check, about once a week; the free viewer stays.

one Lens Pro key covers JSONL Lens, Parquet Lens and Log Lens for VS Code, but the three do not pass the key between them. paste it into each one you use, each paste being one activation call of its own, and Remove license key in that extension can release it again.

The keys are sold through Polar: a personal key or a business key. A key makes one activation call to Polar when you paste it, a license check about once a week after that, and one release call when you choose Release and remove. While Polar cannot be reached, the check is tried again at every start and once a day. The trial makes no call, and the Get Pro and review buttons hand a store page to your browser rather than fetching anything themselves.

The JSONL Lens schema tab in VS Code: per-field counts, types and examples from a sample of the file
The schema tab: 2,000 sampled records, present, missing and null counts per field, Full scan (Pro) for the exact numbers.

what's new

more

Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.