Formats

TSV

CSV with tabs, which removes the comma argument and keeps every other one.

How it opens

TSV parses into the records shape — many rows of the same shape, browsed as a list with a per-row view.

Nothing is chosen by file extension alone: every adapter scores the text itself and the highest confidence wins. When two are close enough that guessing would be a coin flip, the app asks instead of picking.

  • extensions · .tsv, .tab
  • media type · text/tab-separated-values
  • shape · records
  • extra diagnostics · this adapter lints beyond what parsing reports

Fixing

A broken TSV document gets a verdict — “Not valid TSV yet · N fixable” — and a list: every problem on its line, with the fix’s name, before anything changes. Fix all rewrites only the lines it names and leaves every other byte as pasted; ⌘Z puts the original back exactly. Typing a fix yourself counts the verdict down with no click.

A fix that could say something your document did not — a judgment call — is reported and never applied unless you ask.

Nesting

A TSV value can hold another system's output — a stringified body, an escaped document. Unpack opens it in place, names the parser that opened it, and repeats until nothing parses. Pack restores the original text byte for byte rather than re-serializing from the tree.

A sample

The document below is the fixture this adapter ships and its own tests parse — not an illustration written for this page.

items_export.tsv
BRD-OAK-002	Oak End Grain Cutting Board	1	124.00
OIL-MNRL-008	Food Safe Mineral Oil 8oz	2	12.50
KNF-CHF-201	Chef Knife 8in	1	89.00
the CSV adapter with a different delimiter