Free · No signup · Runs in your browser

Convert CSV to TOML.

Drop a CSV, get a well-formed TOML array of tables. Numbers stay bare, booleans become true/false, strings and dates are quoted and escaped. Rename the table to match your config.

To convert CSV to TOML, drop or paste a CSV file — csvtodashboard parses it into rows and columns in your browser, then emits a TOML array of tables. Each row becomes a [[table]] entry with typed key = value pairs — numbers and booleans bare, strings quoted. Nothing is uploaded; the whole conversion runs on your device.

01 · How it works

Three steps, then done.

TOML wants types, not quoted-string soup. This converter reads each column and emits an `[[table]]` array — one table per row, `key = value` per column. Numbers come out bare, booleans as `true`/`false`, text and dates as properly escaped strings. Keys with spaces or punctuation get quoted automatically so the output always parses.

i. drop

Drop your file

Drag a CSV in from Finder, click to choose, or paste the rows straight into the input pane.

ii. detect

We read the shape

Each column's type is inferred so numbers, booleans and dates land in the right TOML form — not strings everywhere.

iii. use it

Copy, download, or dashboard

Copy the TOML, download a .toml file, or hit 'Build dashboard' to see what's inside the data.

02 · Why ours

Typed TOML by default.

Most converters quote every value, which technically parses but defeats the point of a typed config format. Ours emits the types TOML was built for.

  • 01

    Correct TOML types

    Numeric columns stay bare integers and floats, booleans become true/false, and text and dates are quoted with full escaping — the way you'd hand-write it.

  • 02

    Safe escaping & keys

    Backslashes, quotes, newlines and control characters are escaped per the TOML basic-string spec. Column names with spaces or punctuation are auto-quoted so nothing breaks the parser.

  • 03

    Local-first

    Your file is parsed and converted entirely in your browser. Nothing is uploaded — open DevTools, Network tab, and watch zero requests fire.

  • 04

    One click to dashboard

    If the data raised a question, hit 'Build full dashboard' and the same rows open in our visualization tool.

"I needed a quick conversion and ended up making a dashboard. Didn't expect that."
— anyone who clicks the CTA
Good to know

csv to toml notes.

Format-specific details worth knowing before you convert CSV to TOML.

  • Array of tables

    Each row becomes a [[name]] entry with key = value pairs — the idiomatic TOML shape for a list of records.

  • Typed and quoted

    Numbers and booleans are written bare; strings are quoted with quotes and backslashes escaped. TOML is strongly typed, unlike INI.

  • Native date-times

    TOML has first-class date-time types, so ISO-8601 date columns can be emitted as real dates rather than quoted strings.

03 · FAQ

to toml questions.

How does the output structure the rows?
Each CSV row becomes one TOML table in an array, written as `[[rows]]` followed by `key = value` lines for every column. An array of tables is the standard TOML idiom for a list of records, so the result loads cleanly with any TOML parser as an array under the table name.
Yes. There's a field for the table name (default `rows`), so you can match the key your config or Rust/Go/Python loader expects — for example `[[servers]]` or `[[users]]`. If the name has spaces or punctuation it's automatically quoted.
From column type inference. All-numeric columns emit bare numbers via our number parser, true/false-style columns become `true`/`false`, and everything else — including dates — is emitted as a quoted, escaped string. Empty cells become an empty string `""` because TOML has no null.
Strings use TOML basic-string escaping: backslashes, double quotes, tabs, newlines and other control characters are escaped (`\\`, `\"`, `\n`, `\uXXXX`). The output is guaranteed to round-trip through a compliant TOML parser.
Native TOML datetimes are strict about format, and raw CSV dates are often ambiguous (03/04/2025) or partial. We quote them as strings by default so nothing is silently mis-parsed. Toggle 'Normalize dates to ISO 8601' to rewrite them to a clean ISO string first.