Skip to main content

TOML to YAML Converter

Convert TOML to YAML. Handles nested tables, arrays of tables, and TOML's typed dates/datetimes (rendered as YAML timestamp scalars). Runs entirely in your browser.

Input

Drop a file or browse
One file · text
Or

Output

YAML output
 
Was this helpful?

Guides

Paste TOML, get YAML. This free online TOML to YAML converter turns a Cargo.toml, pyproject.toml, .hugo.toml or any other spec-compliant TOML document into clean, indented YAML — the format most CI pipelines (GitHub Actions, GitLab CI), Kubernetes manifests and Docker Compose files expect. Conversion happens as you type, with no upload and no sign-up.

How to use it

  1. Paste your TOML into the input box, or upload a .toml file with the uploader — its contents drop straight into the editor.
  2. The YAML output appears instantly on the right, syntax-highlighted.
  3. Copy it, or download it as a .yml file.

TOML [tables] become nested YAML mappings, and TOML's [[array-of-tables]] blocks (used for repeated table-shaped records, like a list of dependencies or servers) become YAML sequences of mappings. Plain TOML arrays of strings, numbers or booleans become YAML block sequences.

Does it handle nested tables and arrays of tables correctly?

Yes. A dotted or nested TOML table ([database.credentials]) becomes a nested YAML mapping, indented under its parent key. A TOML [[array-of-tables]] — the syntax TOML uses for a list of records that each share the same shape — becomes a YAML sequence where each item is its own mapping, exactly mirroring the table's fields.

What happens to TOML dates?

TOML has four native date/time types — offset date-time, local date-time, local date, and local time — and YAML has its own native timestamp type, so this converter maps one to the other rather than falling back to a quoted string. An offset date-time like 1979-05-27T07:32:00Z becomes the YAML timestamp 1979-05-27T07:32:00.000Z; a local date-time, local date or local time keeps its own shape (1979-05-27T07:32:00.000, 1979-05-27, 07:32:00.000 respectively) without a spurious timezone being added. Millisecond precision is always shown, even when it's .000.

What happens to invalid TOML?

The input box shows a clear error message — TOML's own parser reports exactly what's wrong (an unfinished string, a redefined table, a missing value) and where, so you can fix the source rather than guess.

Is my data private?

Completely. The conversion runs in your browser using smol-toml to parse the TOML and the yaml package to write it back out — both small, well-maintained, pure-JavaScript libraries. Your TOML is never sent to a server, never logged and never stored, which matters since config files often carry hostnames, internal service names or other details you'd rather not upload anywhere.

Why convert TOML to YAML at all?

TOML is popular for application and package config (Rust's Cargo, Python's pyproject.toml, Hugo), but the surrounding infrastructure — CI/CD pipelines, Kubernetes, Helm, Docker Compose, Ansible — is almost universally YAML. This converter is the bridge: keep authoring your tool's native TOML config, then convert it to YAML when you need to feed the same data into a pipeline or manifest that only speaks YAML.

tomlyamlconverterconfigdeveloper

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.