TOML to YAML converter

Paste Cargo.toml, pyproject.toml or config.toml to get YAML suited to tools such as Docker Compose and GitHub Actions.

Loading the tool…

Processing and privacy: The result is calculated inside your browser and your data is not sent to any server.

How to use it

  1. Enter toml text and indentation.
  2. The result appears straight away and updates as you edit.
  3. Copy the result, or copy a link that keeps the same values to share it.

How it is calculated

The file is read per TOML 1.0, then YAML is written: tables become nested maps, [[a]] a list of maps, dates stay unquoted and a local time such as 07:32:00 is quoted so YAML 1.1 readers do not see a number. Ambiguous strings such as "0.1.0" and "yes" are quoted, and inf and nan become .inf and .nan.

Example

Inputs: Indentation = 2 spaces. Result: YAML: package: name: demo version: "0.1.0" authors: - Sara - Omar server: host: "0.0.0.0" port: 8080 started: 2026-01-15T09:30:00Z users: - name: Ali admin: true - name: Mona admin: false .

# Project settings
[package]
name = "demo"
version = "0.1.0"
authors = ["Sara", "Omar"]

[server]
host = "0.0.0.0"
port = 8080
started = 2026-01-15T09:30:00Z

[[users]]
name = "Ali"
admin = true

[[users]]
name = "Mona"
admin = false
package:
  name: demo
  version: "0.1.0"
  authors:
    - Sara
    - Omar
server:
  host: "0.0.0.0"
  port: 8080
  started: 2026-01-15T09:30:00Z
users:
  - name: Ali
    admin: true
  - name: Mona
    admin: false

Limits and caveats

  • Comments are dropped.
  • YAML 1.2 readers see an unquoted date as text, while YAML 1.1 readers see a timestamp.

Questions about this tool

Why is "0.1.0" in quotes?

Strings that start with a digit may be read as numbers by some readers, and quoting keeps them as text.

How does [[bin]] look in YAML?

It becomes a list under the bin key, with each item a map of that table's keys.

Is key order kept?

Yes, keys stay in the order they appear in the TOML file.