/tools/csv-viewer
Large CSV Viewer & Editor
Inspect RFC 4180 CSV and TSV as logical records, keep identifiers as text, make bounded edits and export locally.
1. Source
Choose local CSV or TSV
UTF-8 · one file · source remains immutable
2. Search and filters
Find rows without changing the index
3. Virtual table
Rows and columns
4. Row details and edit overlay
Selected row
5. Profiles
Column evidence
6. Export
Preview, redact and export
No redaction category is selected automatically. Unchanged CSV records are copied byte-for-byte; edited, redacted or column-filtered records are reserialised.
Preview the export to confirm its active filters, edits and redaction categories.
The first 20 matching records will appear here after preview.
/architecture
A local viewer built around CSV records
Logical record streaming
One MiB slices preserve escaped quotes, split Unicode, CRLF and embedded newlines while sparse checkpoints support seeking.
Bounded DOM
Only a small window of rows and columns exists in the page. The selected row is loaded separately for full inspection.
Text stays text
Leading zeroes, long integers and date-like identifiers remain exact strings unless JSON inference is explicitly enabled.
Immutable source
Edits and exclusions live in a bounded overlay. Downloads receive deterministic filtered or redacted names.
/limits
Deliberate large-file boundaries
Individual record inspection is bounded at 8 MiB, profiling covers the first 2,000 columns, rendered cells remain below 3,000, and a browser without Save File support uses a 100 MB Blob fallback. Numeric multi-gigabyte claims remain withheld until the opt-in Chromium benchmark passes.
/faq
CSV viewer questions
Can it open TSV and semicolon-delimited files?
Yes. Comma, tab, semicolon and pipe detection is automatic, with a manual override that rebuilds the index.
Can I sort or insert rows?
Not in version one. Global sorting, insertion and reordering conflict with bounded operation. Cell/header edits and row/column exclusions are supported.
Are exposure findings proof?
No. They are conservative, masked signals for operator review. Redaction never activates without an explicit category choice.