npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cron8n

v1.0.2

Published

CLI tool for managing n8n cron-triggered workflows

Downloads

285

Readme

cron8n

A CLI tool that simplifies creating and managing cron-triggered workflows in n8n.

Why cron8n?

Managing scheduled workflows in n8n can be challenging:

  • No version control - Workflows are stored in n8n's database, making it hard to track changes
  • Manual creation - Each cron workflow requires clicking through the UI
  • No local development - You can't develop workflows offline and deploy later
  • Scattered workflows - Hard to see all your cron jobs in one place
  • No templates - Starting from scratch every time

cron8n solves these problems:

  • Local-first - Workflows stored as JSON files in your project
  • Git-friendly - Version control your scheduled jobs like code
  • Templates - Start with pre-built templates (HTTP requests, shell commands, webhooks)
  • CLI & Web UI - Choose your preferred interface
  • Deploy anywhere - Push to any n8n instance with one command
  • Central tracking - See all managed workflows across projects

Screenshots

Web UI - Workflow Dashboard

Dashboard

Web UI - Create Workflow

Create Workflow

Web UI - n8n Connection

Connection

Features

  • Create new cron workflows from templates
  • Deploy workflows to your n8n instance
  • Discover existing cron workflows in n8n
  • Import unmanaged workflows into cron8n
  • Validate cron expressions with next run times
  • Track all managed workflows with labels
  • Web UI for visual workflow management

Installation

# Install globally
npm install -g cron8n

# Or use directly with npx
npx cron8n

Quick Start

1. Authenticate with your n8n instance

# Interactive login
cron8n auth login

# Or with flags
cron8n auth login --baseUrl https://n8n.example.com --mode apiKey --secret YOUR_API_KEY

2. Create a new cron workflow

# Interactive mode
cron8n cron new

# Or with flags
cron8n cron new --name "Daily Backup" --cron "0 0 * * *" --timezone "Europe/Istanbul" --template http-request

3. Deploy to n8n

cron8n cron deploy daily-backup --activate

Commands

Web UI

cron8n ui

Start the web-based UI for visual workflow management.

# Start UI (opens browser automatically)
cron8n ui

# Custom port
cron8n ui --port 4000

# Don't open browser
cron8n ui --no-browser

The web UI provides:

  • Dashboard with all workflows
  • Create/Edit workflows visually
  • Deploy, activate, deactivate workflows
  • Connect to n8n instance
  • Cron expression validation with live preview

Authentication

cron8n auth login

Authenticate with your n8n instance.

# Interactive
cron8n auth login

# Non-interactive
cron8n auth login --baseUrl https://n8n.example.com --mode apiKey --secret YOUR_KEY
cron8n auth login --baseUrl https://n8n.example.com --mode bearerToken --secret YOUR_TOKEN

cron8n auth status

Check current authentication status and verify connection.

cron8n auth status
cron8n auth status --json

Cron Workflows

cron8n cron new

Create a new cron workflow.

# Interactive mode - prompts for all options
cron8n cron new

# With all options
cron8n cron new \
  --name "My Scheduled Job" \
  --cron "0 */6 * * *" \
  --timezone "Europe/Istanbul" \
  --template http-request

Templates:

  • cron-only - Basic cron trigger (starting point, does nothing)
  • shell-command - Cron trigger + Execute Command (run shell commands on the server)
  • http-request - Cron trigger + HTTP request
  • webhook-call - Cron trigger + webhook call

Cron Presets:

  • every-minute: * * * * *
  • hourly: 0 * * * *
  • daily: 0 0 * * *
  • weekly: 0 0 * * 0
  • monthly: 0 0 1 * *

cron8n cron edit <slug>

Edit an existing workflow.

# Interactive edit (select fields to change)
cron8n cron edit my-workflow

# Change specific fields
cron8n cron edit my-workflow --name "New Name"
cron8n cron edit my-workflow --cron "*/5 * * * *"
cron8n cron edit my-workflow --timezone "America/New_York"
cron8n cron edit my-workflow --shell-command "echo hello"

cron8n cron deploy <slug>

Deploy a workflow to n8n.

# Deploy and activate
cron8n cron deploy my-workflow --activate

# Dry run (show what would happen)
cron8n cron deploy my-workflow --dry-run

# Deploy without activating
cron8n cron deploy my-workflow --no-activate

cron8n cron list

List cron workflows (local by default).

# List local workflows (default)
cron8n cron list

# Show archived workflows
cron8n cron list --archived

# Show remote workflows from n8n
cron8n cron list --remote

# Show only managed remote workflows
cron8n cron list --managed

# Show only unmanaged remote workflows
cron8n cron list --unmanaged

# JSON output
cron8n cron list --json

cron8n cron inspect <slug|workflow-id>

Inspect a workflow (local or remote).

# Inspect by local slug (fetches from n8n if deployed)
cron8n cron inspect my-workflow

# Inspect local manifest only
cron8n cron inspect my-workflow --local

# Inspect by remote workflow ID
cron8n cron inspect abc123

# JSON output
cron8n cron inspect my-workflow --json

cron8n cron import <workflow-id>

Import an existing n8n workflow into cron8n management.

# Import with auto-generated slug
cron8n cron import abc123

# Import with custom slug
cron8n cron import abc123 --slug my-imported-workflow

# Force import (overwrite existing)
cron8n cron import abc123 --force

cron8n cron activate <slug|workflow-id>

Activate a workflow in n8n.

# Activate by slug
cron8n cron activate my-workflow

# Activate by workflow ID
cron8n cron activate abc123

cron8n cron deactivate <slug|workflow-id>

Deactivate a workflow in n8n.

# Deactivate by slug
cron8n cron deactivate my-workflow

# Deactivate by workflow ID
cron8n cron deactivate abc123

cron8n cron archive <slug>

Archive a workflow (deactivate remote, move local files to archived folder).

# Archive a workflow (deactivates in n8n, moves files to archived/)
cron8n cron archive my-workflow

# Archive and delete from n8n completely
cron8n cron archive my-workflow --delete-remote

# Only deactivate remote, keep local files
cron8n cron archive my-workflow --keep-local

# Skip confirmation
cron8n cron archive my-workflow --force

cron8n cron validate [expression]

Validate a cron expression and show next run times.

# Interactive validation
cron8n cron validate

# Validate specific expression
cron8n cron validate "0 9 * * 1-5"

# With timezone
cron8n cron validate "0 9 * * 1-5" --timezone America/New_York

# Show more runs
cron8n cron validate "0 9 * * *" --count 10

# JSON output
cron8n cron validate "0 * * * *" --json

File Structure

When you create a workflow, cron8n generates:

./workflows/
├── my-workflow.json        # n8n workflow definition
└── my-workflow.cron8n.json # cron8n manifest

Manifest Format

{
  "slug": "my-workflow",
  "name": "My Workflow",
  "createdAt": "2026-02-07T10:00:00Z",
  "template": "http-request",
  "cronExpression": "0 * * * *",
  "timezone": "Europe/Istanbul",
  "tags": ["managed-by:cron8n", "cron8n:my-workflow"],
  "lastDeployedWorkflowId": "123",
  "lastDeployedAt": "2026-02-07T12:00:00Z"
}

Label Strategy

cron8n uses tags to track managed workflows:

  • managed-by:cron8n - Identifies cron8n-managed workflows
  • cron8n:<slug> - Links workflow to local manifest

This allows cron8n to:

  • Differentiate managed vs unmanaged workflows
  • Match deployed workflows to local files
  • Prevent accidental modifications

Central Registry

cron8n maintains a central registry at ~/.cron8n/registry.json to track workflows across all projects:

{
  "workflows": [
    {
      "slug": "daily-backup",
      "projectPath": "/home/user/my-project",
      "manifestPath": "/home/user/my-project/workflows/daily-backup.cron8n.json",
      "workflowId": "123",
      "lastSyncedAt": "2026-02-07T12:00:00Z"
    }
  ]
}

Configuration

Authentication and settings are stored at ~/.cron8n/config.json.

Development

# Install dependencies
npm install

# Build
npm run build

# Development with watch
npm run dev

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Type check
npm run typecheck

Requirements

  • Node.js >= 18
  • n8n instance with API access

License

MIT