ToolFeather
Developer / SEORuns in your browser

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.

Quick presets

YAML to TOML Converter

YAML
TOML

Runs in your browser — nothing you enter is uploaded or stored.

ToolFeather · YAML → TOML
Scratchpad auto-saved
Stored in this browser (localStorage)
Step-by-step~40s read

How it works — in four simple steps

No signup and nothing to install — it all runs in your browser.

1

Add your YAML

Paste it into the left box, press Open file, or drag a .yaml file onto it. Sample loads a realistic example.

2

Set the options

Adjust the options above the boxes — the output updates instantly as you change them.

3

Check the result

Read the status line: it reports rows, keys and any value that couldn't be represented in TOML.

4

Copy or download

Copy the TOML or download it as a .toml file. Nothing was uploaded at any point.

Pro tip

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.

YAML input
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: true
TOML output
name = "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 = true

This 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 YAMLBecomes in TOML
server: map[server] section
List of maps[[name]] per entry
ports: [80, 443]ports = [80, 443]
released: 2026-10-21released = 2026-10-21
key: ~omitted, with a warning
Top-level listwrapped as [[items]]
Block scalar |string with \n escapes

Things that trip people up

YAML vs TOML at a glance

PropertyYAMLTOML
SpecificationYAML 1.2.2 (2021)TOML 1.0.0 (2021)
File extension.yaml / .yml.toml
Media typeapplication/yaml (RFC 9512)application/toml
Data typesstring, int, float, bool, null, map, sequence (+ dates in many parsers)string, integer (64-bit), float, boolean, date-time, array, table
CommentsYes #Yes #
NestingUnlimited (indentation)Tables and dotted keys

Frequently asked questions

5 answers
Why are some keys missing in the TOML output?
They were null (~) in the YAML. TOML has no null value, so they're left out and listed in the warning.
How are YAML lists of maps converted?
As TOML arrays of tables: one [[key]] header per list entry, followed by that entry's keys.
Does it keep YAML comments?
No — comments aren't part of the parsed data. Re-add important ones with # in the TOML.
Can I use it to create pyproject.toml from a YAML config?
Yes. Put your settings under the right paths (for example tool: ruff: line-length: 100) and the output will contain [tool.ruff] with line-length = 100.
Is my data uploaded anywhere?
No. The YAML is parsed and converted by JavaScript in your browser tab; nothing is sent to a server, so it is safe for internal exports, customer lists and configuration files with secrets.