jsonl lens for vs code
Open VSXVisual Studio Marketplacefree viewer, Pro key bought once
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, bought once, 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 14-day trial with no key to enter.
- opens
- .jsonl and .ndjson files; never plain .json, and not the .gz forms
- 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.5.3, published 2026-09-11 on both stores
- pro
- one key from Polar for both extensions, bought once; a 14-day trial on each machine first

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
$49 personal, $99 business, one-time, includes 12 months of updates. 14 day refund. a personal key activates on up to 3 machines, a business key on 10; release a machine any time from the Polar customer portal.
one Lens Pro key covers both JSONL Lens and Parquet Lens for VS Code, but the two 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. The extension talks to Polar at two moments only. Pasting a key makes one activation call, and choosing Release and remove when you remove a key makes one release call. There is no call at startup, none on a timer and none during the trial, and the Get Pro and review buttons hand a store page to your browser rather than fetching anything themselves.

what's new
- 0.5.3published 2026-09-11
"Matches only", a button beside the match arrows, pages the grid through the records the search hit and nothing else. the row numbers stay the file's, so a hit on record 4,812 still says 4,812, and the counter adds "matches only" while the button is down. a new search while it is down narrows to the new hits; a search that finds nothing lets the whole file back in; under a whole-file filter the button narrows the filtered view. free, like the rest of find.
go to row: a number box left of the search box, Ctrl+G puts the cursor in it. type a record number, press Enter, and the grid scrolls to that record and selects it. under a filter or matches only the number is still the file's record number, and when that record is not in the view the grid lands on the next one that is.
the license check now pins the Polar API version it was built against, so pasting a key works the same after Polar moves its default on October 1.
- 0.5.2published 2026-09-09
duskhollow, abyss, obsidian and moonlit garden join the eight looks under "JSONL Lens: Pick theme". each is tuned for light and dark editors and has its own line in the picker, "indigo dusk and lamp amber: the universe itself, a rose-lit stripe" for duskhollow and "black glass: silver text, magma numbers, a cold blue for structure, the darkest stripe of the set" for obsidian. trying one is free: the pick tints the JSONL Lens tabs open in the window and is not saved, so a new tab and the next start open in the default look; keeping a theme is pro. the default look never changes.
the review ask opens the store the editor installed from, under the id that store holds: jsonl-lens-viewer on the VS Code Marketplace, jsonl-lens on Open VSX. VS Code and VS Code Insiders get the review page on the Marketplace, and the ask reads "If JSONL Lens is useful to you, a short review on the VS Code Marketplace helps us decide what to work on next." any other editor with an extension gallery, VSCodium among them, gets the extension page on Open VSX, and the ask reads "If JSONL Lens is useful to you, a short review on Open VSX helps us decide what to work on next." before this release every host was sent to the Marketplace page under jsonl-lens-viewer.
- 0.5.1published 2026-09-09
the grid reaches the end of a big file. the table behind the grid was as tall as every record it stood for, 23 px each, and Chromium stops a table at its layout limit divided by the display scale: about 33.5 million px at 100%, 22.4 million at 150%, 16.8 million at 200%. so the scrollbar ran out at record 1,458,888 on a 100% display, at 972,592 on a 150% one and at 729,444 on a 200% one: the records below could not be scrolled to, and a search hit among them could not be jumped to. the table now stays under the limit at every scale, 20,000,000 px up to about 160% and less above that, and the scrollbar position is mapped to a record through the ratio between the two heights, so a 5,000,000-record file scrolls to its last record and a hit at the end lands on it; a file that fits under the cap draws exactly as before. the two spacer rows that stand in for the records not drawn take their height through the style object now, which the webview's content policy allows where it dropped the inline attribute the grid wrote before, so the grid scrolls the whole file instead of the rows it had drawn. the Open in JSONL Lens entry in the explorer and tab menus no longer appears on .jsonl.gz and .ndjson.gz files, which the viewer cannot open; .jsonl and .ndjson keep it. the listing text changed as well: the opening paragraph says pro is on from the first open, a 14-day trial on each machine with no key to enter, and quotes the status bar line "Pro trial, 14 days left"; the marketplace description carries the same clause; a paragraph under the free list states what the viewer does with a file; and the pro section names the two buttons on every pro dialog, Enter license key and Get Pro, and says that one Lens Pro key covers both JSONL Lens and Parquet Lens for VS Code, each extension activating it on its own.
more
Pricing, invoices and licensing questions go to [email protected]; anything else about the product to [email protected].