Open and search huge JSON files in your browser
A developer-first JSON viewer that opens files other tools choke on. Streaming parse in a Web Worker, a virtualised tree, instant search, beautify, and TypeScript or JSON Schema generation. Your files are parsed locally and never uploaded.
What it does
| Capability | Detail |
|---|---|
| Open very large files | Streaming scan in a Web Worker, flat typed-array index, virtualised tree. How it works |
| Search | Keys, values or both, with regex, whole-word and case-sensitive matching. Search reference |
| Beautify and minify | Re-emitted from the parsed index with a configurable indent. Formatter |
| Compare two documents | Structural diff with aligned arrays, JSON Pointer addresses and an RFC 6902 patch export. Compare |
| Validate | First syntax error with line, column, offset and surrounding text. Validator |
| TypeScript | Interfaces or type aliases, optionality inferred from key frequency. Generator |
| JSON Schema | Draft 2020-12 or draft-07, with format and enum detection. Generator |
| Generate test data | Random JSON from a template — repeat counts, faker tags, seeded and reproducible. Generator |
| NDJSON and JSONL | Detected automatically and indexed as one document. JSONL viewer |
| Local by default | No upload, no account. What is and is not sent |
Why large JSON files break other tools
A text editor loads the document into a buffer, highlights all of it and builds an object tree. JSON.parse in devtools allocates a JavaScript object for every value, which turns a file that was compact on disk into something several times larger in the heap — and it does that synchronously, on the thread that also has to keep the window responsive.
JSONParse scans the text in a Web Worker into a flat index of typed arrays: offsets, kinds and parent links. Values are read out of the original text by offset when a row scrolls into view, and only the visible rows exist in the DOM. Opening a file costs roughly what reading it costs, once; everything after that is independent of its size.
Use it from a script or an agent
The same engine is available over HTTP at /api/format, /api/validate, /api/diff, /api/to-typescript, /api/schema and /api/mock, and as a remote MCP server at /mcp so an assistant can call it directly. See the API reference and the MCP guide. Documents sent to those endpoints do reach the server — the viewer remains the option where nothing leaves your machine.
Frequently asked questions
Is my JSON file uploaded anywhere?
No. The viewer reads the file with the browser File API and parses it in a Web Worker on your own machine. No document content is transmitted. You can confirm it in the Network panel of your browser devtools.
How large a file can it open?
Files in the hundreds of megabytes are the design target. The application indexes up to 40 million nodes; beyond that the practical ceiling is how much memory your browser tab can allocate.
Why is it faster than my editor?
It never builds a JavaScript object per value. A Web Worker scans the text into a flat typed-array index, values are read from the original text by offset when needed, and the tree renders only the rows currently visible.
Does it handle NDJSON and log files?
Yes. Newline-delimited and concatenated JSON are detected automatically and indexed as one browsable document with multiple roots.
Is it free, and is there an account?
It is free, open source under the MIT licence, and there is no account or sign-in of any kind.
Can it compare two JSON files?
Yes. Compare mode diffs two documents structurally rather than as text, so reordered keys and reformatted whitespace are not changes, arrays are aligned before they are compared, and the result exports as an RFC 6902 JSON Patch.
Can it generate random JSON test data?
Yes. The generator builds a document from a template in which any string may hold a tag such as {{fullName()}} or {{integer(1,100)}}, and an array beginning with a repeat tag repeats the element after it. Output is seeded, so the same seed reproduces the same document, and it will happily generate hundreds of megabytes.
Can an AI agent or a script use it?
Yes. There is an HTTP API for formatting, validation, type generation and test-data generation, and a remote MCP server at /mcp that exposes the same operations as tools to agents.