| name | n8n-cli |
| description | Use this skill for service operations only. DO NOT use this skill for CLI implementation lifecycle work such as creating, testing, updating, troubleshooting, validating, removing, or documenting the CLI tool itself; delegate those tasks to cli-tool-expert. MANDATORY: Use this skill for ALL n8n CLI operations. Invoke the repo-owned launcher as `$HOME/.local/bin/n8n`, not bare `n8n` or `n8n-cli`, and do not guess flag syntax without loading this skill first. Covers workflows, nodes, executions, credentials, data tables, server/logs, auth, and profiles. Triggers: n8n, n8n cli, n8n workflows, n8n executions, n8n credentials, n8n nodes, n8n data tables, list n8n workflows, n8n server logs, my n8n, trigger n8n workflow, n8n execution history, install n8n node |
Execute n8n operations using the repo-owned launcher at `$HOME/.local/bin/n8n`.
All n8n interactions should use that explicit launcher path.
<quick_start>
The canonical launcher for this repo is $HOME/.local/bin/n8n. On this host,
Homebrew also provides unrelated n8n and n8n-cli binaries, so do not rely
on bare command names.
The repo-owned n8n CLI follows this pattern:
$HOME/.local/bin/n8n <command-group> <action> [arguments] [options]
| Task | Command |
|---|
| List workflows | $HOME/.local/bin/n8n workflows list --table |
| Get workflow detail | $HOME/.local/bin/n8n workflows get <workflow_id> |
| Trigger a workflow | $HOME/.local/bin/n8n workflows execute <workflow_id> |
| Query recent executions | $HOME/.local/bin/n8n executions list --filter created_at:gte:2026-04-11 --table |
|
This host already has upstream/vendor Homebrew binaries named both `n8n` and
`n8n-cli`. `command -v n8n` can resolve to `/opt/homebrew/bin/n8n`, where
`n8n auth status -t` fails with `Error: Command "auth" not found`, and
`command -v n8n-cli` can also resolve to Homebrew. The durable repo contract is:
**always invoke the repo-owned launcher as `$HOME/.local/bin/n8n`**.
Use `usage.json` as the primary syntax source. Do not run unbounded n8n
group-level help probes or unbounded local Node source-inspection probes against
global n8n `node_modules` paths. `$HOME/.local/bin/n8n data-tables --help` is
known to hang for over 40 seconds and can exit `130` after Ctrl+C with no
output; a local Node
heredoc reading
`/opt/homebrew/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/DataTable/DataTable.node.js`
has shown the same failure shape. If live help or local source inspection is
required, select the leaf command or exact source path from `usage.json` or the
repo-owned n8n CLI source, capture stdout/stderr under the task workspace, and
run it with an explicit deadline. Treat a timeout as blocker evidence, not as
successful command discovery.
`$HOME/.local/bin/n8n workflows list` has no `--json` option. The command's
default stdout is JSON; `--table` switches to table output. For machine
parsing, run `$HOME/.local/bin/n8n workflows list --properties "id,name,active"`
without `--json`, save stdout to a file, verify the command status and non-empty
file, then parse. For human display, use `--table`. The supported options are
the ones in `usage.json`:
`--table`, `--limit`, `--filter`, `--properties`, `--active`, and `--profile`.
- **auth** -- login, logout, status, refresh, test credentials
- **auth** -- Authentication commands and nested `auth profiles` management
- **cache** -- manage the local response cache
- **workflows** -- list, get, create, update, delete, activate, deactivate, export, execute, assign-error-handler, node
- **nodes** -- test, create, deploy, remove, install, list, get community node packages
- **credentials** -- list, get, create, delete, rename, schema for server credentials
- **data-tables** -- CRUD on n8n Data Tables (list, get, create, delete, columns, rows, insert, update-rows, delete-rows)
- **executions** -- query execution history (list, get, events via SSH)
- **server** -- upgrade, version, restart, logs, config
All list commands support `--filter/-f` using `field:op:value` syntax.
Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, `like`, `ilike`, `null`, `notnull`, `contains`, `startswith`, `endswith`.
Examples: `--filter name:contains:sync`, `--filter active:eq:true`, `--filter created_at:gte:2026-04-11`.
`$HOME/.local/bin/n8n workflows create` emits the created workflow JSON on
stdout. When a later step needs the workflow ID, save stdout to a file, verify
the create command exited `0`, then parse `.id` from that JSON with `jq -r '.id'`
or another JSON parser. Do not grep for labels such as `id:`; JSON uses
`"id":`, and an unguarded no-match can make a successful create look failed.