YAML / INI Config Linter
Catch tabs, trailing spaces, and malformed key/value lines in config files.
The YAML / INI Config Linter catches the formatting class of errors that break config files but are easy to miss because an editor renders both spaces and tabs as the same blank space. It flags tabs in a YAML file, which must use spaces for indentation, trailing spaces after keys and values, and lines that do not look like a valid key and value. Use it before you deploy a config, when a parse error gives you no useful message, or to enforce a consistent style across a team. The tool checks structure, not logic, so a value that is the wrong shape still needs a real validator for your format. Configuration files fail in a particular way: the parse error is unhelpful and the cause is invisible. A parser that expects spaces for indentation in YAML and encounters a tab reports a problem at a line number without explaining that the offending character is a single tab rendered identically to a space by every editor. Trailing whitespace after a value is another silent failure, and a line that looks like a key and value but is missing the separator is a third. None of these are visible by inspection, which is why a check that reads the file structurally and names the specific problem is worth more than careful reading. It is also worth enforcing consistency rather than fixing one file, since a shared style removes the whole category of error from a team rather than from a single deployment. One boundary is important to state clearly: a linter checks structure, not semantics. It can tell you that the indentation is wrong but not that a value is the wrong type or out of range, which is a job for a schema validator built for the specific format.
Frequently Asked Questions
Why do tabs break my YAML?
YAML forbids mixing tabs and spaces for indentation; it only accepts spaces. A single tab throws a parse error that is easy to miss in an editor that renders both as whitespace.
What is a trailing-space trap?
Trailing spaces after a key or value can change meaning or cause subtle parse issues. The linter flags them so configs deploy cleanly.
Does this catch all config errors?
It catches the formatting-class errors (tabs, trailing spaces, malformed key/value) that break parsing. Logic errors — wrong values — still need a real validator for your format.