YAML to TOML Converter
Convert YAML to valid TOML 1.0: nested maps become [tables], lists of maps become [[arrays of tables]], and anything TOML can't hold — like null — is flagged instead of silently dropped.
YAML to TOML Converter
Runs in your browser — nothing you enter is uploaded or stored.
Scratchpad auto-saved
How it works — in four simple steps
No signup and nothing to install — it all runs in your browser.
Add your YAML
Paste it into the left box, press Open file, or drag a .yaml file onto it. Sample loads a realistic example.
Set the options
Adjust the options above the boxes — the output updates instantly as you change them.
Check the result
Read the status line: it reports rows, keys and any value that couldn't be represented in TOML.
Copy or download
Copy the TOML or download it as a .toml file. Nothing was uploaded at any point.
Lists of maps become [[arrays of tables]]; null values are skipped and listed so nothing disappears silently.
Features
Native TOML dates
ISO-8601 strings such as 2026-10-21T09:30:00Z can be written as real TOML date-times instead of quoted strings.
Private by design
Parsing and conversion run in your browser with JavaScript — your data is never uploaded, logged or stored.
About the YAML to TOML Converter
Moving a configuration from YAML to TOML is common when a tool switches formats — Python projects consolidating into pyproject.toml, or Rust and Hugo projects standardising on TOML. The two formats share a data model, but TOML is stricter: the root must be a map, there is no null, and simple keys must be written before sub-tables in each section.
The converter parses the YAML (block maps and lists, inline [ ]/{ }, quoted strings, comments, block scalars), then writes TOML with the right ordering: scalar keys first, then [table] sections, then [[arrays of tables]]. ISO-8601 date strings can be written as native TOML dates. Strings get TOML's escapes, and keys that aren't bare-key safe are quoted.
Anything without a TOML equivalent is reported in the status line rather than guessed: null values are skipped and listed, and a YAML file whose top level is a list is wrapped under items because TOML documents must be tables.
Examples
A small deployment configuration in YAML with a null value, a date and a list of environments.
name: feather-deploy
released: 2026-10-21
maintainer: ~
build:
command: npm run build
output: dist
environments:
- name: staging
url: https://staging.example.com
- name: production
url: https://example.com
approval: truename = "feather-deploy"
released = 2026-10-21
[build]
command = "npm run build"
output = "dist"
[[environments]]
name = "staging"
url = "https://staging.example.com"
[[environments]]
name = "production"
url = "https://example.com"
approval = trueThis output was produced by the converter on this page with the default options — load it with the “CI config” preset above and change any option to see the effect.
How YAML maps to TOML
| In YAML | Becomes in TOML |
|---|---|
server: map | [server] section |
| List of maps | [[name]] per entry |
ports: [80, 443] | ports = [80, 443] |
released: 2026-10-21 | released = 2026-10-21 |
key: ~ | omitted, with a warning |
| Top-level list | wrapped as [[items]] |
Block scalar | | string with \n escapes |
Things that trip people up
- null has no TOML form. Replace
~/null with a real default before converting if the key must exist. - Anchors and merge keys.
<<: *defaultsisn't expanded by this parser (it's read as a plain key named<<); inline the values first. - Booleans spelled yes/no. Under YAML 1.2 (used here), yes and no are strings and stay strings in TOML. If your YAML was written for a YAML 1.1 tool that treated them as booleans, change them to true/false first.
- Mixed-type lists. TOML 1.0 allows them, but some older TOML 0.5 parsers reject arrays mixing types. Check the tool that will read the file.
YAML vs TOML at a glance
| Property | YAML | TOML |
|---|---|---|
| Specification | YAML 1.2.2 (2021) | TOML 1.0.0 (2021) |
| File extension | .yaml / .yml | .toml |
| Media type | application/yaml (RFC 9512) | application/toml |
| Data types | string, int, float, bool, null, map, sequence (+ dates in many parsers) | string, integer (64-bit), float, boolean, date-time, array, table |
| Comments | Yes # | Yes # |
| Nesting | Unlimited (indentation) | Tables and dotted keys |
- YAML: YAML 1.2 is a superset of JSON; YAML 1.1 parsers (still common) also read yes/no/on/off as booleans — the “Norway problem”.
- TOML: There is no null in TOML, and the document root must be a table (key/value map), not an array.