Drop a CSV, TSV, JSON or JSONL file. It opens instantly, even at a million rows. Everything happens inside your browser — the file never leaves your machine. No account, no upload, no limit on file size.
Opening a 200 MB CSV is oddly hard. Excel gives up, most online viewers ask you to upload the file to a server you know nothing about, and desktop tools want an install and a licence.
So people paste production data into random web forms. Customer lists, exports with email addresses, database dumps. That is a data breach with extra steps, and the privacy policy saying "files are deleted after one hour" is not something you can verify.
Loupe has no server. It is a static page; the parsing, filtering and sorting all happen in your browser. You can turn off your network after the page loads and it still works. That is the whole point — the promise is structural, not a policy you have to trust.
| Large files | Read in 4 MB slices with an incremental parser, so memory stays flat. Only the rows on screen are rendered. |
|---|---|
| Format guessing | Detects the delimiter by column consistency, not by counting commas — so prose with commas in it still parses. |
| Encodings | UTF-8, Shift_JIS, EUC-JP, Windows-1252, Latin-1. Most tools assume UTF-8 and mangle the rest. |
| Messy input | Quoted newlines, escaped quotes, ragged rows, missing headers, broken JSON lines — kept and shown rather than dropped. |
| Column summary | Missing counts, distinct counts, ranges and the most common values for every column, computed in one pass. |
| Types | Each column is typed from a sample, so numbers sort as numbers and align right. |
| Export | Filtered results back out as CSV (with BOM, so Excel opens it correctly) or JSON. |
Do not take my word for it. Load the page, turn on airplane mode, then drop a file.
It will work. There is no fetch() in the source, and the source is
right here.
This page shows you the file. Loupe Pro runs SQL against it — the same parser and table, plus a query engine:
SELECT city, COUNT(*) AS n, AVG(amount) AS avg
FROM data
WHERE status = 'shipped'
GROUP BY city
HAVING n > 10
ORDER BY avg DESC
200,000 rows aggregate in about 150 ms. It is a single HTML file with no server and no network calls at all, so you can put it on a shared drive, an internal server or an air-gapped machine. A commercial licence for unlimited seats inside one organisation is included, which is usually what makes it possible to expense.
Loupe Pro — $29, one file, yours forever
Everything on this page stays free and MIT-licensed. Pro adds SQL and the licence document. 30-day refund, no questions.
Everything is held in memory, so the practical ceiling is roughly what your browser will
give a tab — usually a few hundred megabytes of CSV. Beyond that, use a real database.
A plain .json file has to be parsed whole; .jsonl streams.