Skip to main content

CLI for n8n workflow automation

Project description

n8nc

CLI for n8n workflow automation. Sync workflows with Git, author them locally, and manage remote instances from the terminal.

Quick start

# Install (pick one)
cargo install n8nc              # From source
pip install n8nc                # Via pip
uvx n8nc --help                 # Run without installing

# Set up a repo
n8nc init --instance prod --url https://your-instance.app.n8n.cloud
n8nc auth add prod --token <api_key>

# Pull and track workflows
n8nc pull --all --instance prod
n8nc status

Installation

From crates.io

cargo install n8nc

From PyPI

pip install n8nc
# or run without installing:
uvx n8nc ls --instance prod

From GitHub releases

Pre-built binaries for Linux (x64, arm64), macOS (x64, arm64), and Windows (x64) on the releases page.

What it does

n8nc is three things:

  • Git sync for n8n workflows you want to track locally
  • Local authoring for draft workflows and structured node edits
  • Development CLI for listing, pulling, pushing, triggering, and inspecting executions

Every command supports --json for agent and script integration.

Commands

n8nc init                          Set up a workflow repo
n8nc doctor                        Check repo, auth, and API health

n8nc auth add|test|list|remove     Manage API tokens
n8nc auth session add|test|remove  Manage browser-session auth

n8nc ls                            List remote workflows
n8nc get <id-or-name>              Fetch and print a workflow
n8nc pull <id-or-name>             Pull a workflow into the repo
n8nc pull --all [--active]         Pull all workflows
n8nc push <file>                   Push a tracked workflow back
n8nc push --all                    Push all modified tracked workflows
n8nc activate <id-or-name>         Activate a workflow
n8nc deactivate <id-or-name>       Deactivate a workflow

n8nc runs ls                       List recent executions
n8nc runs get <id> [--details]     Inspect one execution
n8nc runs watch                    Watch executions live

n8nc workflow new <name>           Create a local draft
n8nc workflow create <file>        Publish a draft to n8n
n8nc workflow execute <id-or-name> Execute via configured backend
n8nc workflow show <file>          Inspect a local workflow
n8nc workflow rm <target>          Remove a workflow

n8nc node ls|add|set|rename|rm     Edit nodes in local workflows
n8nc conn add|rm                   Edit connections
n8nc expr set                      Set expressions on nodes
n8nc credential ls|schema|set      Discover and assign credentials

n8nc status [--refresh]            Show local sync state
n8nc diff <file> [--refresh]       Show local changes
n8nc trigger <url>                 Call a webhook URL
n8nc fmt [--check]                 Format workflow files
n8nc validate                      Validate workflow files
n8nc completions <shell>           Generate shell completions

Repo model

n8nc init creates:

.
├── n8n.toml           # Instance config
├── workflows/         # Tracked and draft workflow files
└── .n8n/cache/        # Base snapshots for local diff

Tracked workflows are stored as canonical JSON with a metadata sidecar:

workflows/<slug>--<id>.workflow.json
workflows/<slug>--<id>.meta.json

The sidecar binds each file to the instance it came from and records a hash used for safe push (lease check).

Auth

Tokens are resolved in order:

  1. N8NC_TOKEN_<ALIAS> env var
  2. OS keychain entry from n8nc auth add

Optional browser-session auth (for credential inventory fallback):

  1. N8NC_SESSION_COOKIE_<ALIAS> + N8NC_BROWSER_ID_<ALIAS> env vars
  2. OS keychain entries from n8nc auth session add

Workflow execution

trigger calls webhook URLs directly. For non-webhook workflows, configure an external backend in n8n.toml:

[instances.prod.execute]
backend = "command"
program = "uvx"
args = ["your-runner", "execute_workflow", "{workflow_id}", "{instance_alias}"]
stdin_json = true

Then run:

n8nc workflow execute "Nightly Digest" --instance prod --input '{"dryRun":true}'

Design

  • Same-instance first -- tracked files are bound to the instance they were pulled from
  • Agent-safe -- every command supports --json with structured envelopes
  • Deterministic -- workflows are canonicalized before storage and hashing
  • Safe push -- refuses to overwrite remote changes since the last pull
  • Sensitive-data aware -- scans for inline secrets on pull, push, and validate
  • Honest execution -- trigger is for webhooks; workflow execute delegates to a configured backend

Spec

Implementation notes and roadmap live in docs/cli-spec.md.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

n8nc-0.2.0.tar.gz (121.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

n8nc-0.2.0-py3-none-win_amd64.whl (3.4 MB view details)

Uploaded Python 3Windows x86-64

n8nc-0.2.0-py3-none-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

n8nc-0.2.0-py3-none-manylinux_2_28_aarch64.whl (3.2 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

n8nc-0.2.0-py3-none-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

n8nc-0.2.0-py3-none-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file n8nc-0.2.0.tar.gz.

File metadata

  • Download URL: n8nc-0.2.0.tar.gz
  • Upload date:
  • Size: 121.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for n8nc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 af32b2aceba1441d849a70d3159920f8124f9b0f03a3a8390e93a3ce462b5347
MD5 9a28d5ba3e19138816211cd1a1474640
BLAKE2b-256 9b1eba3abec96eded2812eca8b6dcfd811f55f3cd1caee87175921c669149a70

See more details on using hashes here.

File details

Details for the file n8nc-0.2.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: n8nc-0.2.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for n8nc-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 94ebfe5053b61c9207554bb1d69c2464812cab709786d512dc442033a2fda988
MD5 22fccfdcc651981264ed62c12fc30e44
BLAKE2b-256 f9d7b82d03d7d7fe8f5349288c1ccbc0c7a088fc552829b2bee973bbd8c65024

See more details on using hashes here.

File details

Details for the file n8nc-0.2.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: n8nc-0.2.0-py3-none-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 3, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for n8nc-0.2.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db706536a71b9e1a8bc142be6aee06d9a01dc517948bdd57674ebc723f2bc519
MD5 3daa331e2c9dad3fd1bdadc1e2c97db6
BLAKE2b-256 bcaaacf8cbf8cbaad42a8cf19ed8e538ac0541faf37487b328509d931fea83d1

See more details on using hashes here.

File details

Details for the file n8nc-0.2.0-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for n8nc-0.2.0-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6d6e33654fba21d70e1b2ccf26e08ff2890cd7b49714339614a5e49c353ff3ac
MD5 15839d0c10f82dfbfe2a724dab483f0b
BLAKE2b-256 3087b4018c09a28252b283e86528e720e1def148dfc2a6439713604a3111e82f

See more details on using hashes here.

File details

Details for the file n8nc-0.2.0-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: n8nc-0.2.0-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.2 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for n8nc-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db9f7cb04d7024a55073c505c24c85e51399ebd4edaa731499473dba34a7c94f
MD5 29b6f820a11fd0befa38abe417b8bc6e
BLAKE2b-256 f143380f08ffd4bca6e5b1d5bea4097fabb13dd27e0e5aeffc76e5fd3141d0ed

See more details on using hashes here.

File details

Details for the file n8nc-0.2.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for n8nc-0.2.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 70afe4b99d200bac70813943f1f33762ced837da8cfae88895acabb9f36c3e7d
MD5 8f3dbbc010f771a0bcc5e1529f2f6e39
BLAKE2b-256 78f230f2e9b746b0f329f60b176d60dda1d99bd19cefee3a07033ed6acae1c2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page