TOML Validator, Formatter and Linter

Syntax errors with line and column. Pretty-print with 2- or 4-space indent, or minify. JSON Schema Draft-07. Lint duplicate keys, unsafe keys, and values the parser rejects. TOML stays in your browser — nothing is uploaded.

Validate TOML — line and column

Paste or type TOML and get syntax errors with a line and column when the parser provides them. Open a finding to jump to that spot in the editor.

Format and minify

Pretty indents keys inside tables by 2 or 4 spaces. Minify is the most compact round-trip smol-toml can emit. Formatting runs only when the document parses. Output is not byte-identical: inline tables and dotted keys become standard tables, comments are dropped, 1.0 may become 1, and dates may gain millisecond precision.

JSON Schema (Draft-07)

Paste a JSON Schema to check the parsed value. Schema checks use JSON Schema Draft-07. Remote $ref values are not fetched.

Lint keys, escapes, and values

Duplicate keys and redefined tables are reported and block formatting. Keys the parser treats as unsafe (__proto__ and constructor) are reported on documents that still parse. Invalid escapes, leading zeros, and integers that cannot be stored exactly are reported with line and column. Impossible calendar dates that the legacy date parser rolls forward are reported when the source literal and the parsed date disagree.

Your TOML never leaves the browser

Validation, formatting, and schema checks run on your device. Nothing is uploaded.

Duplicate keys

TOML requires unique keys. This tool reports a redefinition at the line and column the parser returns. The document is invalid, so Pretty and Minify do not run.

Inline tables and dotted keys

Pretty and Minify rebuild the document from the parsed value. An inline table such as point = { x = 1, y = 2 } becomes a [point] table. Dotted keys become table headers. That is normal for this round-trip.

Comments

Comments are not part of the parsed value. Pretty and Minify omit them.

Numbers and dates

1.0 may be written as 1. Hex and underscores are written as decimal. An integer outside the safe range is rejected. A date such as 2020-02-30 can be rolled forward by the parser; that mismatch is reported.

Draft-07

Schema checks use JSON Schema Draft-07. The schema is pasted as JSON. Remote $ref is not loaded.

Upload

TOML stays in the browser. Nothing is uploaded.