@n8n/node-cli

0.4.0 • Public • Published

@n8n/node-cli

Official CLI for developing community nodes for n8n.

🚀 Getting Started

To create a new node, run:

pnpm create @n8n/node

This will generate a project with pnpm scripts that use this CLI under the hood.

📦 Generated Project Commands

After creating your node with pnpm create @n8n/node, you'll use these commands in your project:

Development

pnpm dev
# Runs: n8n-node dev

Building

pnpm build
# Runs: n8n-node build

Linting

pnpm lint
# Runs: n8n-node lint

pnpm lint:fix
# Runs: n8n-node lint --fix

Publishing

pnpm run release
# Runs: n8n-node release

🛠️ CLI Reference

Note: These commands are typically wrapped by pnpm scripts in generated projects.

n8n-node [COMMAND] [OPTIONS]

Commands

n8n-node new

Create a new node project.

n8n-node new [NAME] [OPTIONS]

Flags:

Flag Description
-f, --force Overwrite destination folder if it already exists
--skip-install Skip installing dependencies
--template <template> Choose template: declarative/custom, declarative/github-issues, programmatic/example

Examples:

n8n-node new
n8n-node new n8n-nodes-my-app --skip-install
n8n-node new n8n-nodes-my-app --force
n8n-node new n8n-nodes-my-app --template declarative/custom

Note: This command is used internally by pnpm create @n8n/node to provide the interactive scaffolding experience.

n8n-node dev

Run n8n with your node in development mode with hot reload.

n8n-node dev [--external-n8n] [--custom-user-folder <value>]

Flags:

Flag Description
--external-n8n Run n8n externally instead of in a subprocess
--custom-user-folder <path> Folder to use to store user-specific n8n data (default: ~/.n8n-node-cli)

This command:

  • Starts n8n on http://localhost:5678 (unless using --external-n8n)
  • Links your node to n8n's custom nodes directory (~/.n8n-node-cli/.n8n/custom)
  • Rebuilds on file changes for live preview
  • Watches for changes in your src/ directory

Examples:

# Standard development with built-in n8n
n8n-node dev

# Use external n8n instance
n8n-node dev --external-n8n

# Custom n8n extensions directory
n8n-node dev --custom-user-folder /home/user

n8n-node build

Compile your node and prepare it for distribution.

n8n-node build

Flags: None

Generates:

  • Compiled TypeScript code
  • Bundled node package
  • Optimized assets and icons
  • Ready-to-publish package in dist/

n8n-node lint

Lint the node in the current directory.

n8n-node lint [--fix]

Flags:

Flag Description
--fix Automatically fix problems

Examples:

# Check for linting issues
n8n-node lint

# Automatically fix fixable issues
n8n-node lint --fix

n8n-node release

Publish your community node package to npm.

n8n-node release

Flags: None

This command handles the complete release process using release-it:

  • Builds the node
  • Runs linting checks
  • Updates changelog
  • Creates git tags
  • Creates GitHub releases
  • Publishes to npm

🔄 Development Workflow

The recommended workflow using the scaffolding tool:

  1. Create your node:

    pnpm create @n8n/node my-awesome-node
    cd my-awesome-node
  2. Start development:

    pnpm dev
    • Starts n8n on http://localhost:5678
    • Links your node automatically
    • Rebuilds on file changes
  3. Test your node at http://localhost:5678

  4. Lint your code:

    pnpm lint
  5. Build for production:

    pnpm build
  6. Publish:

    pnpm run release

📁 Project Structure

The CLI expects your project to follow this structure:

my-node/
├── src/
│   ├── nodes/
│   │   └── MyNode/
│   │       ├── MyNode.node.ts
│   │       └── MyNode.node.json
│   └── credentials/
├── package.json
└── tsconfig.json

⚙️ Configuration

The CLI reads configuration from your package.json:

{
  "name": "n8n-nodes-my-awesome-node",
  "n8n": {
    "n8nNodesApiVersion": 1,
    "nodes": [
      "dist/nodes/MyNode/MyNode.node.js"
    ],
    "credentials": [
      "dist/credentials/MyNodeAuth.credentials.js"
    ]
  }
}

🐛 Troubleshooting

Development server issues

# Clear n8n custom nodes cache
rm -rf ~/.n8n-node-cli/.n8n/custom

# Restart development server
pnpm dev

Build failures

# Run linting first
pnpm lint

# Clean build
pnpm build

📚 Resources

🤝 Contributing

Found an issue? Contribute to the n8n repository on GitHub.


Happy node development! 🎉

/@n8n/node-cli/

    Package Sidebar

    Install

    npm i @n8n/node-cli

    Weekly Downloads

    277

    Version

    0.4.0

    License

    none

    Unpacked Size

    304 kB

    Total Files

    149

    Last publish

    Collaborators

    • alexgrozav
    • milorad.filipovic
    • ivov.src
    • jan_n8n_io
    • cornelius.suermann
    • jp-at-n8n