What this tool does
The header row becomes the table header, a | --- | separator follows, and each CSV row becomes a table row. The result is a GitHub-flavoured pipe table you can paste straight into a README, an issue or a pull request description.
The input delimiter is detected, so a semicolon-separated export works unchanged.
What is escaped, and what is not
Only the pipe. A cell containing x|y is written x\|y, because an unescaped pipe would split the cell in two.
Everything else stays Markdown and is rendered as such: *bold* comes out bold, [text](url) becomes a link, # at the start of a cell stays a literal # because headings need their own line. This is deliberate — a table of links or emphasised values is the common case — but it means a cell holding literal asterisks will not survive as written.
The step that cannot be undone
A pipe table row is one line. A CSV field may contain a line break, and there is nowhere to put it: such a cell is flattened, the break replaced by a space.
That is the only lossy part of this conversion, and no option can fix it — the format simply has no room. If the line breaks carry meaning, keep the data in CSV, or build an HTML table instead.
A header row alone is not enough: the tool needs at least one data row to produce a table.
Private by design
Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.