twilight ventures

jsonl lens

JetBrains Marketplaceplugin 33397free viewer, Pro subscription

JSONL Lens opens a .jsonl file in place, in IntelliJ IDEA and the other JetBrains IDEs. The records are indexed in the background by byte offset and read as you page, so the first screen is up before the index has finished, whatever the size of the file. Find looks for a word or a regular expression anywhere in a record, over every record in the file. The grid shows the records as rows with the nested fields flattened into columns of their own, and the schema tab sums up a sample. With Pro, a filter on named fields keeps only the records whose values satisfy it, scanned across the whole file, and the page or the matches go out as JSONL, CSV or Parquet. We benchmark the index on a file of more than 1 GB that the test suite writes for itself.

opens
.jsonl and .ndjson files, and their .jsonl.gz and .ndjson.gz forms; never plain .json, and the text editor stays the tab that opens first
runs on
IntelliJ IDEA, PyCharm and every JetBrains IDE from 2024.2 on, with no upper build
store
JetBrains Marketplace, plugin 33397
newest version
1.7.0, published 2026-09-09
pro
a subscription with its own 30-day trial; the price is quoted below as the store shows it
JSONL Lens in IntelliJ IDEA: a grid of records with the selected record pretty-printed underneath
checkout-events.jsonl as a grid: fields as columns, the selected record pretty-printed underneath, page 1 of 24.

free

  • Any size: a streaming line index with progress; browse records while it runs, and page to the last line with no record cap
  • Find in file: full-text search across every record, or a regular expression, with a case toggle, next and previous hit, highlighted hits and a matches-only mode that pages through the hits alone
  • Record browser: a paged table with raw and pretty-printed views and a jump to any record number
  • Grid view: records as rows and fields as columns, a nested object flattened into dot-path columns, a nested value shown as one-line JSON in its cell
  • Schema stats: field names, types, null and missing rates, min, max and average for numbers, distinct counts, computed on a labeled sample of the first 1000 and 1000 random records
  • Compressed files: a .jsonl.gz written in blocks is read in place with no temp copy; any other .jsonl.gz is decompressed to a temporary file, with the temp space it needs named first
  • Encodings: EUC-KR, Shift_JIS and the Polish code pages detected on open, with an Encoding menu to switch by hand
  • Malformed input: bad lines, blank lines, CRLF endings and oversized records are reported, and the file still opens
  • Themes: twelve looks for the record table; trying one is free for the open window

pro

  • Filter queries: keep only the records where fields match, for example lang == "en" && score >= 0.5, scanned across the whole file, then browse just the matches
  • Export: write the current page, the search matches or the filter matches to a new .jsonl, CSV or Parquet file; in Parquet a nested value lands as a JSON text column
  • Full-file stats: exact schema stats over every record, not a sample
  • Kept themes: a chosen look stays set from file to file

price, as the store shows it

Pro is $1.50 a month or $15 a year for individual use, $3 or $30 for organizations. Each Lens plugin comes with its own free 30-day Pro trial. A year of continuous subscription earns JetBrains' perpetual fallback license: the version available when that year started stays yours for good, including its fixes.

where it stops

JSONL Lens with Matches only on: the records that carry the search term, paged on their own
Find with Matches only: the 44 records that carry "timed out", paged on their own, record 53 selected.

what's new

more

Pricing, invoices and licensing questions go to [email protected]; anything else about the product to [email protected].