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-jsonEnforce consistency between n8n.aiNodeSdkVersion and ai-node-sdk peer dependency in community node packagesβœ… β˜‘οΈ
cred-class-field-icon-missingCredential class must have an icon property definedβœ… β˜‘οΈπŸ’‘
credential-documentation-urlEnforce valid credential documentationUrl format (URL or lowercase alphanumeric slug)βœ… β˜‘οΈπŸ”§
credential-password-fieldEnsure credential fields with sensitive names have typeOptions.password = trueβœ… β˜‘οΈπŸ”§
credential-test-requiredEnsure credentials have a credential testβœ… β˜‘οΈπŸ’‘
icon-validationValidate node and credential icon files exist, are SVG format, and light/dark icons are differentβœ… β˜‘οΈπŸ’‘
missing-paired-itemRequire pairedItem on INodeExecutionData objects in execute() methods to preserve item linking.βœ… β˜‘οΈ
no-credential-reusePrevent credential re-use security issues by ensuring nodes only reference credentials from the same packageβœ… β˜‘οΈπŸ’‘
no-deprecated-workflow-functionsDisallow usage of deprecated functions and types from n8n-workflow packageβœ… β˜‘οΈπŸ’‘
no-forbidden-lifecycle-scriptsBan lifecycle scripts (prepare, preinstall, postinstall, etc.) in community node packagesβœ… β˜‘οΈ
no-http-request-with-manual-authDisallow this.helpers.httpRequest() in functions that call this.getCredentials(). Use this.helpers.httpRequestWithAuthentication() instead.βœ… β˜‘οΈ
no-overrides-fieldBan the "overrides" field in community node package.jsonβœ… β˜‘οΈ
no-restricted-globalsDisallow usage of restricted global variables in community nodes.βœ…
no-restricted-importsDisallow usage of restricted imports in community nodes.βœ…
node-class-description-icon-missingNode class description must have an icon property defined. Deprecated: use require-node-description-fields instead.πŸ’‘βŒ
node-connection-type-literalDisallow string literals in node description inputs/outputs β€” use NodeConnectionTypes enum insteadβœ… β˜‘οΈπŸ”§
node-usable-as-toolEnsure node classes have usableAsTool propertyβœ… β˜‘οΈπŸ”§
options-sorted-alphabeticallyEnforce alphabetical ordering of options arrays in n8n node propertiesβœ… β˜‘οΈ
package-name-conventionEnforce correct package naming convention for n8n community nodesβœ… β˜‘οΈπŸ’‘
require-community-node-keywordRequire the "n8n-community-node-package" keyword in community node package.jsonβœ… β˜‘οΈπŸ”§
require-continue-on-failRequire continueOnFail() handling in execute() methods of node classesβœ… β˜‘οΈ
require-node-api-errorRequire NodeApiError or NodeOperationError for error wrapping in catch blocks. Raw errors lose HTTP context in the n8n UI.βœ… β˜‘οΈ
require-node-description-fieldsNode class description must define all required fields: icon, subtitleβœ… β˜‘οΈ
resource-operation-patternEnforce proper resource/operation pattern for better UX in n8n nodesβœ… β˜‘οΈ
webhook-lifecycle-completeRequire webhook trigger nodes to implement the complete webhookMethods lifecycle (checkExists, create, delete)βœ… β˜‘οΈ