All skills
Skillintermediate
@n8n/eslint-plugin-community-nodes
ESLint plugin for linting n8n community node packages to ensure consistency and best practices.
Claude Code Knowledge Pack7/10/2026
Overview
@n8n/eslint-plugin-community-nodes
ESLint plugin for linting n8n community node packages to ensure consistency and best practices.
Install
npm install --save-dev eslint @n8n/eslint-plugin-community-nodes
**Requires ESLint >=9 and flat config
Usage
See the ESLint docs for more information about extending config files.
Recommended config
This plugin exports a recommended config that enforces good practices.
// β¦
n8nCommunityNodesPlugin.configs.recommended,
{
rules: {
'@n8n/community-nodes/node-usable-as-tool': 'warn',
},
},
];
Rules
πΌ Configurations enabled in.\
β οΈ Configurations set to warn in.\
β
Set in the recommended configuration.\
βοΈ Set in the recommendedWithoutN8nCloudSupport configuration.\
π§ Automatically fixable by the --fix CLI option.\
π‘ Manually fixable by editor suggestions.\
β Deprecated.
| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β | Description | πΌ | β οΈ | π§ | π‘ | β |
|---|---|---|---|---|---|---|
| ai-node-package-json | Enforce consistency between n8n.aiNodeSdkVersion and ai-node-sdk peer dependency in community node packages | β βοΈ | ||||
| cred-class-field-icon-missing | Credential class must have an icon property defined | β βοΈ | π‘ | |||
| credential-documentation-url | Enforce valid credential documentationUrl format (URL or lowercase alphanumeric slug) | β βοΈ | π§ | |||
| credential-password-field | Ensure credential fields with sensitive names have typeOptions.password = true | β βοΈ | π§ | |||
| credential-test-required | Ensure credentials have a credential test | β βοΈ | π‘ | |||
| icon-validation | Validate node and credential icon files exist, are SVG format, and light/dark icons are different | β βοΈ | π‘ | |||
| missing-paired-item | Require pairedItem on INodeExecutionData objects in execute() methods to preserve item linking. | β βοΈ | ||||
| no-credential-reuse | Prevent credential re-use security issues by ensuring nodes only reference credentials from the same package | β βοΈ | π‘ | |||
| no-deprecated-workflow-functions | Disallow usage of deprecated functions and types from n8n-workflow package | β βοΈ | π‘ | |||
| no-forbidden-lifecycle-scripts | Ban lifecycle scripts (prepare, preinstall, postinstall, etc.) in community node packages | β βοΈ | ||||
| no-http-request-with-manual-auth | Disallow this.helpers.httpRequest() in functions that call this.getCredentials(). Use this.helpers.httpRequestWithAuthentication() instead. | β βοΈ | ||||
| no-overrides-field | Ban the "overrides" field in community node package.json | β βοΈ | ||||
| no-restricted-globals | Disallow usage of restricted global variables in community nodes. | β | ||||
| no-restricted-imports | Disallow usage of restricted imports in community nodes. | β | ||||
| node-class-description-icon-missing | Node class description must have an icon property defined. Deprecated: use require-node-description-fields instead. | π‘ | β | |||
| node-connection-type-literal | Disallow string literals in node description inputs/outputs β use NodeConnectionTypes enum instead | β βοΈ | π§ | |||
| node-usable-as-tool | Ensure node classes have usableAsTool property | β βοΈ | π§ | |||
| options-sorted-alphabetically | Enforce alphabetical ordering of options arrays in n8n node properties | β βοΈ | ||||
| package-name-convention | Enforce correct package naming convention for n8n community nodes | β βοΈ | π‘ | |||
| require-community-node-keyword | Require the "n8n-community-node-package" keyword in community node package.json | β βοΈ | π§ | |||
| require-continue-on-fail | Require continueOnFail() handling in execute() methods of node classes | β βοΈ | ||||
| require-node-api-error | Require NodeApiError or NodeOperationError for error wrapping in catch blocks. Raw errors lose HTTP context in the n8n UI. | β βοΈ | ||||
| require-node-description-fields | Node class description must define all required fields: icon, subtitle | β βοΈ | ||||
| resource-operation-pattern | Enforce proper resource/operation pattern for better UX in n8n nodes | β βοΈ | ||||
| webhook-lifecycle-complete | Require webhook trigger nodes to implement the complete webhookMethods lifecycle (checkExists, create, delete) | β βοΈ |