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.3.0.tar.gz (140.8 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.3.0-py3-none-win_amd64.whl (3.5 MB view details)

Uploaded Python 3Windows x86-64

n8nc-0.3.0-py3-none-manylinux_2_28_x86_64.whl (3.5 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

n8nc-0.3.0-py3-none-manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

n8nc-0.3.0-py3-none-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

n8nc-0.3.0-py3-none-macosx_10_12_x86_64.whl (3.4 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for n8nc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f2943168194dc3a9f23eac4ad222ca5e81d0e97054c0905fad71f40b1d0e38d8
MD5 d078e8e6f54b03ec1a4699162f1b52aa
BLAKE2b-256 2441fbd2655d2dd4b73d015290a922f5dd1ecc68d52441868161d986878096a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: n8nc-0.3.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.5 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.3.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4b9c65826162a1d3b299448e527c2b2bc82522341984fc588f2ad2d6a31962c3
MD5 c0e672de49cc752156d7e8e1cf894eba
BLAKE2b-256 57a8e6a85b013b460dbdc99627f2f94e4b5f6965cd711d8a6882a8fa2b6909d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: n8nc-0.3.0-py3-none-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 3.5 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.3.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf9e8ec4c39996ed9d20b904df871bab560380076767f4c5ceefaebc6a2f3774
MD5 5d5850e950d2a59310aa4778e0ddf91b
BLAKE2b-256 3f1308916c705bdb1d0c29f7abb9010da78da65791f0fdd6cc4ee6b26ab02218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for n8nc-0.3.0-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e3b7b651049d6dc79aa43ff2e120a3c5d0622625d2c8b583e22e09aa086381aa
MD5 07c4998cd27ea47b81825636eed8ddb4
BLAKE2b-256 5e1fff0c70e8b9684579e09ed915266ea1ccf6d188304331d829707e30ba491e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: n8nc-0.3.0-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.3 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.3.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c46b65de59b54243eb5ee284ea1763b65ba49e4c4679f42a2446686b1fe0540d
MD5 f204ac2ea41bec04d6f156832ba18e41
BLAKE2b-256 b46084ba6a552775bb429251bb17a0ebbb69d92b5a2b3e15714014e07ac22117

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for n8nc-0.3.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 614aee55471038294d4145c8a7635bd265f7f64c8cd2211cfdd11a6f957742f7
MD5 08f142a2c05e7546ad01de1d0a37cdeb
BLAKE2b-256 64f1b12702ec97384f5a4665ea849975d98f2249561b8b236a68c2d1ffa5135e

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