Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Go to file
Arvin Ansari 70b3f2fcaf feat(core): Let the agent read which nodes the workflows in scope use (no-changelog)
The dependency index already records a row per node type per workflow, kept
current on every save, and the workflow repository already resolves a
`nodeTypes` filter against it. No caller ever supplied one, so "which workflows
use Postgres" meant fetching every workflow and parsing its nodes, and "what is
this folder built out of" was not answerable at all.

- `workflows(list)` gains `nodeTypes`. It matches the node a workflow actually
  contains, so a workflow merely NAMED for a service is correctly excluded and
  one that uses it under an unrelated name is correctly found.
- `workflows(node-usage)` returns the node-type histogram for a scope, most-used
  first, and composes with the folder arguments. Offered only where the adapter
  can answer it, so the agent is never shown a summary it would get an error from.
- Counts DISTINCT workflows rather than node instances: three HTTP Request nodes
  in one workflow are one user of the type, which is the question being asked.
- The scan is capped, and a capped scan says its counts are a lower bound —
  silently truncating would read as a total, and these are numbers a caller
  quotes back to the user.
- Gated separately from folder context. The two answer different questions
  (where something lives vs what it is made of), and one switch could not tell
  which of them moved a result.

Shared field descriptions are hoisted to constants because the schema sanitizer
requires a single description per field name across the action union.
2026-08-27 19:06:06 +02:00
.agents/skills ci: Bump PR title action to v2.5.0 and document engine scope (#36514) 2026-08-18 12:41:03 +00:00
.claude docs: Restructure Linear triage report for readability (#35095) 2026-08-03 10:19:52 +00:00
.devcontainer chore: Update skills marketplace name to n8n-agent-skills (#36535) 2026-08-19 06:01:13 +00:00
.github ci: Set up Buildx builder for node-pc publish (#36618) 2026-08-20 06:01:31 +00:00
.opencode/skills/setup-mcps chore: Unify agent skill sources (no-changelog) (#30541) 2026-06-16 09:25:09 +00:00
.vscode fix(core): Force full execution data fetching for evaluation test runs (#27335) 2026-03-23 09:56:05 +00:00
assets ci: Revert path change for n8n-logo.png (#12874) 2025-01-28 08:49:33 +01:00
docker build: Switch n8n image to Node 26 (#36291) 2026-08-19 09:57:41 +00:00
docs feat(core): Loosen the workflow review activity schema for cause events (no-changelog) (#36376) 2026-08-19 08:47:02 +00:00
packages feat(core): Let the agent read which nodes the workflows in scope use (no-changelog) 2026-08-27 19:06:06 +02:00
patches build: Install Kafka binding on fresh clone (#36502) 2026-08-18 14:19:53 +00:00
scripts fix: Keep Kafka patch in Docker image build (no-changelog) (#36569) 2026-08-19 07:41:55 +00:00
security chore: Standardize license metadata across all first-party packages and tighten SBOM pipeline (no-changelog) (#31880) 2026-06-08 10:19:32 +00:00
.actrc ci: Add blacksmith build step and cache restore (#19563) 2025-09-16 09:59:39 +01:00
.aikido chore: Add Aikido scan configuration (no-changelog) (#32195) 2026-06-15 07:26:04 +00:00
.boundaries-baseline.json refactor(editor): Move htmlUtils into new @n8n/frontend-utils package behind re-export shims (no-changelog) (#34355) 2026-07-20 10:02:40 +00:00
.code-health-baseline.json chore: Add single-instance dependency duplication checks (#34681) 2026-08-17 07:39:48 +00:00
.dockerignore chore(core): Add @n8n/engine HTTP server and harness (no-changelog) (#29913) 2026-05-08 14:08:11 +00:00
.editorconfig ci: Ensure that eslint runs on all frontend code (no-changelog) (#4602) 2022-11-15 18:20:54 +01:00
.env.eval.example feat(core): Extend evaluations to support node groups (no-changelog) (#35629) 2026-08-19 08:42:53 +00:00
.env.local.example refactor: Remove persistBuilderSessions feature flag (#27481) 2026-03-30 12:16:07 +00:00
.git-blame-ignore-revs refactor(editor): Rename design-system unit test files and snapshots (no-changelog) (#11539) 2024-11-05 14:20:02 +02:00
.gitattributes ci: Add linguist-generated to generated docs files (#36018) 2026-08-13 10:04:40 +00:00
.gitignore refactor(core): Generate DB migration index files instead of hand-maintaining them (no-changelog) (#35581) 2026-08-06 11:53:27 +00:00
.npmignore build: Update ESLint to v9 (#16639) 2025-06-27 10:42:47 +02:00
.npmrc chore: Remove shamefully-hoist (#32569) 2026-06-25 10:03:07 +00:00
.poutine.yml ci: Add MCP workflow evals CI (no-changelog) (#33019) 2026-06-26 08:53:01 +00:00
.prettierignore test: Remove cypress infrastracture (#21173) 2025-10-28 11:00:04 +01:00
.prettierrc.js 🎨 Set up linting and formatting (#2120) 2021-08-29 20:58:11 +02:00
.tbls.postgres.yml chore(core): Make DB schema docs generation deterministic (#32373) 2026-06-16 11:35:33 +00:00
.tbls.sqlite.yml chore(core): Make DB schema docs generation deterministic (#32373) 2026-06-16 11:35:33 +00:00
AGENTS.md fix: Resolve the codespace box name from disk and fix the dev-loop guidance (no-changelog) (#36254) 2026-08-14 08:49:50 +00:00
biome.jsonc build(editor): Add the frontend module workspace layout and shared tsconfig base (no-changelog) (#35957) 2026-08-11 08:19:26 +00:00
CHANGELOG.md 🚀 Release 2.36.0 (#36483) 2026-08-18 08:24:56 +00:00
CLAUDE.md chore: Move to AGENTS.md file with agent instructions (#22227) 2025-11-25 12:41:53 +01:00
CODE_OF_CONDUCT.md refactor: Format root-level files (#3858) 2022-08-19 15:34:02 +02:00
codecov.yml ci: Full nightly coverage report — unit + integration + E2E + Python merged into one lcov (no-changelog) (#31945) 2026-06-11 06:25:18 +00:00
CONTRIBUTING.md fix: Resolve the codespace box name from disk and fix the dev-loop guidance (no-changelog) (#36254) 2026-08-14 08:49:50 +00:00
CONTRIBUTOR_LICENSE_AGREEMENT.md refactor: Format root-level files (#3858) 2022-08-19 15:34:02 +02:00
cubic.yaml chore: Add cubic review rule for the shared sleep utility (no-changelog) (#35126) 2026-07-29 07:25:07 +00:00
lefthook.yml chore: Add single-instance dependency duplication checks (#34681) 2026-08-17 07:39:48 +00:00
LICENSE_EE.md docs(license): Introduce n8n Enterprise License (#3945) 2022-08-29 22:08:42 +02:00
LICENSE.md refactor(core): Mark all backend Enterprise Edition files and dirs (#12350) 2024-12-24 13:02:05 +01:00
package.json chore: Bump strnum 2.2.3 → 2.4.2 (minor) to clear 1 Aikido finding (#36670) 2026-08-20 01:20:29 +00:00
pnpm-lock.yaml chore: Bump strnum 2.2.3 → 2.4.2 (minor) to clear 1 Aikido finding (#36670) 2026-08-20 01:20:29 +00:00
pnpm-workspace.yaml feat: Add Slack Agent view support (#36352) 2026-08-19 16:03:01 +00:00
README.md docs: Update README with new product positioning (#33538) 2026-07-03 10:50:18 +00:00
SECURITY.md chore: Revise security vulnerability reporting instructions (#21432) 2025-10-31 13:30:50 +01:00
tsconfig.configs.json chore: Bundle/2.x (#33793) 2026-07-08 08:48:55 +03:00
tsconfig.json chore: Migrate all base packages to TypeScript 7 (#34338) 2026-07-17 12:56:29 +03:00
turbo.json build: Drop the ^typecheck dependency from the typecheck task (#35089) 2026-07-28 13:26:58 +00:00
vitest.workspace.ts chore: Update node popularity data (#24145) 2026-01-12 13:57:43 +00:00

Banner image

n8n – The Platform for AI Agents and Workflow Automation

Fair-code platform to build and deploy AI agents and workflows. Combine a visual canvas with custom code, run it self-hosted or in the cloud, and connect to 1500+ integrations. AI automation you can trust with real work, from prototype to production.

n8n.io - Screenshot

Key Capabilities

  • AI-Native Automation Platform: Build and operationalize AI workflows and multi-step agents using your own data, models, and tools
  • Model Flexibility, No Lock-In: Connect to OpenAI, Anthropic, Google, or open-source models and switch providers without changing your architecture
  • From Prototype to Production: Design multi-step AI workflows with logic, tool use, human approvals, and full observability
  • Code When You Need It: Combine visual building with JavaScript, Python, and npm packages for advanced AI workflows
  • Enterprise-Ready AI: Self-host or deploy securely with role-based access, audit trails, and support for sensitive data
  • Leverage What Already Exists: 1500+ integrations and 9,000+ workflow templates to connect AI with your existing systems

Quick Start

Try n8n instantly with npx (requires Node.js):

npx n8n

Or deploy with Docker:

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Access the editor at http://localhost:5678

Resources

Support

Need help? Our community forum is the place to get support and connect with other users: community.n8n.io

License

n8n is fair-code distributed under the Sustainable Use License and n8n Enterprise License.

  • Source Available: Always visible source code
  • Self-Hostable: Deploy anywhere
  • Extensible: Add your own nodes and functionality

Enterprise Licenses available for additional features and support.

Additional information about the license model can be found in the docs.

Contributing

Found a bug 🐛 or have a feature idea ✨? Check our Contributing Guide for a setup guide & best practices.

Join the Team

Want to shape the future of automation? Check out our job posts and join our team!

What does n8n mean?

Short answer: It means "nodemation" and is pronounced as n-eight-n.

Long answer: "I get that question quite often (more often than I expected) so I decided it is probably best to answer it here. While looking for a good name for the project with a free domain I realized very quickly that all the good ones I could think of were already taken. So, in the end, I chose nodemation. 'node-' in the sense that it uses a Node-View and that it uses Node.js and '-mation' for 'automation' which is what the project is supposed to help with. However, I did not like how long the name was and I could not imagine writing something that long every time in the CLI. That is when I then ended up on 'n8n'." - Jan Oberhauser, Founder and CEO, n8n.io