N8n Architect
EtienneLescot/n8n-as-code
A skill your agent uses when the user explicitly wants to create, edit, validate, sync, or troubleshoot n8n workflows, asks about n8n nodes or automation, or wants to use n8n-as-code in the current…
Explains how to configure n8n nodes correctly: which fields each operation requires, how property dependencies show or hide fields, and which get_node detail level to use.
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install czlonkowski/n8n-skills n8n-node-configuration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/n8n-node-configuration .claude/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .claude/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configurationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install czlonkowski/n8n-skills n8n-node-configuration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/n8n-node-configuration .agents/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .agents/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install czlonkowski/n8n-skills n8n-node-configuration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/n8n-node-configuration .cursor/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .cursor/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/czlonkowski/n8n-skills.git --path skills/n8n-node-configuration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install czlonkowski/n8n-skills n8n-node-configuration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/n8n-node-configuration .gemini/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .gemini/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install czlonkowski/n8n-skills n8n-node-configurationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/n8n-node-configuration .github/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .github/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install czlonkowski/n8n-skills n8n-node-configuration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/czlonkowski/n8n-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/n8n-node-configuration .opencode/skills/n8n-node-configuration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "n8n-node-configuration" agent skill from https://github.com/czlonkowski/n8n-skills/tree/main/skills/n8n-node-configuration into .opencode/skills/n8n-node-configuration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-node-configuration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
n8n-node-configurationExplains how to configure n8n nodes correctly: which fields each operation requires, how property dependencies show or hide fields, and which get_node detail level to use.
The skill teaches configuration by progressive disclosure: start minimal, then add options. It stresses that required fields depend on the resource and operation chosen, with a Slack message post as an example, and that displayOptions make fields appear or disappear based on other values, as with the HTTP Request node's method and body settings.
Discovery starts with get_node at standard detail, switches to its property-search mode when a specific field such as auth or headers is needed, and uses full detail only when nothing else is enough. The standard loop is configure, validate, read each validation error, add the next required field and validate again before deploying. It also covers when patchNodeField suits a small edit better than a full node update, with extra files on dependencies, node-family gotchas and operation patterns.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19cd793. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
N8N_MCP_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
n8n Node Configuration loads about 4.5k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 1,574 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from czlonkowski/n8n-skills at commit 19cd793, republished under its MIT licence (© czlonkowski). 1,574 words, ~4,475 tokens.
.claude/skills/n8n-node-configuration/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Expert guidance for operation-aware node configuration with property dependencies.
Progressive disclosure: Start minimal, add complexity as needed
Configuration best practices:
get_node with detail: "standard" is the most used discovery patternKey insight: Most configurations need only standard detail, not full schema!
Not all fields are always required - it depends on operation!
Example: Slack node
// For operation='post'
{
"resource": "message",
"operation": "post",
"channel": "#general", // Required for post
"text": "Hello!" // Required for post
}
// For operation='update'
{
"resource": "message",
"operation": "update",
"messageId": "123", // Required for update (different!)
"text": "Updated!" // Required for update
// channel NOT required for update
}Key: Resource + operation determine which fields are required!
Fields appear/disappear based on other field values
Example: HTTP Request node
// When method='GET'
{
"method": "GET",
"url": "https://api.example.com"
// sendBody not shown (GET doesn't have body)
}
// When method='POST'
{
"method": "POST",
"url": "https://api.example.com",
"sendBody": true, // Now visible!
"body": { // Required when sendBody=true
"contentType": "json",
"content": {...}
}
}Mechanism: displayOptions control field visibility
Use the right detail level:
get_node({detail: "standard"}) - DEFAULT
get_node({mode: "search_properties", propertyQuery: "..."}) (for finding specific fields)
get_node({detail: "full"}) (complete schema)
get_node (standard detail is default).get_node({mode: "search_properties"}).The validate-driven loop in practice: start minimal (method, url, authentication), then let each validate_node error surface the next required field (sendBody for POST → body when sendBody=true) until valid. Full step-by-step walkthrough in OPERATION_PATTERNS.md.
✅ Starting configuration
get_node({
nodeType: "nodes-base.slack"
});
// detail="standard" is the defaultReturns (~1-2K tokens):
Use: 95% of configuration needs
✅ When standard isn't enough
get_node({
nodeType: "nodes-base.slack",
detail: "full"
});Returns (~3-8K tokens):
Warning: Large response, use only when standard insufficient
✅ Looking for specific field
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "auth"
});Use: Find authentication, headers, body fields, etc.
get_node (standard).search_properties mode. Otherwise continue.get_node({detail: "full"}).Dynamic properties: when standard detail marks a property with dynamicOptions: {methodName, methodType, dependsOn}, its real values come from a live loadOptions/listSearch method, not from bundled docs — don't guess an ID for it. Resolve it with n8n_explore_node_resources (needs N8N_MCP_ACCESS_TOKEN, n8n 2.34+) and put the returned value in the config; name is display text only.
All six parameters are required and none are inferred from each other:
n8n_explore_node_resources({
nodeType: "n8n-nodes-base.googleSheets", // LONG form
version: 4.5, // the node typeVersion the method belongs to
methodName: "getSheets", // copied verbatim from dynamicOptions
methodType: "listSearch", // "listSearch" for resource locators, "loadOptions" for plain dropdowns
credentialType: "googleSheetsOAuth2Api",
credentialId: "c2", // from n8n_manage_credentials({action: "list"})
currentNodeParameters: { // whatever dependsOn names, in its real shape
documentId: {__rl: true, mode: "id", value: "1AbC…"}
}
})dependsOn names the parameters the method needs already chosen — pass them in currentNodeParameters, keeping resource-locator values in their {__rl: true, mode, value} shape, or the method returns nothing useful. methodName is case-sensitive and specific to the nodeType + version pair; a mismatch returns OFFICIAL_MCP_ERROR rather than an empty list.
Fields have displayOptions visibility rules: show/hide blocks where multiple conditions are AND'd and multiple values are OR'd (e.g. body shows when sendBody=true AND method IN (POST, PUT, PATCH)). The three recurring patterns are the boolean toggle (sendBody → body), the operation switch (post vs update show different fields), and type selection (string vs boolean conditions). To find what controls a field, use get_node({mode: "search_properties", propertyQuery: "..."}) or get_node({detail: "full"}) — especially when validation flags a field you don't see.
Mechanism details, all four dependency patterns, complex flows, nested dependencies, and troubleshooting are in DEPENDENCIES.md (quick-reference recap under Quick Reference: displayOptions and Common Dependency Patterns).
Examples: Slack, Google Sheets, Airtable
Structure:
{
"resource": "<entity>", // What type of thing
"operation": "<action>", // What to do with it
// ... operation-specific fields
}How to configure:
Examples: HTTP Request, Webhook
Structure:
{
"method": "<HTTP_METHOD>",
"url": "<endpoint>",
"authentication": "<type>",
// ... method-specific fields
}Dependencies:
Critical: credentials block, node id, typeVersion
"id": "REPLACE_ME") — n8n's UI renders a permanently disabled credential selector for unknown IDs. Omit the credentials block when the real ID is unknown; the user then gets a normal clickable dropdown.id must be a UUID v4, not a readable slug — the frontend binds forms and the credential component to it.typeVersion values — verify the current version with get_node (httpRequest is 4.4+).Examples: Postgres, MySQL, MongoDB
Structure:
{
"operation": "<query|insert|update|delete>",
// ... operation-specific fields
}Dependencies:
Critical: Write operations may return 0 items
alwaysOutputData: true on write-operation nodes to keep downstream chains alive$('UpstreamNode').all() instead of $input if they need dataExamples: IF, Switch, Merge
Structure:
{
"conditions": {
"<type>": [
{
"operation": "<operator>",
"value1": "...",
"value2": "..." // Only for binary operators
}
]
}
}Dependencies:
Required fields shift with resource + operation: Slack post needs channel+text, but update needs messageId+text (channel optional) and channel/create needs name. HTTP GET uses sendQuery+queryParameters; POST needs sendBody+body. IF binary operators (equals) need value1+value2; unary (isEmpty) need only value1 plus auto-added singleValue: true. Concrete minimal configs for each in OPERATION_PATTERNS.md.
Some fields are required only under certain conditions: HTTP body is required when sendBody=true AND method IN (POST, PUT, PATCH, DELETE); IF singleValue should be true when the operator is unary (isEmpty, isNotEmpty, true, false) — and auto-sanitization sets it for you. Discover conditional requirements by reading the validation error, searching the property (get_node({mode: "search_properties"})), or iterating from a minimal config. Worked discovery examples in DEPENDENCIES.md.
{
"batchSize": 100, // Number of items per batch
"options": {}
}Output wiring:
main[0] (done) → Connect to downstream processing (add Limit 1 first)main[1] (each batch) → Connect to loop body, then loop back to SplitInBatches inputSee the n8n Workflow Patterns skill for detailed loop and nested loop patterns.
Per-item execution: Each input item triggers a separate API call. If you have 100 items and use a Google Sheets "Append Row" node, it makes 100 API calls. To write in bulk, aggregate items in a Code node first, then use a single HTTP Request with the Sheets API.
Formula columns: Never use append on sheets with formula columns — it overwrites formulas. Instead, use HTTP Request with Google Sheets API values.update (PUT) method and a googleApi credential.
Bad:
// Adding every possible field
{
"method": "GET",
"url": "...",
"sendQuery": false,
"sendHeaders": false,
"sendBody": false,
"timeout": 10000,
"ignoreResponseCode": false,
// ... 20 more optional fields
}Good:
// Start minimal
{
"method": "GET",
"url": "...",
"authentication": "none"
}
// Add fields only when neededBad:
// Configure and deploy without validating
const config = {...};
n8n_update_partial_workflow({...}); // YOLOGood:
// Validate before deploying
const config = {...};
const result = validate_node({...});
if (result.valid) {
n8n_update_partial_workflow({...});
}Bad:
// Same config for all Slack operations
{
"resource": "message",
"operation": "post",
"channel": "#general",
"text": "..."
}
// Then switching operation without updating config
{
"resource": "message",
"operation": "update", // Changed
"channel": "#general", // Wrong field for update!
"text": "..."
}Good:
// Check requirements when changing operation
get_node({
nodeType: "nodes-base.slack"
});
// See what update operation needs (messageId, not channel)When you need to edit a specific string inside a node field — rather than replacing the whole field — use patchNodeField in n8n_update_partial_workflow. This is especially useful for:
// Instead of replacing the entire jsCode field:
n8n_update_partial_workflow({
id: "wf-123",
operations: [{
type: "patchNodeField",
nodeName: "Code",
fieldPath: "parameters.jsCode",
patches: [{find: "const limit = 10;", replace: "const limit = 50;"}]
}]
})patchNodeField is strict — it errors if the find string isn't found or matches multiple times (unless replaceAll: true). This prevents accidental silent failures during configuration updates. See the n8n MCP Tools Expert skill for full syntax and examples.
Start with get_node (standard detail)
Validate iteratively
Use search_properties mode when stuck
get_node({mode: "search_properties", propertyQuery: "..."})Respect operation context
Trust auto-sanitization
Jump to detail="full" immediately
Configure blindly
Copy configs without understanding
Manually fix auto-sanitization issues
Some misconfigurations pass validate_node and validate_workflow clean, run without error, and quietly do the wrong thing — get_node shows the fields exist but not what happens when you omit them. The high-frequency ones:
options.fallbackOutput ⇒ unmatched items silently dropped.numberOfInputs defaults to 2 (extra sources drop); useDataOfInput is 1-indexed vs the 0-indexed connections.<src>.main[idx] slot (useDataOfInput: "N" → main[N-1]).{{ }} interpolation into parameters.query is SQL injection; use $1/$2 placeholders + options.queryReplacement.={{ { "blocks": ... } }} or it posts as plain text.responseCode defaults to 200 even on error branches.Full symptom/cause/fix detail (in JSON + n8n_update_partial_workflow terms) in NODE_FAMILY_GOTCHAS.md.
For comprehensive guides on specific topics:
Configuration Strategy:
get_node (standard detail is default)Key Principles:
Related Skills:
© czlonkowski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in skills/n8n-node-configuration of czlonkowski/n8n-skills.
Open the folder on GitHubat commit 19cd793
n8n Node Configuration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| n8n Node Configuration this skillczlonkowski/n8n-skills | 6.4k | — | ~4.5k | Automated safety check: Pass | MIT | |
| N8n ArchitectEtienneLescot/n8n-as-code | 1.6k | — | ~7.3k | Automated safety check: Warn | MIT | |
| Agents Onboardingfazer-ai/agents | 118 | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| Node Generatordafthunk-com/dafthunk | 134 | — | ~2.5k | Automated safety check: Pass | MIT | |
| N8n Add Workflowkhanhduyvt0101/workflows | 110 | — | ~1.3k | Automated safety check: Pass | None | |
| Airtable Automationclaude-office-skills/skills | 498 | — | ~2.7k | Automated safety check: Pass | MIT |
EtienneLescot/n8n-as-code
A skill your agent uses when the user explicitly wants to create, edit, validate, sync, or troubleshoot n8n workflows, asks about n8n nodes or automation, or wants to use n8n-as-code in the current…
fazer-ai/agents
Conduz a jornada de onboarding 'do zero ao agente de atendimento' do fazer.ai agents num VPS, escolhendo o orquestrador de deploy (Tier A Coolify, B Portainer, C compose genérico para VM crua ou…
dafthunk-com/dafthunk
Generate new workflow nodes with implementation, tests, and registry registration
khanhduyvt0101/workflows
Add a new n8n workflow template to the repository. An agent skill from khanhduyvt0101/workflows.
claude-office-skills/skills
Airtable database automation - views, automations, integrations, and workflow triggers
davila7/claude-code-templates
Expert guide for using n8n-mcp MCP tools effectively. An agent skill from davila7/claude-code-templates.
czlonkowski/n8n-skills
Explains how n8n keeps file bytes in $binary apart from structured $json data, and how to read, write and preserve binary across nodes, agent tools and chat.
czlonkowski/n8n-skills
Guides writing JavaScript in n8n Code nodes: picking an execution mode, reading input data, returning items, using built-in helpers and avoiding common errors.
czlonkowski/n8n-skills
Explains how to write native Python in n8n Code nodes, including the two input variables, blocked imports and fixes for common errors.
czlonkowski/n8n-skills
Explains the n8n Custom Code Tool's actual runtime contract so an AI-agent-callable tool doesn't get written like a regular workflow Code node.
czlonkowski/n8n-skills
Wires n8n workflows so failures are visible and recoverable: per-node error outputs, retries, error workflows and correct 4xx and 5xx webhook responses.
czlonkowski/n8n-skills
Keeps an n8n MCP session pointed at the right n8n instance, with rules for discovering, switching and verifying the target before credential writes and for recovering from misroutes.
Works with
Categories
Explains how to configure n8n nodes correctly: which fields each operation requires, how property dependencies show or hide fields, and which get_node detail level to use. The skill teaches configuration by progressive disclosure: start minimal, then add options. It stresses that required fields depend on the resource and operation chosen, with a Slack message post as an example, and that displayOptions make fields appear or disappear based on other values, as with the HTTP Request node's method and body settings.
n8n Node Configuration fits situations like: configuring an n8n node whose required fields depend on the operation; figuring out why a node field is hidden or missing; choosing between a small field patch and a full node update; looking up a specific property such as authentication or headers.
Run `npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a claude-code`. Or copy the skill folder (skills/n8n-node-configuration in czlonkowski/n8n-skills) into .claude/skills/n8n-node-configuration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a codex`. Or copy the skill folder (skills/n8n-node-configuration in czlonkowski/n8n-skills) into .agents/skills/n8n-node-configuration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add czlonkowski/n8n-skills --skill n8n-node-configuration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/n8n-node-configuration, .gemini/skills/n8n-node-configuration, .github/skills/n8n-node-configuration and .opencode/skills/n8n-node-configuration in your project.
Going by SKILL.md and its folder, n8n Node Configuration needs credentials named N8N_MCP_ACCESS_TOKEN. Our summary lists: Access to the n8n MCP tools, including get_node and validate_node.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
n8n Node Configuration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with n8n Node Configuration: N8n Architect (EtienneLescot/n8n-as-code, 1.6k stars), Agents Onboarding (fazer-ai/agents, 118 stars), Node Generator (dafthunk-com/dafthunk, 134 stars) and N8n Add Workflow (khanhduyvt0101/workflows, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
czlonkowski (a GitHub user) maintains it in czlonkowski/n8n-skills, which has 6,387 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 16, 2026.
Source: czlonkowski/n8n-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.