chain
T
TOML to YAML error
⌃⏎ run · clear · / focus input
// about this tool

TOML to YAML Online

Updated 2026-08-04

// how to use

  1. 1 Paste your TOML — a Cargo.toml, pyproject.toml or any config file.
  2. 2 The YAML appears as you type, in block style with 2-space indentation.
  3. 3 Copy it into your CI pipeline, Kubernetes manifest or Docker Compose file.

// examples

A table
Input
[database]
ports = [ 8000, 8001 ]
enabled = true
Output
database:
  ports:
    - 8000
    - 8001
  enabled: true
An array of tables
Input
[[servers]]
name = "alpha"

[[servers]]
name = "beta"
Output
servers:
  - name: alpha
  - name: beta
A multi-line string
Input
notes = """
line one
line two"""
Output
notes: |-
  line one
  line two

// common uses

Porting a Rust or Python project's config into a CI pipeline Turning a TOML config into a Kubernetes ConfigMap or Compose file Reading a TOML file in a format your team already knows Comparing two configs written in different formats

// faq

Why convert TOML to YAML at all?
Because the ecosystem split. Rust and Python tooling settled on TOML, while CI systems, Kubernetes and Docker Compose settled on YAML. Anyone wiring the two together ends up translating a config by hand, which is where the typos come from.
Does it handle arrays of tables?
Yes. Repeated `[[servers]]` headers become a proper YAML sequence of mappings. Inline tables, dotted keys, multi-line strings and underscore-separated numbers are all supported — it is a full TOML 1.0.0 parser.
What happens to comments?
They are dropped. Comments are not part of the parsed document in either format, so there is nothing to carry across. Keep whichever file is your source of truth and generate the other.
Why is a version number like 1.7.1 quoted in the YAML output?
It is not, but a value like `1.0` is — because unquoted, YAML would read it back as the number 1.0 and lose the trailing zero. Quoting is how the converter keeps a string a string.
Does my config get uploaded?
No. The conversion runs entirely in your browser, so tokens and connection strings in the file never leave your machine.

Use this via API

Get a free API key →
curl -X POST https://thesnaptools.com/api/v1/tools/toml-to-yaml \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"toml":"[database] ports = [ 8000, 8001 ] enabled = true"}'
Esc
↑↓ navigate open Esc close