en

TOML to YAML

Convert a TOML file to YAML locally - indented config for CI and Docker, no upload, right in your browser.

Running locally on your device ...

Running locally on your device ...

0%

Is my file uploaded?

No. Everything runs in your browser - your file never leaves your device. How this is verifiable

No upload100% local
Your content stays with youno third-party access
Hosted in GermanyGlobal Content Delivery
Independently auditedTLS A+ · HTTP headers A+

TOML is the configuration format of the Rust and Python toolchains - a Cargo.toml or pyproject.toml with sections in square brackets and plain key-equals-value lines. YAML pursues the same goal of readability, but uses indentation instead of brackets and is the lingua franca of CI pipelines, Docker Compose and Kubernetes. This tool reads your TOML file and writes the same structure as YAML.

The conversion runs entirely locally in your browser: smol-toml reads the TOML, js-yaml writes the YAML, both pure JavaScript. Tables become mappings, sub-tables (such as [server.meta]) become nested mappings, arrays of tables become sequences, TOML date/time values become real YAML timestamps. From a bracketed .toml you get an indented .yaml ready to drop into a CI pipeline.

This closes the round-trip: YAML to TOML and now TOML to YAML are both available locally when you migrate a configuration between the two worlds. It stays honest about it: a TOML document always has a table at the root, so the YAML produced is always a mapping. Very large TOML integers beyond the safe JavaScript range are rejected with a clear message instead of being converted with precision loss. Nothing is uploaded.

Specifications

Specifications
Input formatsTOML
Output formatYAML
Batch processingNo
ProcessingLocally in your browser (JavaScript)
File uploadNone

In 3 steps

  1. Drop or pick your TOML file.
  2. The tool converts it into YAML.
  3. Download the YAML file.

Limitations: TOML always parses to a table, so the output is always a YAML mapping. Sub-tables become nested mappings, arrays of tables become sequences, date/time values become YAML timestamps. Very large integers beyond the safe JavaScript range are rejected with a clear message (no lossy conversion). TOML comments (#) are lost, since they are not read in when parsing. Invalid TOML is rejected with a clear error.

FAQ

Is my file uploaded?

No. The conversion runs entirely locally in the browser - nothing is sent.

Does it work with a Cargo.toml or pyproject.toml?

Yes. Cargo.toml, pyproject.toml and other TOML files are parsed directly and written as YAML.

How are date/time values handled?

TOML date/time values are emitted as real YAML timestamps, not as strings.

What happens with very large integers?

TOML i64 values beyond the safe JavaScript range are rejected with a clear message instead of being converted with precision loss.

Does the reverse work too?

Yes, with our "YAML to TOML" tool.

Related tools

TOML to JSON · YAML to TOML · YAML to JSON · GLB to glTF · glTF to GLB · XML to YAML