Format, validate, and convert TOML configuration files online. Parse TOML to JSON for easy inspection. Supports Cargo.toml, pyproject.toml, and any TOML file. This tool runs entirely in your browser — no data is sent to any server.
TOML (Tom's Obvious, Minimal Language) is a configuration file format designed to be easy to read and write. Used by Rust's Cargo.toml, Python's pyproject.toml, Hugo, and many other tools, TOML is gaining popularity as a simpler alternative to YAML and JSON for configuration. This formatter parses TOML content, validates the syntax, and outputs it with consistent formatting: proper indentation, aligned equals signs, and organized sections. It catches common errors like missing quotes, invalid date formats, and duplicate keys. When switching between projects that use TOML, having a quick formatter ensures your config files are clean and valid before committing.
TOML is simpler and less ambiguous. YAML's significant whitespace and type coercion ('yes' becoming boolean true) cause subtle bugs. TOML uses explicit typing, no significant whitespace, and square brackets for sections. TOML trades YAML's flexibility for safety and clarity.
Major uses: Rust (Cargo.toml), Python packaging (pyproject.toml), Hugo static sites, InfluxDB, Netlify, and many modern CLI tools. It's becoming the standard for tool configuration where JSON is too noisy and YAML is too error-prone.
Strings (basic and literal), integers, floats, booleans, datetime (RFC 3339), arrays, and tables (dictionaries). Notably, TOML has first-class date/time support — unlike JSON and YAML which represent dates as strings.
For configuration files, yes — TOML supports comments (JSON doesn't), has a cleaner syntax, and is designed for human editing. For data interchange and APIs, JSON remains standard because it's simpler to parse and universally supported.
Tables are TOML's equivalent of objects/dictionaries, defined with [section_name]. Nested tables use dotted keys [parent.child]. Arrays of tables use double brackets [[array_item]]. They map directly to nested data structures in code.