Free dev tool · runs in your browser

Loupe — Large File Viewer

Open and search files too big for your editor — multi-gigabyte logs, CSVs, and JSONL. Regex search, instant scrolling, gzip support, and a timeline that shows where your matches are. Nothing is uploaded.

🔒 100% private — your file is never uploaded, it stays on your device

Drop a file here

Logs · CSV · TSV · JSONL · plain text · or their .gz versions · any size

Indexing…
file.log

Open files that crash your text editor

VS Code, Sublime, and Notepad all try to read the whole file into memory, so a multi-gigabyte log brings them to their knees or refuses to open at all. Loupe takes the opposite approach. It streams the file in chunks to build a tiny line index, then reads only the few kilobytes you are actually looking at. Memory stays flat whether the file is 10 megabytes or 30 gigabytes, so you can open the file that was too big to open.

How it works

When you open a file, a background Web Worker scans it once to count the lines and record a sparse map of byte offsets. Scrolling then seeks straight to the right spot and decodes just the visible window, so jumping to line 40 million is as fast as jumping to line 40. Search runs as a second streaming pass in the worker, collecting every match and the position of each one, then drawing a vertical timeline so you can see at a glance where the errors cluster. Gzipped files are decompressed on the fly with the browser's built-in DecompressionStream — drop a .gz straight in.

Why it is private and fast

There is no server in the loop. The file is read with the browser's File and Streams APIs and processed in a worker on your own machine, so it never leaves your device. That is what makes it safe for production logs with customer data in them, and it is also why it is instant: there is no upload to wait on and no queue to sit in.

How can it open a file bigger than my RAM?

It never holds the whole file in memory. It streams through the file once to build a sparse index of line offsets (a few megabytes even for a huge file), then reads only the small slice you are currently viewing. Memory usage stays bounded regardless of file size.

Is my file uploaded anywhere?

No. Everything happens locally in your browser. Your file is never sent to a server, which is why it works on private and production logs.

Does it support gzipped logs?

Yes, in browsers that support DecompressionStream (Chrome, Edge, and recent Safari and Firefox). Drop a .gz file and it is decompressed on the fly. If your browser lacks it, plain files still work.

What about regular expressions?

Toggle the .* button to treat your query as a JavaScript regular expression, with an optional case-sensitive toggle. Otherwise it is a fast plain-text search. Matches are highlighted inline and mapped on the timeline.

What file types does it handle?

Any line-based text: server and app logs, CSV, TSV, JSONL/NDJSON, and plain text dumps, plus their gzipped versions.

I build a tool like this every day.

Senior full-stack engineer, available for senior or contract work, fully remote. See the rest of the lab or get in touch.