A converter for the three formats that dominate modern configuration files: YAML, JSON and TOML. Paste any one of them and get a clean, valid version in either of the other two — or reformat within the same format. It is built for developers and DevOps engineers who juggle package.json, Kubernetes manifests, GitHub Actions workflows, pyproject.toml, Cargo manifests and Docker Compose files, and who constantly need to move a snippet from one ecosystem’s preferred format to another’s.
The tool auto-detects the input format, converts live as you type, sorts keys for canonical output, lets you choose the indent width, and downloads the result with the right file extension. Every byte stays on your machine.
How it works
Conversion always goes through a single, neutral in-memory data structure. The input is parsed once into a plain JavaScript value — objects, arrays, strings, numbers, booleans and null — and that value is then serialised into whichever target format you pick. This round-trip model is why any pairing works: YAML to JSON, JSON to TOML, TOML to YAML, and every combination in between, including reformatting a file into a tidier version of itself.
YAML is parsed and emitted with a battle-tested YAML engine, JSON uses the browser’s native parser, and TOML is handled by a spec-compliant TOML library. Because TOML documents must have a table (object) at the root, converting a top-level array or a bare scalar to TOML is not possible — the tool detects that case and explains it rather than producing invalid output. Auto-detection looks at the first non-comment characters and the overall line shape to decide between the three, and you can override it at any time.
Two options make the output deterministic and review-friendly: sort keys orders every object key alphabetically at every level, and the indent selector switches between two and four spaces for YAML and JSON. The live statistics line reports the key count, number of arrays and maximum nesting depth so you can sanity-check that the structure survived the conversion intact.
Example
Paste this TOML fragment from a pyproject.toml:
[tool.poetry] followed by name = "myapp" and version = "1.2.0", then a [tool.poetry.dependencies] table with python = "^3.11".
Set the output to JSON and you instantly get a nested object: a tool key containing a poetry object with name, version and a dependencies object. Switch the output to YAML and the same structure becomes indented key-value lines with no braces at all. Enable sort keys and the order becomes stable across runs, so committing the converted file produces a minimal diff.
| From | To | Typical use |
|---|---|---|
| YAML | JSON | Feed a Compose or CI file into a tool that only reads JSON |
| JSON | YAML | Make a verbose package.json-style blob readable |
| TOML | JSON | Inspect a Cargo.toml or pyproject.toml programmatically |
| JSON | TOML | Generate a starter config for a Rust or Python project |
Everything is computed in your browser — no configuration, secrets or infrastructure details are ever uploaded or stored.