{"repo":"n8n-io/n8n","free":true,"listed":false,"github":"https://github.com/n8n-io/n8n","clone":"git clone https://github.com/n8n-io/n8n.git","description":"Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.","language":"TypeScript","stars":200887,"topics":["ai","apis","automation","cli","data-flow","development","integration-framework","integrations","ipaas","low-code","low-code-platform","mcp","mcp-client","mcp-server","n8n","no-code","self-hosted","typescript","workflow","workflow-automation"],"license":null,"category":"i_paas","readme_excerpt":"![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)\n\n# n8n – The Platform for AI Agents and Workflow Automation\n\nFair-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](https://app.n8n.cloud/login), and connect to 1500+ integrations. AI automation you can trust with real work, from prototype to production.\n\n![n8n.io - Screenshot](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-screenshot-readme.png)\n\n## Key Capabilities\n\n- **AI-Native Automation Platform**: Build and operationalize AI workflows and multi-step agents using your own data, models, and tools\n- **Model Flexibility, No Lock-In**: Connect to OpenAI, Anthropic, Google, or open-source models and switch providers without changing your architecture\n- **From Prototype to Production**: Design multi-step AI workflows with logic, tool use, human approvals, and full observability\n- **Code When You Need It**: Combine visual building with JavaScript, Python, and npm packages for advanced AI workflows\n- **Enterprise-Ready AI**: Self-host or deploy securely with role-based access, audit trails, and support for sensitive data\n- **Leverage What Already Exists**: 1500+ integrations and 9,000+ workflow [templates](https://n8n.io/workflows) to connect AI with your existing systems\n\n## Quick Start\n\nTry n8n instantly with [npx](https://docs.n8n.io/hosting/installation/npm/) (requires [Node.js](https://nodejs.org/en/)):\n\n```\nnpx n8n\n```\n\nOr deploy with [Docker](https://docs.n8n.io/hosting/installation/docker/):\n\n```\ndocker volume create n8n_data\ndocker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n\n```\n\nAccess the editor at http://localhost:5678\n\n## Resources\n\n- 📚 [Documentation](https://docs.n8n.io)\n- 🔧 [1500+ Integrations](https://n8n.io/integrations)\n- 💡 [Example Workflows](https://n8n.io/workflows)\n- 🤖 [AI & LangChain Guide](https://docs.n8n.io/advanced-ai/)\n- 👥 [Community Forum](https://community.n8n.io)\n- 📖 [Community Tutorials](https://community.n8n.io/c/tutorials/28)\n\n## Support\n\nNeed help? Our community forum is the place to get support and connect with other users:\n[community.n8n.io](https://community.n8n.io)\n\n## License\n\nn8n is [fair-code](https://faircode.io) distributed under the [Sustainable Use License](https://github.com/n8n-io/n8n/blob/master/LICENSE.md) and [n8n Enterprise License](https://github.com/n8n-io/n8n/blob/master/LICENSE_EE.md).\n\n- **Source Available**: Always visible source code\n- **Self-Hostable**: Deploy anywhere\n- **Extensible**: Add your own nodes and functionality\n\n[Enterprise Licenses](mailto:license@n8n.io) available for additional features and support.\n\nAdditional information about the license model can be found in the [docs](https://docs.n8n.io/sustainable-use-license/).\n\n## Contributing\n\nFound a bug 🐛 or have a feature idea ✨? Check our [Contributing Guide](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTING.md) for a setup guide & best practices.\n\n## Join the Team\n\nWant to shape the future of automation? Check out our [job posts](https://n8n.io/careers) and join our team!\n\n## What does n8n mean?\n\n**Short answer:** It means \"nodemation\" and is pronounced as n-eight-n.\n\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**\n","default_branch":"master","files":26733,"tree":[".actrc",".agents/skills/AGENTS.md",".agents/skills/community-pr-readiness-check/SKILL.md",".agents/skills/community-pr-readiness-check/reference/checks.md",".agents/skills/community-pr-readiness-check/reference/label-flow.md",".agents/skills/community-pr-readiness-check/reference/re-review.md",".agents/skills/community-pr-readiness-check/reference/teams.md",".agents/skills/content-design/SKILL.md",".agents/skills/conventions/SKILL.md",".agents/skills/create-community-node-lint-rule/SKILL.md",".agents/skills/create-community-node-lint-rule/reference.md",".agents/skills/create-instance-ai-eval/SKILL.md",".agents/skills/create-instance-ai-eval/case-shapes.md",".agents/skills/create-instance-ai-eval/running-evals.md",".agents/skills/create-instance-ai-eval/sourcing-cases.md",".agents/skills/create-issue/SKILL.md",".agents/skills/create-pr/SKILL.md",".agents/skills/create-skill/SKILL.md",".agents/skills/db-migrations/SKILL.md",".agents/skills/design-system/SKILL.md",".agents/skills/design-system/rules/web-animation-guidelines.md",".agents/skills/design-system/rules/web-interface-guidelines.md",".agents/skills/experiments/SKILL.md",".agents/skills/experiments/reference.md",".agents/skills/human-like-code-review/SKILL.md",".agents/skills/linear-issue/SKILL.md",".agents/skills/loom-transcript/SKILL.md",".agents/skills/nathan/SKILL.md",".agents/skills/node-add-oauth/SKILL.md",".agents/skills/protect-endpoints/SKILL.md",".agents/skills/public-api/SKILL.md",".agents/skills/public-api/reference.md",".agents/skills/reproduce-bug/SKILL.md",".agents/skills/spec-driven-development/SKILL.md",".agents/skills/telemetry/SKILL.md",".aikido",".boundaries-baseline.json",".claude/README.md",".claude/plugins/n8n/.claude-plugin/marketplace.json",".claude/plugins/n8n/.claude-plugin/plugin.json",".claude/plugins/n8n/README.md",".claude/plugins/n8n/agents/developer.md",".claude/plugins/n8n/agents/linear-issue-triager.md",".claude/plugins/n8n/commands/plan.md",".claude/plugins/n8n/commands/triage.md",".claude/plugins/n8n/scripts/track-skill-usage.mjs",".claude/plugins/n8n/skills/community-pr-readiness-check",".claude/plugins/n8n/skills/content-design",".claude/plugins/n8n/skills/conventions",".claude/plugins/n8n/skills/create-community-node-lint-rule",".claude/plugins/n8n/skills/create-instance-ai-eval",".claude/plugins/n8n/skills/create-issue",".claude/plugins/n8n/skills/create-pr",".claude/plugins/n8n/skills/create-skill",".claude/plugins/n8n/skills/db-migrations",".claude/plugins/n8n/skills/design-system",".claude/plugins/n8n/skills/experiments",".claude/plugins/n8n/skills/human-like-code-review",".claude/plugins/n8n/skills/linear-issue",".claude/plugins/n8n/skills/loom-transcript",".claude/plugins/n8n/skills/nathan",".claude/plugins/n8n/skills/node-add-oauth",".claude/plugins/n8n/skills/protect-endpoints",".claude/plugins/n8n/skills/public-api",".claude/plugins/n8n/skills/reproduce-bug",".claude/plugins/n8n/skills/setup-mcps/SKILL.md",".claude/plugins/n8n/skills/spec-driven-development",".claude/plugins/n8n/skills/telemetry",".claude/settings.json",".code-health-baseline.json",".devcontainer/Dockerfile",".devcontainer/codespaces/Dockerfile",".devcontainer/codespaces/README.md",".devcontainer/codespaces/agent-worker.mjs",".devcontainer/codespaces/codespaces-env.sh",".devcontainer/codespaces/codespaces-secrets.sh",".devcontainer/codespaces/devcontainer.json",".devcontainer/codespaces/docker-compose.yml",".devcontainer/codespaces/gh-shim.sh",".devcontainer/codespaces/gitcredential-refresh.sh",".devcontainer/codespaces/post-start.mjs",".devcontainer/codespaces/tmux.conf",".devcontainer/devcontainer.json",".devcontainer/docker-compose.yml",".dockerignore",".editorconfig",".env.eval.example",".env.local.example",".git-blame-ignore-revs",".gitattributes",".github/CI-TELEMETRY.md",".github/CLAUDE.md",".github/CODEOWNERS",".github/DEVELOPING_V3.md",".github/ISSUE_TEMPLATE/01-bug.yml",".github/ISSUE_TEMPLATE/config.yml",".github/OWNERS",".github/WORKFLOWS.md",".github/actionlint.yml",".github/actions/build-n8n-docker/action.yml",".github/actions/ci-filter/__tests__/ci-filter.test.ts",".github/actions/ci-filter/action.yml",".github/actions/ci-filter/ci-filter.mjs",".github/actions/docker-registry-login/action.yml",".github/actions/load-n8n-docker/action.yml",".github/actions/setup-nodejs/action.yml",".github/actions/setup-nodejs/safe-chain.config.json",".github/docker-compose.yml",".github/poutine-rules/unpinned_action.rego",".github/pull_request_template.md",".github/pull_request_title_conventions.md",".github/scripts/attest-image-sbom.mjs",".github/scripts/attest-image-sbom.test.mjs",".github/scripts/branch-replay.mjs",".github/scripts/branch-replay.test.mjs",".github/scripts/bump-versions.mjs",".github/scripts/bump-versions.test.mjs",".github/scripts/cla/check-signatures.mjs",".github/scripts/cla/manage-label.mjs",".github/scripts/cla/post-final-status.mjs",".github/scripts/cla/resolve-context.mjs",".github/scripts/cla/update-pr-comment.mjs",".github/scripts/cleanup-ghcr-images.mjs",".github/scripts/cleanup-release-branch.mjs",".github/scripts/cleanup-release-branch.test.mjs",".github/scripts/compute-backport-targets.mjs",".github/scripts/compute-backport-targets.test.mjs",".github/scripts/create-github-release.mjs",".github/scripts/db-test-matrix.mjs",".github/scripts/db-test-matrix.test.mjs",".github/scripts/detect-new-packages.mjs",".github/scripts/determine-release-candidate-branch-for-track.mjs",".github/scripts/determine-release-version-changes.mjs",".github/scripts/determine-release-version-changes.test.mjs",".github/scripts/determine-version-info.mjs",".github/scripts/determine-version-info.test.mjs",".github/scripts/docker/docker-config.mjs",".github/scripts/docker/docker-tags.mjs",".github/scripts/docker/get-manifest-digests.mjs",".github/scripts/docker/kafka-native-smoke-check.mjs",".github/scripts/ensure-provenance-fields.mjs",".github/scripts/ensure-release-candidate-branches.mjs",".github/scripts/ensure-release-candidate-branches.test.mjs",".github/scripts/fixtures/mock-github-event-labeled.json",".github/scripts/fixtures/mock-github-event.json",".github/scripts/get-release-versions.mjs",".github/scripts/github-helpers.mjs",".github/scripts/github-helpers.test.mjs",".github/scripts/jsconfig.json",".github/scripts/move-track-tag.mjs",".github/scripts/owners-assign-reviewers.mjs",".github/scripts/owners-assign-reviewers.test.mjs",".github/scripts/owners-review-recommendations.mjs",".github/scripts/owners-review-recommendations.test.mjs",".github/scripts/owners.mjs",".github/scripts/owners.test.mjs",".github/scripts/package.json",".github/scripts/plan-release.mjs",".github/scripts/pnpm-lock.yaml",".github/scripts/pnpm-utils.mjs",".github/scripts/populate-cloud-databases.mjs",".github/scripts/post-qa-metrics-comment.mjs",".github/scripts/promote-backport-labels-on-minor.mjs",".github/scripts/promote-github-release.mjs",".github/scripts/quality/check-ownership-checkbox.mjs",".github/scripts/quality/check-ownership-checkbox.test.mjs",".github/scripts/quality/check-pr-size.mjs",".github/scripts/quality/check-pr-size.test.mjs",".github/scripts/quality/handle-size-override.mjs",".github/scripts/rebase-bundle-branch.mjs",".github/scripts/rebase-bundle-branch.test.mjs",".github/scripts/retry.mjs",".github/scripts/send-build-stats.mjs",".github/scripts/send-docker-stats.mjs",".github/scripts/send-metrics.mjs",".github/scripts/send-version-release-notification.mjs",".github/scripts/set-latest-for-monorepo-packages.mjs",".github/scripts/set-latest-for-monorepo-packages.test.mjs",".github/scripts/slack/build-trivy-blocks.mjs",".github/scripts/slack/build-trivy-blocks.test.mjs",".github/scripts/slack/notify.mjs",".github/scripts/slack/notify.test.mjs",".github/scripts/stale/clean-stale-branches.mjs",".github/scripts/stale/clean-stale-branches.test.mjs",".github/scripts/sync-conflict-owners.mjs",".github/scripts/sync-conflict-owners.test.mjs",".github/scripts/sync-master-to-3x.mjs",".github/scripts/sync-master-to-3x.test.mjs",".github/scripts/trim-fe-packageJson.js",".github/scripts/update-changelog.mjs",".github/scripts/verify-safechain.mjs",".github/scripts/verify-safechain.test.mjs",".github/test-metrics/e2e-impact-map.json",".github/test-metrics/playwright.json",".github/workflows/backport.yml",".github/workflows/build-base-image.yml",".github/workflows/build-benchmark-image.yml",".github/workflows/build-node-pc-image.yml",".github/workflows/build-v3-nightly.yml",".github/workflows/build-windows.yml",".github/workflows/ci-check-pr-title.yml",".github/workflows/ci-check-release-from-fork.yml",".github/workflows/ci-cla-check.yml",".github/workflows/ci-codeowners-validation.yml",".github/workflows/ci-detect-new-packages.yml",".github/workflows/ci-instance-ai-evals.yml",".github/workflows/ci-master.yml",".github/workflows/ci-mcp-evals.yml",".github/workflows/ci-owners-assign-reviewers.yml",".github/workflows/ci-owners-review-recommendations.yml",".github/workflows/ci-pr-quality.yml",".github/workflows/ci-pull-request-review.yml",".github/workflows/ci-pull-requests.yml",".github/workflows/ci-python.yml",".github/workflows/ci-restrict-private-merges.yml",".github/workflows/clean-stale-branches.yml",".github/workflows/community-pr-close-stale.yml",".github/workflows/docker-build-push.yml",".github/workflows/docker-build-smoke.yml",".github/workflows/mutation-health-nightly.yml",".github/workflows/prepare-docker-reusable.yml",".github/workflows/release-build-daytona-snapshot.yml",".github/workflows/release-chromatic.yml",".github/workflows/release-create-experiment.yml",".github/workflows/release-create-github-releases.yml",".github/workflows/release-create-minor-pr.yml",".github/workflows/release-create-patch-pr.yml",".github/workflows/release-create-pr.yml",".github/workflows/release-merge-tag-to-branch.yml",".github/workflows/release-populate-cloud-with-releases.yml",".github/workflows/release-promote-backport-labels.yml",".github/workflows/release-promote-github-release.yml",".github/workflows/release-publish-new-package.yml",".github/workflows/release-publish-post-release.yml",".github/workflows/release-publish.yml",".github/workflows/release-push-to-channel.yml",".github/workflows/release-schedule-patch-prs.yml",".github/workflows/release-set-stable-npm-packages-to-latest.yml",".github/workflows/release-standalone-package.yml",".github/workflows/release-storybook.yml",".github/workflows/release-update-pointer-tag.yml",".github/workflows/release-version-release-notification.yml",".github/workflows/sbom-generation-callable.yml",".github/workflows/sec-ci-reusable.yml",".github/workflows/sec-poutine-reusable.yml",".github/workflows/sec-publish-fix-1x.yml",".github/workflows/sec-publish-fix.yml",".github/workflows/sec-rebase-bundle-branches.yml",".github/workflows/sec-sync-public-to-private.yml",".github/workflows/sec-zizmor-reusable.yml",".github/workflows/security-trivy-scan-callable.yml",".github/workflows/test-bench-reusable.yml",".github/workflows/test-benchmark-destroy-nightly.yml",".github/workflows/test-benchmark-nightly.yml",".github/workflows/test-db-reusable.yml",".github/workflows/test-dev-server-smoke-reusable.yml",".github/workflows/test-e2e-coverage-nightly.yml",".github/workflows/test-e2e-helm.yml",".github/workflows/test-e2e-infrastructure-reusable.yml",".github/workflows/test-e2e-performance-reusable.yml",".github/workflows/test-e2e-reusable.yml",".github/workflows/test-evals-ai-release.yml",".github/workflows/test-evals-ai-reusable.yml",".github/workflows/test-evals-ai.yml",".github/workflows/test-evals-discovery.yml",".github/workflows/test-evals-instance-ai.yml",".github/workflows/test-evals-mcp.yml",".github/workflows/test-evals-python.yml",".github/workflows/test-get-n8n.yml",".github/workflows/test-linting-reusable.yml",".github/workflows/test-unit-reusable.yml",".github/workflows/test-workflow-scripts-reusable.yml",".github/workflows/test-workflows-callable.yml",".github/workflows/test-workflows-nightly.yml",".github/workflows/test-workflows-pr-comment.yml",".github/workflows/util-approve-and-set-automerge.yml",".github/workflows/util-backport-bundle.yml",".github/workflows/util-cleanup-abandoned-release-branches.yml",".github/workflows/util-cleanup-pr-images.yml",".github/workflows/util-data-tooling.yml",".github/workflows/util-determine-current-version.yml",".github/workflows/util-ensure-release-candidate-branches.yml",".github/workflows/util-notify-merge-queue-removal.yml",".github/workflows/util-notify-pr-status.yml",".github/workflows/util-publish-api-schema.yml",".github/workflows/util-qa-metrics-comment-reusable.yml",".github/workflows/util-sync-master-to-3x.yml",".github/workflows/util-update-node-popularity.yml",".gitignore",".npmignore",".npmrc",".opencode/skills/setup-mcps/SKILL.md",".poutine.yml",".prettierignore",".prettierrc.js",".tbls.postgres.yml",".tbls.sqlite.yml",".vscode/DEBUGGER.md",".vscode/extensions.json",".vscode/launch.json",".vscode/settings.default.json","AGENTS.md","CHANGELOG.md","CLAUDE.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","CONTRIBUTOR_LICENSE_AGREEMENT.md","LICENSE.md","LICENSE_EE.md","README.md","SECURITY.md","assets/n8n-logo.png","assets/n8n-screenshot-readme.png","assets/n8n-screenshot.png","biome.jsonc","codecov.yml","cubic.yaml","docker/get-n8n-compose.yml","docker/get-n8n.sh","docker/images/engine/Dockerfile","docker/images/n8n-base/Dockerfile","docker/images/n8n/Dockerfile","docker/images/n8n/README.md","docker/images/n8n/docker-entrypoint.sh","docker/images/node-pc/Dockerfile","docker/images/runners/Dockerfile","docker/images/runners/Dockerfile.distroless","docker/images/runners/README.md","docker/images/runners/n8n-task-runners.json","docker/test-get-n8n.sh","docs/db.md","docs/generated/postgres-schema/README.md","docs/generated/postgres-schema/public.agent_chat_attachments.md","docs/generated/postgres-schema/public.agent_chat_subscriptions.md","docs/generated/postgres-schema/public.agent_checkpoints.md","docs/generated/postgres-schema/public.agent_credential_dependency.md","docs/generated/postgres-schema/public.agent_eval_dataset.md","docs/generated/postgres-schema/public.agent_eval_rating.md","docs/generated/postgres-schema/public.agent_eval_result.md","docs/generated/postgres-schema/public.agent_eval_run.md","docs/generated/postgres-schema/public.agent_execution.md","docs/generated/postgres-schema/public.agent_execution_threads.md","docs/generated/postgres-schema/public.agent_files.md","docs/generated/postgres-schema/public.agent_history.md","docs/generated/postgres-schema/public.agent_task_definition.md","docs/generated/postgres-schema/public.agent_task_run_lock.md","docs/generated/postgres-schema/public.agent_task_snapshot.md","docs/generated/postgres-schema/public.agents.md","docs/generated/postgres-schema/public.agents_memory_entries.md","docs/generated/postgres-schema/public.agents_memory_entry_cursors.md","docs/generated/postgres-schema/public.agents_memory_entry_locks.md","docs/generated/postgres-schema/public.agents_memory_entry_sources.md","docs/generated/postgres-schema/public.agents_messages.md","docs/generated/postgres-schema/public.agents_observation_cursors.md","docs/generated/postgres-schema/public.agents_observation_locks.md","docs/generated/postgres-schema/public.agents_observations.md","docs/generated/postgres-schema/public.agents_resources.md","docs/generated/postgres-schema/public.agents_threads.md","docs/generated/postgres-schema/public.ai_builder_temporary_workflow.md","docs/generated/postgres-schema/public.annotation_tag_entity.md","docs/generated/postgres-schema/public.auth_identity.md","docs/generated/postgres-schema/public.auth_provider_sync_history.md","docs/generated/postgres-schema/public.binary_data.md","docs/generated/postgres-schema/public.chat_hub_agent_tools.md","docs/generated/postgres-schema/public.chat_hub_agents.md","docs/generated/postgres-schema/public.chat_hub_messages.md","docs/generated/postgres-schema/public.chat_hub_session_tools.md","docs/generated/postgres-schema/public.chat_hub_sessions.md","docs/generated/postgres-schema/public.chat_hub_tools.md","docs/generated/postgres-schema/public.credential_dependency.md","docs/generated/postgres-schema/public.credentials_entity.md","docs/generated/postgres-schema/public.data_table.md","docs/generated/postgres-schema/public.data_table_column.md","docs/generated/postgres-schema/public.deployment_key.md","docs/generated/postgres-schema/public.dynamic_credential_entry.md","docs/generated/postgres-schema/public.dynamic_credential_resolver.md","docs/generated/postgres-schema/public.dynamic_credential_user_entry.md","docs/generated/postgres-schema/public.evaluation_collection.md","docs/generated/postgres-schema/public.evaluation_config.md","docs/generated/postgres-schema/public.event_destinations.md","docs/generated/postgres-schema/public.execution_annotation_tags.md","docs/generated/postgres-schema/public.execution_annotations.md","docs/generated/postgres-schema/public.execution_data.md","docs/generated/postgres-schema/public.execution_entity.md","docs/generated/postgres-schema/public.execution_metadata.md","docs/generated/postgres-schema/public.folder.md","docs/generated/postgres-schema/public.folder_tag.md","docs/generated/postgres-schema/public.insights_by_period.md","docs/generated/postgres-schema/public.insights_metadata.md","docs/generated/postgres-schema/public.insights_raw.md","docs/generated/postgres-schema/public.installed_nodes.md","docs/generated/postgres-schema/public.installed_packages.md","docs/generated/postgres-schema/public.instance_ai_checkpoints.md","docs/generated/postgres-schema/public.instance_ai_events.md","docs/generated/postgres-schema/public.instance_ai_iteration_logs.md","docs/generated/postgres-schema/public.instance_ai_mcp_registry_connections.md","docs/generated/postgres-schema/public.instance_ai_messages.md","docs/generated/postgres-schema/public.instance_ai_observation_cursors.md","docs/generated/postgres-schema/public.instance_ai_observation_locks.md","docs/generated/postgres-schema/public.instance_ai_observational_memory.md"],"storefront":"/r/n8n-io","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/n8n-io/n8n/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}