FAQ and compatibility

Compatibility

Supported
n8nNode descriptions for 2.38.3 ship in the package. It is also the default when no version is pinned
Other n8n versionsworkflow-lint node-types install <version>
n8n 1.x workflowsThey lint. Install the matching version for exact typeVersion findings
Node.js24 or newer

Questions

Does it change my workflow?

Only when you ask.

CommandWrites to the file
lintNo
lint --fixYes, safe fixes only
lint --fix-unsafeYes, including fixes that may change behaviour
fmtYes, node positions and JSON formatting
fmt --checkNo

Does it need my n8n instance?

No. Every command is static and works offline. The MCP server can read from one n8n instance if you give it an API key. Nothing else contacts anything.

Which n8n versions does it support?

Node descriptions for 2.38.3 ship in the package, and node-types install <version> fetches others. Pin settings.n8nVersion, or findings that depend on the version are withheld.

Why did a rule fire?

workflow-lint rules lists every rule with its level and a one-line reason. Each rule has a page under Rules with its options and what --fix does. Over MCP, explain_rule returns the same page.

What does it not check?

Why is my data.json file suddenly an error?

You named it on the command line. A directory scan skips JSON files that are not workflows, but a file passed by name is always checked, so a hook cannot pass by accident. Point the hook at your workflow folder instead.

Why does Node.js 20 not work?

workflow-lint parses workflows with n8n's own n8n-workflow package. That package depends on a native module that supports Node.js 24 and newer only.

Alternatives

AlternativeUse it instead when
n8n's own validationYou only need "will it import". It checks parameters and connections in the editor, and needs a running instance
n8n-mcp validate_* toolsYour AI agent already runs n8n-mcp and you want validation inside that loop
n8nlintYou want a small CLI focused on runtime-bug patterns, such as a Merge inside a batch loop
FlowLintIts rule set or its library API fits your setup better
A JSON Schema checkYou need nothing more than the shape of the export
Hand reviewAlways, for the judgement calls. workflow-lint covers the mechanical checks so review time goes on design

Limitations