ToolConvoyToolConvoyv2.6
DATA

TOML Tools — Convert TOML to JSON, YAML, INI, .env and Format

All-in-one TOML toolkit: convert TOML to/from JSON, YAML, INI, and .env. Plus a formatter with configurable indentation — runs entirely in your browser.

● LOCAL · ZERO-COPY PIPELINE0 network requests since page load
DEV

TOML Tools

Convert TOML to/from JSON, YAML, INI, .env — or just format it. Runs in your browser.

● LOCAL · GENERATED IN YOUR TAB0 network requests since page load
Loading…

TOML (Tom’s Obvious, Minimal Language) is the configuration file format that has won the developer-tooling ecosystem in the last decade. Rust’s Cargo uses TOML for project manifests. Python’s pyproject.toml is the standard place for build-system, linter, and formatter configuration. Go, Zig, and Julia projects all recommend TOML for their config files. The format’s design principles — obvious to read, minimal in syntax, explicit about types — make it the right choice for hand-authored configuration where the author is a developer who values clarity over conciseness. JSON is the right format for machine-to-machine data exchange. YAML won the DevOps config war. But for the config file that lives in the root of a repository and is edited by every contributor, TOML is the answer.

The TOML Tools page is a multi-tool for the TOML ecosystem: a converter that goes from TOML to JSON, YAML, INI, and .env (and back from each of those formats to TOML), plus a formatter that beautifies existing TOML with configurable indentation and key sorting. The conversion paths cover the most common reasons a developer reaches for a TOML tool: migrating a JSON-based config to TOML for a Rust project, converting a TOML file to YAML for a CI/CD pipeline that expects YAML input, flattening a TOML config to .env for a Docker container, or converting an INI file from a legacy project to TOML for modern tooling. The formatter produces consistent, git-friendly TOML with the same output that the reference parser’s printer would produce. All processing runs in your browser.

How to use

  1. Paste or drop your TOML

    Drop a .toml file or paste TOML content. The parser validates the syntax and reports any errors with line numbers. Valid TOML is displayed in a syntax-highlighted tree view before conversion.

  2. Choose the target format

    Select one of the output formats — JSON, YAML, INI, or .env. The conversion preserves all values, comments (where the target format supports them), and table structure. Nested tables become nested objects or dot-notation keys depending on the target.

  3. Or format your TOML

    Toggle to the formatter tab to beautify existing TOML. Set the indentation width, choose between spaces and tabs, and sort keys alphabetically or keep the original order. The formatted TOML validates against the output of the TOML spec's own test suite.

Frequently asked

What makes TOML different from JSON and YAML?

TOML was designed by Tom Preston-Werner (GitHub co-founder) in 2013 as a configuration file format that is easier for humans to read and write than JSON (no braces, no quoting rules for keys) and less ambiguous than YAML (no significant whitespace, no Norway problem). It is the standard config format for Rust (Cargo.toml), Python (pyproject.toml), and Go projects.

Does the converter preserve TOML comments?

Comments are preserved in the YAML and INI outputs (both formats support comments natively). JSON has no comment syntax, so comments are dropped in JSON output. The .env format supports inline comments with `#` — TOML comments are mapped to .env comments where structurally possible.

How are nested tables converted to flat formats like INI and .env?

Nested TOML tables are flattened to dot-notation keys. `[server.database]` with `host = 'localhost'` becomes `server.database.host = localhost` in INI and `SERVER_DATABASE_HOST=localhost` (uppercased, dot-to-underscore) in .env. Array-of-tables (`[[entry]]`) become numbered keys.

Can it convert from other formats back to TOML?

Yes — the reverse conversion accepts JSON, YAML, INI, and .env inputs and emits TOML. The output TOML follows the spec's style guide: dotted keys for shallow nesting, table headers for deep nesting, and array-of-tables syntax for repeated sections.

Limitations

  • No schema validationThe tool parses and converts TOML syntax but does not validate the content against a schema. For schema validation, use a tool like `taplo` (Rust) or `tomllib` (Python 3.11+) with a separate schema definition.
  • Date/time type fidelityTOML has first-class date, time, and datetime-local types. When converting to JSON (which has no date type), these values become ISO 8601 strings. The format information is preserved textually but the type distinction is lost.
  • Large file performanceTOML files over 1 MB with deeply nested tables may be slow to render in the tree view. The conversion itself is fast; the visual rendering is the bottleneck. Use the raw output tab for large files.

Platform notes

macOS
`taplo` is the standard TOML toolkit for macOS (`brew install taplo`). The browser tool adds format conversion (to/from YAML, INI, .env) that taplo does not handle natively.
Linux
Python 3.11+ includes `tomllib` in the standard library. Use `python3 -c 'import tomllib; print(tomllib.load(open("config.toml", "rb")))'` to parse TOML to a Python dict.
Web
Runs entirely in the browser. Configuration files are parsed locally — no config data is uploaded. Useful for converting internal project configs without exposing them to a third-party API.