Quick JSONL Viewer is a VS Code extension that opens .jsonl files in a
readonly, formatted custom editor designed to stay responsive with large JSON
Lines files.
You can also use it in IDEs that are based on VS Code (such as Cursor).
To install it, simply search its name "Quick JSONL Viewer" in the "Extensions" side panel of VS Code (or Cursor, etc.).
It is hosted both on VS Code marketplace and Open VSX:
- Visual Studio Marketplace: https://marketplace.visualstudio.com/items?itemName=jsh9.quick-jsonl-viewer
- Open VSX: https://open-vsx.org/extension/jsh9/quick-jsonl-viewer
- Open
.jsonlfiles in a readonly custom editor with Pretty print, Raw (wrapped), and Raw (unwrapped) modes. - See useful file context, including file size, total lines, and last modified time.
- Search rendered JSONL rows with VS Code's webview Find widget.
- Keep large files responsive with configurable preview limits and indexed virtual rendering.
"Pretty print" view showing formatted JSONL rows and file metadata:
You can choose to preview JSONL from a certain line other than the initial one:
"Raw (wrapped)" view:
"Raw (unwrapped)" view:
"Raw contents" view, as if this extension isn't installed:
Open any .jsonl file in VS Code and Quick JSONL Viewer opens it with the custom viewer by default.
Git staged and unstaged JSONL diffs stay in VS Code's native diff editor.
You can also run Quick JSONL Viewer: Open in Quick JSONL Viewer from the command palette, the editor title menu, or the Explorer context menu for a .jsonl file.
Use Ctrl+F on Windows/Linux or Cmd+F on macOS to search text in the rendered viewer contents. In indexed virtual views, Find searches the rows currently rendered by the viewport plus the viewer's small overscan buffer; scroll to search another range.
quickJsonlViewer.maxLines: number of lines to show. Default is20.quickJsonlViewer.maxLines: 0: index the full file and render visible rows on demand.- The info bar
Show [input] linescontrol updatesquickJsonlViewer.maxLinesglobally when you press Enter or leave the field. - The info bar
Start at line [input]control changes the first displayed line for the current viewer when you press Enter or leave the field. quickJsonlViewer.indent: number of spaces for Pretty print formatting. Default is2; minimum is1.quickJsonlViewer.autoRefresh: automatically refresh open viewers when the underlying file changes. Default istrue. The info barAuto-refreshcheckbox updates this setting globally; set it tofalseto refresh manually from the viewer toolbar.quickJsonlViewer.indentGuides: show vertical indentation guides in Pretty print mode. Default istrue. The info barIndent guidescheckbox updates this setting globally for all open viewers.
When quickJsonlViewer.maxLines is 0 or a large positive preview count, Quick JSONL Viewer does not send the whole file to the webview for Pretty print, Raw (wrapped), or Raw (unwrapped). It builds a byte-offset line index with progress, then the webview requests only the visible row range while scrolling. This keeps DOM size bounded for very large files.
Raw contents opens the file in VS Code's default text editor. The extension's top info bar is not available there, but you can return to the viewer with Open in Quick JSONL Viewer from the editor title, Explorer context menu, or command palette.
npm install
npm test
npm run formatnpm install installs Husky hooks automatically. The pre-commit hook runs npm test.
Prettier formats the project with an 80-column print width, and npm test
checks formatting before compiling and running the test suite.
Use VS Code's extension host launch flow to test the viewer manually with the small and large files in sample-data/.
The Run Extension launch configuration opens sample-data/sample-data.jsonl and sample-data/large-placeholder.jsonl through the internal quickJsonlViewer.openSampleFiles command. These .jsonl files are local-only test fixtures and are ignored by Git. Generate the large file with:
python3 sample-data/generate_large_jsonl.pyCreate or copy a small sample-data/sample-data.jsonl locally when using the launch flow.




