en

TOML to YAML

Convert a TOML file to YAML locally - indented config for CI and Docker, no upload, right in your browser.

Running locally on your device ...

0%

Your files never left your device

    Is my file uploaded?

    No. Everything runs in your browser - your file never leaves your device. How this is verifiable

    No upload100% local
    Your content stays with youno third-party access
    Servers in GermanyGDPR by design
    Independently auditedTLS A+ · HTTP headers A+

    TOML is the configuration format of the Rust and Python toolchains - a Cargo.toml or pyproject.toml with sections in square brackets and plain key-equals-value lines. YAML pursues the same goal of readability, but uses indentation instead of brackets and is the lingua franca of CI pipelines, Docker Compose and Kubernetes. This tool reads your TOML file and writes the same structure as YAML.

    The conversion runs entirely locally in your browser: smol-toml reads the TOML, js-yaml writes the YAML, both pure JavaScript. Tables become mappings, sub-tables (such as [server.meta]) become nested mappings, arrays of tables become sequences, TOML date/time values become real YAML timestamps. From a bracketed .toml you get an indented .yaml ready to drop into a CI pipeline.

    This closes the round-trip: YAML to TOML and now TOML to YAML are both available locally when you migrate a configuration between the two worlds. It stays honest about it: a TOML document always has a table at the root, so the YAML produced is always a mapping. Very large TOML integers beyond the safe JavaScript range are rejected with a clear message instead of being converted with precision loss. Nothing is uploaded.

    Specifications

    Specifications
    Input formatsTOML
    Output formatYAML
    Batch processingNo
    ProcessingLocally in your browser (JavaScript)
    File uploadNone

    In 3 steps

    1. Drop or pick your TOML file.
    2. The tool converts it into YAML.
    3. Download the YAML file.

    Limitations: TOML always parses to a table, so the output is always a YAML mapping. Sub-tables become nested mappings, arrays of tables become sequences, date/time values become YAML timestamps. Very large integers beyond the safe JavaScript range are rejected with a clear message (no lossy conversion). Invalid TOML is rejected with a clear error.

    FAQ

    Is my file uploaded?

    No. The conversion runs entirely locally in the browser - nothing is sent.

    Does it work with a Cargo.toml or pyproject.toml?

    Yes. Cargo.toml, pyproject.toml and other TOML files are parsed directly and written as YAML.

    How are date/time values handled?

    TOML date/time values are emitted as real YAML timestamps, not as strings.

    What happens with very large integers?

    TOML i64 values beyond the safe JavaScript range are rejected with a clear message instead of being converted with precision loss.

    Does the reverse work too?

    Yes, with our "YAML to TOML" tool.

    Related tools