{"id":48448301,"url":"https://github.com/8dvibes/n8n-cli","last_synced_at":"2026-04-09T22:01:41.441Z","repository":{"id":349032247,"uuid":"1200775594","full_name":"8Dvibes/n8n-cli","owner":"8Dvibes","description":"Zero-dependency Python CLI for the n8n REST API. 80+ commands for workflows, executions, credentials, nodes, webhooks. Auto-updating catalog of 543+ nodes. Multi-instance profiles. pip install, no npm/Node.js required. Works with n8n Cloud and self-hosted. Built for AI agents and automation scripts.","archived":false,"fork":false,"pushed_at":"2026-04-06T18:36:12.000Z","size":4612,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-07T20:02:29.417Z","etag":null,"topics":["ai-agents","api","automation","claude-code","cli","devtools","n8n","n8n-api","n8n-cloud","no-dependencies","python","self-hosted","workflow","workflow-automation"],"latest_commit_sha":null,"homepage":"https://aibuildlab.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/8Dvibes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"AUDIT_REPORT.md","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"8Dvibes"}},"created_at":"2026-04-03T20:13:59.000Z","updated_at":"2026-04-07T10:47:39.000Z","dependencies_parsed_at":"2026-04-07T20:00:37.775Z","dependency_job_id":null,"html_url":"https://github.com/8Dvibes/n8n-cli","commit_stats":null,"previous_names":["8dvibes/n8n-cli"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/8Dvibes/n8n-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8Dvibes%2Fn8n-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8Dvibes%2Fn8n-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8Dvibes%2Fn8n-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8Dvibes%2Fn8n-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/8Dvibes","download_url":"https://codeload.github.com/8Dvibes/n8n-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8Dvibes%2Fn8n-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31573788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","api","automation","claude-code","cli","devtools","n8n","n8n-api","n8n-cloud","no-dependencies","python","self-hosted","workflow","workflow-automation"],"created_at":"2026-04-06T19:00:32.737Z","updated_at":"2026-04-08T21:00:55.564Z","avatar_url":"https://github.com/8Dvibes.png","language":"Python","funding_links":["https://github.com/sponsors/8Dvibes"],"categories":[],"sub_categories":[],"readme":"# n8n-cli\n\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![GitHub release](https://img.shields.io/github/v/release/8Dvibes/n8n-cli)](https://github.com/8Dvibes/n8n-cli/releases)\n[![No Dependencies](https://img.shields.io/badge/dependencies-zero-brightgreen.svg)](https://github.com/8Dvibes/n8n-cli)\n\n**Scriptable, pipeable CLI for the n8n REST API. Zero external dependencies.**\n\n80+ commands. Auto-updating node catalog (543+ nodes). Multi-instance profiles. Works with n8n Cloud and self-hosted. Ships with 33 Claude Code skills.\n\n![n8n-cli demo](demo.gif)\n\n\n```\n$ n8n-cli workflows list --active\nID                   Active   Name\n----------------------------------------------------------------------\n0NGypLmiqvKIpwrz     Yes      Gmail: Untrash Email (Multi-Account)\n11zReJylAUZeh2ev     Yes      Update Event - Team\n1Et6fk45FStEU5qc     Yes      Gmail: Remove Label (Multi-Account)\n\n$ n8n-cli nodes search slack\nNode                           Display Name              Description\n------------------------------------------------------------------------------------------\nslack                          Slack                     Consume Slack API\nslackTrigger                   Slack Trigger             Handle Slack events via webhooks\n\n$ n8n-cli --json executions list --status error --limit 3 | jq '.[].id'\n\"7322\"\n\"7316\"\n\"7310\"\n```\n\nBuilt by [AI Build Lab](https://aibuildlab.com) -- teaching context engineering for agentic systems.\n\n## Install\n\n```bash\n# From PyPI\npip install n8n-toolkit\n\n# From GitHub\npip install git+https://github.com/8Dvibes/n8n-cli.git\n\n# From source\ngit clone https://github.com/8Dvibes/n8n-cli.git\ncd n8n-cli\npip install .\n```\n\n## Quick Start\n\n```bash\n# Configure your n8n instance\nn8n-cli config set-profile cloud --url \"https://your-instance.app.n8n.cloud/api/v1\" --key \"your-api-key\" --default\n\n# Or use environment variables\nexport N8N_API_URL=\"https://your-instance.app.n8n.cloud/api/v1\"\nexport N8N_API_KEY=\"your-api-key\"\n\n# Check connection\nn8n-cli health\n\n# List workflows\nn8n-cli workflows list\nn8n-cli workflows list --active\nn8n-cli wf ls --tag \"production\"\n\n# Get workflow details\nn8n-cli workflows get \u003cid\u003e\n\n# Export / Import\nn8n-cli workflows export \u003cid\u003e -o workflow.json\nn8n-cli workflows import workflow.json --activate\n```\n\n## Claude Code Skills\n\nn8n-cli ships with **33 [Claude Code skills](https://docs.claude.com/claude-code)** -- pre-built slash commands that teach Claude Code how to drive n8n-cli for common workflows. Once installed, you can type `/n8n-cli-status`, `/n8n-cli-debug`, `/n8n-cli-create` etc. inside any Claude Code session and Claude will execute the right `n8n-cli` commands for you.\n\n```bash\n# See what's bundled and what's already installed\nn8n-cli skills list\n\n# Install all 33 into ~/.claude/skills/\nn8n-cli skills install\n\n# Install just one\nn8n-cli skills install n8n-cli-status\n\n# Overwrite existing\nn8n-cli skills install --force\n\n# Print the install target\nn8n-cli skills path\n```\n\nAfter installing, restart Claude Code (or open a new session) and the slash commands appear in your skill picker.\n\n### Core (the 11 originals)\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-status` | Health check, active workflows, recent errors -- one-shot dashboard |\n| `/n8n-cli-debug` | Pull failed executions, analyze error patterns, suggest fixes |\n| `/n8n-cli-create` | Describe a workflow in English, Claude builds it and imports it |\n| `/n8n-cli-import` | Import a workflow JSON with guided credential mapping |\n| `/n8n-cli-export` | Export workflows to JSON for git, backup, or migration |\n| `/n8n-cli-monitor` | Watch the execution stream and alert on failures |\n| `/n8n-cli-migrate` | Move workflows between cloud and self-hosted (with credential remapping) |\n| `/n8n-cli-backup` | Full instance backup to a git-tracked directory |\n| `/n8n-cli-diff` | Compare workflows between instances or against local JSON |\n| `/n8n-cli-webhook-test` | Send test payloads to webhook workflows |\n| `/n8n-cli-creds` | Credential gap analysis -- find what's missing for a workflow |\n\n### Hygiene \u0026 governance\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-cleanup` | Find dead workflows, orphaned credentials, untagged junk -- triage list with safe-to-delete recommendations |\n| `/n8n-cli-cost` | Execution cost analysis: top consumers, hourly distribution, suspected spammers |\n| `/n8n-cli-schedule-audit` | Audit Schedule Triggers across all workflows, find collisions, suggest a rebalanced schedule |\n| `/n8n-cli-tag-governance` | Find untagged workflows, propose tags based on content, bulk-apply |\n\n### Authoring \u0026 refactoring\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-document` | Generate human-readable markdown docs from a workflow JSON |\n| `/n8n-cli-template` | Convert a workflow into a reusable template, or instantiate a new workflow from one |\n| `/n8n-cli-refactor` | Analyze a workflow for simplification opportunities and propose a refactor |\n| `/n8n-cli-review` | PR-style code review of workflow changes with risk badges |\n\n### Dependency mapping\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-deps` | Build a dependency graph: workflow → sub-workflow → credential → webhook. Output as tree, mermaid, or JSON |\n| `/n8n-cli-impact` | \"If I delete X, what breaks?\" -- reverse blast-radius analysis |\n| `/n8n-cli-node-usage` | Search across all workflows for usage of a specific node, credential, or pattern |\n\n### Production ops\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-meta-monitor` | Generate a meta-workflow inside n8n that monitors all your other workflows and alerts on failures |\n| `/n8n-cli-upgrade-preflight` | Pre-flight check before upgrading n8n: deprecated nodes, breaking changes, package compatibility |\n| `/n8n-cli-bulk` | Safe bulk ops with mandatory dry-run: activate by tag, archive by age, swap credentials, etc. |\n\n### Testing\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-test-fixtures` | Generate realistic test payloads for webhook workflows (happy path + edge + error + security) |\n| `/n8n-cli-replay` | Pull a real failed execution, capture its input, replay it deliberately for debugging |\n| `/n8n-cli-smoke` | Define and run a smoke-test suite that verifies critical workflows respond correctly |\n\n### Bridge to other tools\n\n| Skill | What it does |\n|---|---|\n| `/n8n-cli-from-mcp` | Convert an MCP server or Claude Code skill into the equivalent n8n workflow |\n| `/n8n-cli-to-mcp` | Wrap an n8n workflow as an agent-callable tool (MCP, OpenAI function, Anthropic tool, or HTTP) |\n| `/n8n-cli-from-cron` | Read a crontab and generate equivalent n8n workflows for each entry |\n| `/n8n-cli-from-launchd` | macOS-specific: read launchd plists and generate equivalent n8n workflows |\n| `/n8n-cli-from-zapier` | Migrate a Zapier zap to an equivalent n8n workflow |\n\nThe skills install to `~/.claude/skills/` by default. Override with `CLAUDE_SKILLS_DIR=/some/path n8n-cli skills install`.\n\n## Commands\n\n### Workflows (`workflows` / `wf`)\n\n```\nlist [--active] [--inactive] [--tag TAG] [--name NAME] [--project-id ID] [--limit N]\nget \u003cid\u003e\ncreate \u003cfile.json\u003e\nupdate \u003cid\u003e \u003cfile.json\u003e\ndelete \u003cid\u003e\nactivate \u003cid\u003e\ndeactivate \u003cid\u003e\nexport \u003cid\u003e [-o file.json]\nimport \u003cfile.json\u003e [--activate]\narchive \u003cid\u003e\nunarchive \u003cid\u003e\ntransfer \u003cid\u003e \u003cproject-id\u003e\ntags \u003cid\u003e\nset-tags \u003cid\u003e \u003ctag-id\u003e [tag-id...]\nclear-tags \u003cid\u003e\n```\n\n### Executions (`executions` / `exec`)\n\n```\nlist [--workflow-id ID] [--status error|success|waiting|running|new] [--limit N]\nget \u003cid\u003e\nretry \u003cid\u003e\ndelete \u003cid\u003e\nstop \u003cid\u003e\n```\n\n### Credentials (`credentials` / `creds`)\n\n```\nlist [--type TYPE] [--limit N]\nget \u003cid\u003e\nschema \u003ctype-name\u003e\ncreate \u003cfile.json\u003e\ndelete \u003cid\u003e\ntransfer \u003cid\u003e \u003cproject-id\u003e\n```\n\n### Tags\n\n```\nlist [--limit N]\ncreate \u003cname\u003e\nget \u003cid\u003e\nupdate \u003cid\u003e \u003cname\u003e\ndelete \u003cid\u003e\n```\n\n### Variables (`variables` / `vars`)\n\n```\nlist [--limit N]\ncreate \u003ckey\u003e \u003cvalue\u003e\nget \u003cid\u003e\nupdate \u003cid\u003e [--key KEY] [--value VALUE]\ndelete \u003cid\u003e\n```\n\n### Projects\n\n```\nlist [--limit N]\nget \u003cid\u003e\ncreate \u003cname\u003e\nupdate \u003cid\u003e \u003cname\u003e\ndelete \u003cid\u003e\nusers \u003cid\u003e\n```\n\n### Users\n\n```\nlist [--limit N]\nget \u003cid-or-email\u003e\ndelete \u003cid\u003e\nchange-role \u003cid\u003e \u003crole\u003e\n```\n\n### Community Packages (`packages` / `pkg`)\n\n```\nlist\ninstall \u003cnpm-package-name\u003e\nget \u003cname\u003e\nupdate \u003cname\u003e\nuninstall \u003cname\u003e\n```\n\n### Nodes (local catalog, auto-updating)\n\n```\nsearch \u003cquery\u003e                        Search 543+ nodes by keyword\nget \u003cname\u003e [--full]                   Get node details (--full for complete property schema)\nlist [--group G] [--category C] [--credential C] [--ai-tools] [--limit N]\nupdate                                Force-refresh catalog from npm\ninfo                                  Show cached catalog version\n```\n\nThe node catalog downloads from official n8n npm packages and auto-checks for updates on every use. No n8n instance connection needed.\n\n### Webhooks (`webhooks` / `wh`)\n\n```\nlist                                  List all webhook URLs from active workflows\ntest \u003cworkflow-id\u003e [--data '{}'] [--method POST]\n```\n\n### Skills (Claude Code)\n\n```\nlist                                  List bundled skills + install status\ninstall [name...] [--force]           Install skills into ~/.claude/skills/\nuninstall \u003cname\u003e [name...]            Remove installed skills\npath                                  Print install target directory\ndoctor                                Validate every bundled SKILL.md against the live CLI surface\n```\n\n### Other\n\n```\nhealth              Check n8n instance connectivity\naudit               Generate security audit [--categories credentials,database,filesystem,instance,nodes]\nsource-control pull Source control pull [--force]\ndiscover            Show API capabilities\nconfig show         Show current profile\nconfig set-profile  Create/update a profile\nconfig list-profiles\nconfig use \u003cname\u003e   Switch default profile\nconfig delete-profile \u003cname\u003e\n```\n\n## Multi-Instance Support\n\n```bash\n# Set up profiles\nn8n-cli config set-profile cloud --url \"https://instance.app.n8n.cloud/api/v1\" --key \"key1\" --default\nn8n-cli config set-profile selfhosted --url \"https://n8n.myserver.com/api/v1\" --key \"key2\"\n\n# Switch between them\nn8n-cli --profile selfhosted workflows list\nn8n-cli --profile cloud health\n\n# Or set default\nn8n-cli config use selfhosted\n```\n\n## JSON Output\n\nAdd `--json` to any command for machine-readable output:\n\n```bash\nn8n-cli --json workflows list --active | jq '.[].name'\nn8n-cli --json executions list --status error | jq length\n```\n\n## Config\n\nConfig stored at `~/.n8n-cli.json` (mode 600). Environment variables take priority:\n\n| Variable | Description |\n|----------|-------------|\n| `N8N_API_URL` | n8n API base URL |\n| `N8N_API_KEY` | API key |\n| `N8N_PROFILE` | Profile name to use |\n\n## Why n8n-cli?\n\n| | n8n-cli | MCP Servers | n8n UI |\n|---|---------|-------------|--------|\n| Works from any terminal | Yes | No (needs MCP client) | No |\n| Pipeable / scriptable | Yes | No | No |\n| Multi-instance switching | Yes (`--profile`) | Manual config swap | One at a time |\n| Node catalog with search | Yes (543+ nodes, auto-updating) | Depends on server | Built-in |\n| Works with any AI agent | Yes (Bash) | Claude Code only | Manual |\n| Dependencies | Zero | Node.js + npm | Browser |\n\n## Example Prompts for AI Agents\n\nDon't want to memorize commands? Just tell your AI agent what you need:\n\n\u003e \"Check my n8n instance for any failed executions today and tell me what went wrong\"\n\n\u003e \"Export all my active workflows to a folder for git version control\"\n\n\u003e \"Build me a workflow that checks a Google Sheet every morning and posts a summary to Slack\"\n\n\u003e \"Run a security audit and tell me which credentials aren't being used\"\n\nSee **[EXAMPLES.md](EXAMPLES.md)** for 13 more copy-paste prompts you can hand to Claude Code, Cursor, Codex, or any AI agent.\n\n## Requirements\n\n- Python 3.9+\n- No external dependencies (stdlib only)\n- Works with n8n Cloud and self-hosted instances\n\n## Support the Project\n\nIf this is useful to you, here's how you can help:\n- Star the repo (it helps with discoverability)\n- Fork it and try it out\n- Share it with your n8n community\n- [Sponsor](https://github.com/sponsors/8Dvibes) if you want to support continued development\n- File issues or PRs for features you'd like to see\n\n## Contributing\n\nIssues and PRs welcome. This project uses zero external dependencies by design -- please keep it that way.\n\n## License\n\nMIT -- see [LICENSE](LICENSE)\n\n---\n\nBuilt by **[AI Build Lab](https://aibuildlab.com)** | [Tyler Fisk](https://github.com/8Dvibes) | [@tyfisk](https://x.com/tyfisk)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8dvibes%2Fn8n-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F8dvibes%2Fn8n-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8dvibes%2Fn8n-cli/lists"}