Tab-separated parsing with three output shapes
TSV and Excel clipboard paste are the same wire format - tab-separated rows with newline-terminated lines. This tool uses the CSV parser with the separator forced to tab, which means you get RFC 4180 quoting handling for the rare case your TSV source exports quoted cells (tabs or newlines inside a field).
Rows mode (default) joins cells with your Row join string (default ` | `). First column only pulls column 0. Cells flattens every cell into its own output line. Skip header drops the first row when your paste starts with column labels.
If your source is copied directly from Excel, Google Sheets, or Numbers, use the Excel tool - it points at the same engine but names the flow by the more common user intent. If your source is a `.tsv` file or a programmatic export, this is the right entry point.
How to use convert tsv to a list
- 1Paste your TSV data into the input panel
- 2Pick Output mode: Rows (default), First column only, or Flatten every cell
- 3Set Row join to change the cell separator in Rows mode (default ` | `)
- 4Toggle Skip header to drop the first row if it is a column label
- 5Toggle Trim + Dedupe for standard post-processing
Keyboard shortcuts
Drive ListShift without touching the mouse.
What this parser actually does
Same engine as the CSV and Excel-paste parsers with tab as the forced separator.
Tab-forced CSV parser
Internally the op delegates to `csv_parse` with `separator: "\t"`. You get the same RFC 4180 quoting handling, the same three output modes, and the same skip-header + trim + dedupe behaviour - just locked to tab so the UI does not show a separator selector.
Three output shapes
Rows joins each row's cells with your Row join string. First column only pulls the leftmost column from every row. Cells flattens the grid into one item per cell.
Quoted cells with embedded tabs/newlines handled
TSV usually does not need quoting because tabs are rare in user data, but when a source does quote a cell (embedded tab, newline, or double quote), the parser decodes it correctly via the CSV engine.
Skip header for data-only output
Off by default. Turn on when the first row of your paste is a header label and you want only the data rows in the output.
Trim + Dedupe post-processing
Trim (on by default) strips edge whitespace per output item. Dedupe (off) drops duplicates case-insensitively. Both apply after parsing and joining.
Worked example
Default Rows mode: header + three data rows, cells joined with ` | `.
Name Age City Alice 30 Oslo Bob 25 Stockholm Carol 42 Copenhagen
Name | Age | City Alice | 30 | Oslo Bob | 25 | Stockholm Carol | 42 | Copenhagen
Settings reference
How each option shapes the parsed output using the sample above.
| Setting | What it does | Effect on the sample |
|---|---|---|
| Output: Rows (default) | Each row's cells joined with Row join | Four lines; cells joined with ` | ` |
| Output: First column only | Only column 0 from each row | `Name`, `Alice`, `Bob`, `Carol` |
| Output: Flatten every cell | Every cell becomes its own line | 12 lines, one per cell |
| Row join: `,` | Alternative cell separator in Rows mode | `Name,Age,City` / `Alice,30,Oslo` / ... |
| Skip header: on | Drops the first row | 3 data rows output without header |