Workflow Builder
n8n-io/n8n
Load before calling build-workflow. An agent skill from n8n-io/n8n.
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…
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add EtienneLescot/n8n-as-code --skill n8n-architect -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install EtienneLescot/n8n-as-code n8n-architect --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/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/n8n-architect .claude/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .claude/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architectType 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 EtienneLescot/n8n-as-code --skill n8n-architect -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install EtienneLescot/n8n-as-code n8n-architect --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/n8n-architect .agents/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .agents/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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 EtienneLescot/n8n-as-code --skill n8n-architect -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install EtienneLescot/n8n-as-code n8n-architect --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/n8n-architect .cursor/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .cursor/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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/EtienneLescot/n8n-as-code.git --path skills/n8n-architect--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 EtienneLescot/n8n-as-code --skill n8n-architect -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install EtienneLescot/n8n-as-code n8n-architect --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/n8n-architect .gemini/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .gemini/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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 EtienneLescot/n8n-as-code n8n-architectInstalls 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 EtienneLescot/n8n-as-code --skill n8n-architect -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/n8n-architect .github/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .github/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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 EtienneLescot/n8n-as-code --skill n8n-architect -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install EtienneLescot/n8n-as-code n8n-architect --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EtienneLescot/n8n-as-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/n8n-architect .opencode/skills/n8n-architect && 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-architect" agent skill from https://github.com/EtienneLescot/n8n-as-code/tree/main/skills/n8n-architect into .opencode/skills/n8n-architect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "n8n-architect", 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-architectA 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…
N8n Architect is an agent skill from EtienneLescot/n8n-as-code. Use 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 context root.
Its SKILL.md is about 7.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Workflow automation. It works with n8n, Visual Studio Code and TypeScript. The repository describes itself as: Give your AI agent n8n superpowers. 537 nodes with full schemas, 7,700+ templates, Git-like sync, and TypeScript workflows. The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f28810c. 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.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
N8N_API_KEYN8N_NATIVE_MCP_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
N8n Architect loads about 7.3k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 3,386 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 patterns that need a careful read before installing.
- A workspace `.env` holding `N8N_HOST` (plus any of `N8N_API_KEY`, `N8N_NATIVE_MCP_URL`, `N8N_NATIVE_MCP_TOKEN`) config- Do not tell the user to run setup commands when you can run non-interactive commands yourself.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 EtienneLescot/n8n-as-code at commit f28810c, republished under its MIT licence (© EtienneLescot). 3,386 words, ~7,307 tokens.
.claude/skills/n8n-architect/SKILL.md (or your agent's skills folder).Use this skill for all n8n-as-code work: workspace readiness, environments, managed local instances, tunnels, workflow authoring, validation, sync, push, and pull.
Use npx --yes n8nac as the primary interface. Use npx --yes @n8n-as-code/n8n-manager only for local managed runtime lifecycle, tunnels, and workflow presentation commands that are explicitly exposed by n8n-manager.
n8nac-config.json, AGENTS.md, .agents/skills, and the configured workflowsPath.npx --yes n8nac update-ai from the context root, then read AGENTS.md. update-ai is designed to create or refresh the n8n-as-code block without destroying existing user or agent instructions.n8nac command and n8n-manager command listed in AGENTS.md. Those context-root commands override the portable examples in this skill.npx --yes n8nac env ..., npx --yes n8nac workspace ..., npx --yes n8nac list, pull, push, validate, test, and update-ai command from the context root unless the user explicitly gives another context root.AGENTS.md is bootstrap context only, not a source of configuration truth.workflowsPath from AGENTS.md.npx --yes n8nac env status --jsonworkflowsPath for workflow files. It is the configured workflow directory for the active environment.workflowsPath from environment name/id, instanceIdentifier, instanceUserIdentifier, projectId, projectName, or legacy sync fields.n8nac-config.json, ~/.n8n-manager, or n8n-manager secret files by hand.Resolve the effective environment through the backend before workflow work:
npx --yes n8nac env status --jsonenv status --json as the source of effective workspace readiness..env holding N8N_HOST (plus any of N8N_API_KEY, N8N_NATIVE_MCP_URL, N8N_NATIVE_MCP_TOKEN) configures the default environment on first use: env status --json then resolves with no env add, env auth set, env use, or native-mcp configure.env status --json fails because the workspace is not configured, use env add, env auth set, and env use to create or select a V4 workspace environment.npx --yes n8nac env ....cd to the context root.npx --yes n8nac update-ai, then read AGENTS.md.npx --yes n8nac env status --json. If it resolves with accessStatus: "ready", the workspace is ready — skip steps 4-9. A resolution with missing-api-key or invalid-api-key means only the credential is missing: go to step 7.npx --yes @n8n-as-code/n8n-manager instance list.npx --yes n8nac env add <name> --base-url <url> --workflows-path workflows/<name>
npx --yes n8nac env auth set <name> --api-key-stdin
npx --yes n8nac env use <name>For a managed local instance:
npx --yes n8nac env add Local --managed-instance <id> --workflows-path workflows/local
npx --yes n8nac env use Localnpx --yes n8nac update-ai after changing environments when the facade does not do it automatically.Use npx --yes n8nac env ... for workspace environments, remote URLs, active environment, API-key binding, projects, and workflow paths.
npx --yes n8nac env status --json
npx --yes n8nac env list
npx --yes n8nac env add <name> --base-url <url> --workflows-path workflows/<name>
npx --yes n8nac env auth set <name> --api-key-stdin
npx --yes n8nac env use <name>--api-key-stdin for API keys.env add --pin to create and pin the default environment in one process instead of a separate env use.env auth set binds the key to one environment, so several environments may share a base URL with one key each. Run it once per environment; apiKeySource in env status --json is workspace-environment when the environment uses its own key.npx --yes n8nac env --help or npx --yes n8nac env <subcommand> --help.Attach a managed local instance to the workspace with npx --yes n8nac env ...:
npx --yes n8nac env add Local --managed-instance <id> --workflows-path workflows/local
npx --yes n8nac env use LocalUse npx --yes @n8n-as-code/n8n-manager only for local managed instance lifecycle, tunnels, and workflow presentation commands that are part of the local runtime layer.
Inspect existing managed instances before changing local machine state:
npx --yes @n8n-as-code/n8n-manager instance list
npx --yes @n8n-as-code/n8n-manager instance --help
npx --yes @n8n-as-code/n8n-manager config getDo not invent n8n-manager subcommands. Use npx --yes @n8n-as-code/n8n-manager <subcommand> --help when unsure.
When the context root is not configured and no suitable existing instance is available, stop and ask the user to choose. Do not create infrastructure by default.
Present these choices clearly:
npx --yes n8nac env.If the user chooses a managed local Docker instance, ask the tunnel question separately:
Do not enable, refresh, or start a public tunnel unless the user explicitly requested public access, webhook testing, or approved the tunnel option. If public access is not needed, create/start the managed instance without --tunnel.
Only run these commands after the user has explicitly chosen the corresponding option.
Managed local instance without public tunnel:
npx --yes @n8n-as-code/n8n-manager instance create
npx --yes @n8n-as-code/n8n-manager instance start <id>
npx --yes @n8n-as-code/n8n-manager instance listManaged local instance with public tunnel:
npx --yes @n8n-as-code/n8n-manager instance create
npx --yes @n8n-as-code/n8n-manager instance start <id>
npx --yes @n8n-as-code/n8n-manager tunnel start <id>Instance and tunnel operations are per managed local instance:
npx --yes @n8n-as-code/n8n-manager instance start <id>
npx --yes @n8n-as-code/n8n-manager instance stop <id>
npx --yes @n8n-as-code/n8n-manager instance remove <id>
npx --yes @n8n-as-code/n8n-manager tunnel start <id>
npx --yes @n8n-as-code/n8n-manager tunnel stop <id>list to inspect workflow IDs, file paths, and sync status.npx --yes n8nac list
npx --yes n8nac pull <workflowId>
npx --yes n8nac push <path-to-workflow.workflow.ts> --verifypush requires the full workflow file path, either absolute or context-root-relative. Do not pass a bare filename.push --draft when the user wants to check the change in n8n first: it re-pins the previously published version so production keeps running what it already ran.workflowsPath returned by env status --json, then confirm it with npx --yes n8nac list --local.pull and conflict resolution operate on a single workflow ID.list is the lightweight command that covers all workflows at once.If push or pull reports a conflict, stop and inspect the conflict. Use explicit resolution commands only after choosing the intended direction:
npx --yes n8nac resolve <workflowId> --mode keep-current
npx --yes n8nac resolve <workflowId> --mode keep-incomingkeep-current force-pushes the local version.keep-incoming force-pulls the remote version.Never guess n8n node parameters.
npx --yes n8nac skills examples search "<workflow pattern>"
npx --yes n8nac skills search "<node or capability>"
npx --yes n8nac skills node-info <nodeName>
npx --yes n8nac skills validate <workflow.workflow.ts>npx --yes n8nac skills node-info <node1> <node2> ... --compact to inspect essential properties, required parameters, and valid options in one fast, token-efficient turn.type and valid typeVersion values from node-info.resourceLocator must be structured as { __rl: true, value: '...', mode: 'list' | 'id' | 'url' }.typeVersion returned by schema output.node-info output before writing values.The n8n-as-code MCP server is a client adapter for N8NAC tools. The native n8n MCP server is a separate live n8n instance endpoint. Native n8n MCP can complement this workflow for native knowledge, live state, and runtime execution, but it does not replace npx --yes n8nac, bundled knowledge, .workflow.ts, Git, or the sync discipline.
Use this routing policy:
npx --yes n8nac for code-first workflow authoring, validation, pull, push, credentials, execution history, and presentation. Use npx --yes n8nac skills as the bundled offline knowledge default.npx --yes n8nac native-mcp configure <environment> --token-stdin; do not ask the user to manually configure a separate MCP server for Claude Code or the VS Code Workbench.npx --yes n8nac native-mcp status --include-tools --json before relying on native tools.npx --yes n8nac list, fetch, verify, or bundled skills as the primary source for those live-audit facts when native MCP read-only tools are available.N8NAC_NATIVE_MCP_ALLOW_REMOTE=1 is explicitly set.includeData=true unless the user explicitly needs payload data and N8NAC_NATIVE_MCP_ALLOW_EXECUTION_DATA=1 is set.npx --yes n8nac test when the execution strategy is to exercise the real webhook, chat, or form trigger contract.npx --yes n8nac test, such as workflow ID execution, non-webhook workflow testing, native pin-data test preparation, or direct execution diagnostics.npx --yes n8nac test; do not run it just because the tool exists.npx --yes n8nac pull <workflowId> so the .workflow.ts file and Git remain the source of truth.Use-case routing examples:
npx --yes n8nac commands and .workflow.ts files.npx --yes n8nac skills commands first.npx --yes n8nac test for real webhook, chat, or form trigger contracts; prefer native runtime execution only for explicit workflow-ID execution, non-webhook testing, native pin-data preparation, or direct execution diagnostics.Do not treat the presence of any MCP server as permission to call native n8n MCP tools. Native n8n MCP is used if and only if the generated execution or investigation strategy needs live n8n capabilities that local N8NAC cannot provide as well.
Native MCP assist is a complementary knowledge, live-state, and runtime enrichment path, not the primary authoring or sync path.
If your runtime exposes n8n-as-code MCP tools (search_n8n_knowledge, get_n8n_node_info,
search_n8n_workflow_examples, validate_n8n_workflow), prefer them over the commands below.
They answer from a resident process that parses the ontology once, so every call after the
first is effectively free, while each shell command pays a fresh process start.
Otherwise, use these commands instead of guessing:
npx --yes n8nac skills search "<node or capability>"
npx --yes n8nac skills node-info <nodeName>
npx --yes n8nac skills node-schema <nodeName>
npx --yes n8nac skills docs "<topic>"
npx --yes n8nac skills guides "<topic>"
npx --yes n8nac skills examples search "<workflow pattern>"
npx --yes n8nac skills examples info <id>
npx --yes n8nac skills examples download <id>--compact on search, node-info, and node-schema: same schemas, bounded output (required params + snippet + gating flags).batch --compact over N separate lookups: one process parses the ontology once. Pass --calls '<json>', --calls-file <path> (file avoids shell-quoting), or pipe JSON via stdin. --compact applies to search, node-info, node-schema; examples-search and examples-info always return full workflow data. Example: npx --yes n8nac skills batch --compact --calls '[{"cmd":"search","query":"gmail"},{"cmd":"node-info","name":"gmailTool"}]'.node-info and node-schema also take multiple names directly: npx --yes n8nac skills node-info <node1> <node2> ... --compact.examples search when the user asks for a common automation pattern.search, node-info, batch) is faster and authoritative. Skip examples otherwise.npx --yes n8nac <subcommand> --help; do not invent flags.@n8n-as-code/transformer.source.out(0).to(target.in(0))..uses(), never .out().to().ai_tool and ai_document connections are arrays: ai_tool: [this.Tool.output].ai_languageModel: this.Model.output.ai_languageModel: [this.Model.output, this.FallbackModel.output] (fallback model, Model Selector).node-info for connection-dependent boolean flags before declaring .uses() connections.Every .workflow.ts file starts with a <workflow-map> block. Read that map first, locate the property name you need, then read only the relevant class section.
import { workflow, node, links } from '@n8n-as-code/transformer';
@workflow({
name: 'Workflow Name',
active: false
})
export class MyWorkflow {
@node({
name: 'Descriptive Name',
type: '/* exact type from node-info */',
version: 4,
position: [250, 300]
})
MyNode = {
/* parameters from node-info */
};
@node({
name: 'Next Node',
type: '/* exact type from node-info */',
version: 3,
position: [520, 300]
})
NextNode = {};
@links()
defineRouting() {
this.MyNode.out(0).to(this.NextNode.in(0));
}
}{{ $json.fieldName }}.{{ $('Node Name').item.json.field }}.$node["Name"].json.field unless you are preserving an existing workflow and have a reason.value1 is the expression being evaluated and value2 is the literal comparison value.Get Customers, Send Slack Alert, or Normalize Payload.Node1, HTTP Request, or Code when a more specific name is available.Use the <workflow-map> block as the index before loading large workflow files.
// <workflow-map>
// Workflow : My Workflow
// Nodes : 12 | Connections: 14
//
// NODE INDEX
// Property name Node type (short) Flags
// ScheduleTrigger scheduleTrigger
// AgentGenerateApplication agent [AI] [creds]
// OpenaiChatModel lmChatOpenAi [creds] [ai_languageModel]
// Memory memoryBufferWindow [ai_memory]
// GithubCheckBranchRef httpRequest [onError->out(1)]
//
// ROUTING MAP
// ScheduleTrigger
// -> Configuration
// -> BuildProfileSources -> LoopOverProfileSources
//
// AI CONNECTIONS
// AgentGenerateApplication.uses({ ai_languageModel: OpenaiChatModel, ai_memory: Memory })
// </workflow-map>Navigation rule:
<workflow-map> first.AI sub-nodes are not regular data-flow nodes.
@links()
defineRouting() {
this.ChatTrigger.out(0).to(this.AiAgent.in(0));
this.AiAgent.uses({
ai_languageModel: this.OpenaiModel.output,
ai_memory: this.Memory.output,
ai_outputParser: this.OutputParser.output,
ai_tool: [this.SearchTool.output],
});
}.uses() for language models, memory, tools, parsers, embeddings, vector stores, retrievers, and other AI sub-nodes..out().to().ai_tool and ai_document must be arrays; every entry lands on input index 0.needsFallback: true (Agent, Basic LLM Chain) needs a second model on input 1: ai_languageModel: [this.Model.output, this.FallbackModel.output]. Same for the Model Selector node.node-info before declaring .uses()..out().to().ai_tool: this.Tool.output instead of ai_tool: [this.Tool.output].value1 and value2.formFieldsUi.fieldItems when the current schema expects formFields: { values: [...] }.push.Prefer push --verify: it fetches the pushed workflow and validates it in the same process. A standalone verify right after push --verify re-checks the same state — skip it unless you pushed without --verify.
npx --yes n8nac push <path> --verify
npx --yes n8nac test-plan <workflowId> --jsonFor webhook, chat, or form workflows, prefer the production test sequence:
npx --yes n8nac workflow activate <workflowId>
npx --yes n8nac test <workflowId> --prodnpx --yes n8nac workflow present is the standard way to show a workflow to the user. It is v4-environment aware and part of the workflow authoring loop.
Run it whenever one of these is true:
npx --yes n8nac workflow present <workflowId> --jsonRules:
url returned by workflow present --json as the user-facing URL.npx --yes n8nac list first and select the matching workflow.npx --yes @n8n-as-code/n8n-manager presentWorkflowResult; it is a legacy runtime command and is not workspace-environment aware.workflow present fails, report the backend diagnostic and then provide the best direct n8n URL only as a fallback.For webhook, chat, or form workflows:
test-plan to inspect trigger type, endpoint, and suggested payload.--prod by default.npx --yes n8nac push <path-to-workflow.workflow.ts> --verify
npx --yes n8nac test-plan <workflowId> --json
npx --yes n8nac workflow activate <workflowId>
npx --yes n8nac test <workflowId> --prodUse bare npx --yes n8nac test <workflowId> only when a test URL was intentionally armed in the n8n editor.
For GET/HEAD webhooks that read from $json.query, prefer:
npx --yes n8nac test <workflowId> --query '{"key":"value"}' --prodIf a webhook returns success but the workflow behavior is wrong, inspect executions instead of guessing:
npx --yes n8nac execution list --workflow-id <workflowId> --limit 5 --json
npx --yes n8nac execution get <executionId> --include-data --jsonWhen a workflow is blocked by missing credentials, resolve the credential gap without rewriting unrelated workflow logic.
npx --yes n8nac workflow credential-required <workflowId> --json
npx --yes n8nac credential schema <type>
npx --yes n8nac credential list --json
npx --yes n8nac credential create --type <type> --name <name> --file cred.json --json
npx --yes n8nac workflow activate <workflowId>workflow credential-required exits non-zero when at least one credential is missing. Treat that as a signal to act, not as a workflow-code failure.credential schema to discover required fields.--file for credential creation. Do not pass secrets inline in shell arguments.For most workflow tasks:
env status --json.workflowsPath from the backend response.list..workflow.ts file.--verify.npx --yes n8nac workflow present <workflowId> --json.npx --yes n8nac workflow present <workflowId> --json instead of composing a URL manually.n8nac env ... for workspace environments and n8n-manager only for managed local instances.© EtienneLescot, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/n8n-architect of EtienneLescot/n8n-as-code.
Open the folder on GitHubat commit f28810c
N8n Architect 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 Architect this skillEtienneLescot/n8n-as-code | 1.6k | — | ~7.3k | Automated safety check: Warn | MIT | |
| Workflow Buildern8n-io/n8n | 207k | — | ~15k | Automated safety check: Warn | Custom licence | |
| Node Generatordafthunk-com/dafthunk | 136 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Open Flowoomol-lab/open-flow | 237 | — | ~411 | Automated safety check: Notes | Apache-2.0 | |
| Integration Generatordafthunk-com/dafthunk | 136 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Template Generatordafthunk-com/dafthunk | 136 | — | ~1.4k | Automated safety check: Pass | MIT |
n8n-io/n8n
Load before calling build-workflow. An agent skill from n8n-io/n8n.
dafthunk-com/dafthunk
Generate new workflow nodes with implementation, tests, and registry registration
oomol-lab/open-flow
Create, inspect, edit, check, run, and publish persistent Open Flow workflows through an existing Server, or assess and convert n8n workflows to Open Flow.
dafthunk-com/dafthunk
Generate new OAuth integration providers for Dafthunk with backend providers, type definitions, frontend configurations, and integration nodes
dafthunk-com/dafthunk
Generate workflow templates with coherent node graphs and integration tests
n8n-io/n8n
Use the n8n CLI to manage workflows, credentials, executions, and more on an n8n instance.
Works with
Categories
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…. N8n Architect is an agent skill from EtienneLescot/n8n-as-code. Use 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 context root.
N8n Architect fits situations like: the user explicitly wants to create; troubleshoot n8n workflows; asks about n8n nodes; wants to use n8n-as-code in the current context root.
Run `npx skills add EtienneLescot/n8n-as-code --skill n8n-architect -a claude-code`. Or copy the skill folder (skills/n8n-architect in EtienneLescot/n8n-as-code) into .claude/skills/n8n-architect in your project. Claude Code loads it when a task matches its description.
Run `npx skills add EtienneLescot/n8n-as-code --skill n8n-architect -a codex`. Or copy the skill folder (skills/n8n-architect in EtienneLescot/n8n-as-code) into .agents/skills/n8n-architect 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 EtienneLescot/n8n-as-code --skill n8n-architect -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-architect, .gemini/skills/n8n-architect, .github/skills/n8n-architect and .opencode/skills/n8n-architect in your project.
Going by SKILL.md and its folder, N8n Architect needs the command-line tools its instructions call (npx) and credentials named N8N_API_KEY and N8N_NATIVE_MCP_TOKEN. Our summary lists: Node.js; Docker; A credential in N8N_API_KEY; A credential in N8N_NATIVE_MCP_TOKEN.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way.
N8n Architect is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.3k tokens (SKILL.md is roughly 29k 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 Architect: Workflow Builder (n8n-io/n8n, 207k stars), Node Generator (dafthunk-com/dafthunk, 136 stars), Open Flow (oomol-lab/open-flow, 237 stars) and Integration Generator (dafthunk-com/dafthunk, 136 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
EtienneLescot (a GitHub user) maintains it in EtienneLescot/n8n-as-code, which has 1,599 GitHub stars. The repository was last updated on October 10, 2026.
Source: EtienneLescot/n8n-as-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.