TOML ⇄ YAML ⇄ JSON
Convert between TOML, YAML and JSON in any direction, in your browser.
How to use it
- Paste TOML, YAML or JSON into the left panel.
- Pick the source format and the target format from the two selectors — any pair works, including YAML to TOML.
- Read the converted document on the right; conversion runs as you type.
- Copy or download the result. The status line names the direction and the output size.
- If the source and target are the same, the tool says so instead of doing nothing.
Common use cases
- Config migration — move a pyproject.toml or Cargo.toml into YAML for a CI pipeline, or into JSON for a script.
- Format normalization — settle an argument about whether a config should be TOML or YAML by looking at both renderings side by side.
- Docker and Kubernetes work — switch between compose YAML and the JSON shapes tools expect.
- Reading unfamiliar files — turn a TOML file into JSON to inspect it with jq-style tooling.
Why it stays private
Parsing and serialization happen entirely in your browser's memory. Config files often contain hostnames, credentials or infrastructure details, and none of it is uploaded.
FAQ
Q: Which TOML features are supported?
A: Key-value pairs, dotted keys, [table], [a.b] nesting, [[array.of.tables]], basic and literal strings, integers, floats, booleans, inline arrays and comments. Multi-line strings, multi-line arrays and inline tables are outside the subset, and dates are kept as strings.
Q: Why does JSON to TOML fail on null? A: TOML has no null value. Rather than inventing one, the converter stops with an error naming the problem — remove the key or use an empty string, then convert again.
Q: How is YAML serialized? A: With js-yaml at an indent of two spaces. Anchors, aliases and complex mapping keys are outside what this subset documents, so keep configs plain for round-trips through TOML.
Your data stays on this device
TOML ⇄ YAML ⇄ JSON runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.