How this Klipper configuration linter works
The parser reads sections and options using Klipper-style inline comments, expands selected [include …] files in encounter order, and merges repeated sections and options so later values are visible. It compares common built-in sections against a bounded option snapshot, suggests close spellings, validates basic numeric and boolean values, and keeps unknown sections as notes because third-party modules can add configuration.
Understanding the pin matrix
A leading ! inverts a pin. ^ requests a pull-up and ~ requests a pull-down. Those modifiers affect behavior, but all spellings still refer to the same physical pin for conflict review. Named MCU syntax such as toolhead:PA1, virtual pins such as probe:z_virtual_endstop, and multi_pin references also create dependency rows.
Includes and effective definitions
Choose the main file separately, then add its included configuration files. Exact relative paths, *, ?, and recursive ** patterns are supported against the selected file names. When a browser provides only basenames, an exact include may resolve by basename only when the match is unique. Unselected files cannot be fetched from Moonraker or the printer.
Validation boundary
This is a bounded static preflight, not Klipper itself. Klipper validates options after loading the modules installed on a particular host; extensions and version changes can add valid sections and options. This page does not execute Jinja, G-code, Python modules, board aliases, SAVE_CONFIG merge semantics, or MCU commands. It does not verify electrical ratings, pin capabilities, homing direction, thermal safety, kinematics, macro behavior, or whether a configuration will start on your machine.
Frequently asked questions
Why is my custom section only a note?
Klipper modules can register their own sections dynamically. An unfamiliar section is therefore evidence to check against your installed version, not enough evidence to call the configuration invalid.
Why does a wildcard include with no match produce a note?
Klipper permits wildcard include patterns that currently match no files. A direct include with no selected match is reported as an error.
Does “no errors” mean the printer is safe to run?
No. It only means the selected text passed this tool's supported static checks. Use Klipper's startup diagnostics and official configuration checks, then verify one subsystem at a time with the machine made safe.
Authoritative references
Klipper's configuration loader source documents include expansion and parser behavior. The official Configuration Reference explains sections, options, pin modifiers, and virtual pins; the official Configuration checks guide covers cautious hardware verification after Klipper accepts the file.
Browse 3D printing tools · Inspect an MCU register description