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

sendcraft-cli

v2.0.0

Published

The official CLI for SendCraft — send emails, manage campaigns, and more from your terminal

Readme

sendcraft-cli


Installation

Standalone binary (no Node.js required)

macOS / Linux

curl -fsSL https://sendcraft.online/install.sh | bash

Windows (PowerShell)

iwr https://sendcraft.online/install.ps1 | iex

via npm

npm install -g sendcraft-cli

Quick start

# Authenticate
sendcraft login

# Send an email
sendcraft emails send \
  --to [email protected] \
  --from [email protected] \
  --subject "Hello from CLI" \
  --html "<h1>It works!</h1>"

# Check everything is working
sendcraft doctor

Commands

Auth

sendcraft auth login          # Save API key interactively
sendcraft auth logout         # Remove saved credentials

Emails

sendcraft emails send         # Send a transactional email
sendcraft emails list         # List sent emails
sendcraft emails get <id>     # Email details
sendcraft emails cancel <id>  # Cancel a scheduled email
sendcraft emails batch <file> # Batch send from JSON (up to 100)
sendcraft emails stats        # Delivery stats summary

Send flags

| Flag | Description | |------|-------------| | -t, --to <emails...> | Recipient(s) — required | | -f, --from <email> | Sender address — required | | -s, --subject <text> | Subject line — required | | --html <html> | HTML body (inline) | | --html-file <file> | Path to HTML file | | --text <text> | Plain-text body | | --cc <emails...> | CC recipients | | --bcc <emails...> | BCC recipients | | --reply-to <email> | Reply-To address | | --schedule <when> | Natural language: "tomorrow at 9am", "in 2 hours", ISO 8601 | | --idempotency-key <key> | Prevent duplicate sends | | --json | Raw JSON output |

Examples

# Send HTML from a file
sendcraft emails send \
  --to [email protected] \
  --from [email protected] \
  --subject "Welcome!" \
  --html-file templates/welcome.html

# Schedule with natural language
sendcraft emails send \
  --to [email protected] --from [email protected] \
  --subject "Weekly digest" --html-file digest.html \
  --schedule "next Monday at 9am"

# Batch send
sendcraft emails batch ./emails.json
# emails.json: [{ "to": "...", "from": "...", "subject": "...", "html": "..." }, ...]

Campaigns

sendcraft campaigns list            # List campaigns
sendcraft campaigns get <id>        # Campaign details
sendcraft campaigns send <id>       # Send immediately or schedule
  --schedule "2026-06-01T09:00:00Z"

Subscribers

sendcraft subscribers list                   # List subscribers
sendcraft subscribers get <email>            # Subscriber details
sendcraft subscribers add -e <email>         # Add a subscriber
sendcraft subscribers remove <email>         # Unsubscribe (or --delete to permanently remove)

Templates

sendcraft templates list                         # List templates
sendcraft templates get <id>                     # Template details
sendcraft templates create -n "Name" -s "Subj" --html-file tmpl.html
sendcraft templates delete <id>                  # Delete
sendcraft templates versions list <id>           # Version history
sendcraft templates versions restore <id> <ver>  # Restore version

Domains

sendcraft domains list                   # List domains
sendcraft domains add <domain>           # Add domain
sendcraft domains verify <domain>        # Trigger DNS check
sendcraft domains records <domain>       # Show required DNS records
sendcraft domains delete <domain>        # Remove domain

Webhooks

sendcraft webhooks list                  # List endpoints
sendcraft webhooks create -u <url>       # Create endpoint
sendcraft webhooks delete <id>           # Delete endpoint
sendcraft webhooks test <id>             # Send a test ping
sendcraft webhooks events                # List all event types

Topics

sendcraft topics list                    # List topics / mailing lists
sendcraft topics create -n "Name"        # Create a topic
sendcraft topics delete <id>             # Delete a topic

API Keys

sendcraft keys list                      # List keys
sendcraft keys create -n "Name"          # Create key
  --scope sending_access                 # or full_access (default)
  --domains example.com newsletter.com   # Restrict to domains
  --expires "in 90 days"                 # Set expiry
sendcraft keys revoke <id>               # Revoke key

Analytics

sendcraft analytics overview             # Overall stats (default: last 30 days)
  --days 7
sendcraft analytics campaign <id>        # Per-campaign stats
sendcraft analytics send-time            # AI-optimised send time recommendation

Logs

sendcraft logs list                      # Audit log (paginated)
  --action email.sent                    # Filter by event type
sendcraft logs tail                      # Stream live events (SSE)

Config

sendcraft config init                    # Interactive setup wizard
sendcraft config set-key <key>           # Set API key
sendcraft config set-url <url>           # Override base URL (self-hosted)
sendcraft config show                    # Print config

Utilities

sendcraft warmup status                  # SMTP IP warmup progress
sendcraft warmup reset                   # Reset warmup (admin)
sendcraft doctor                         # Check config + connectivity
sendcraft mcp                            # Claude Desktop MCP config
sendcraft mcp --json                     # Machine-readable MCP config
sendcraft open [page]                    # Open in browser (dashboard|docs|billing|…)
sendcraft completion bash                # Bash completion script
sendcraft completion zsh                 # Zsh completion script

Shell completion

# bash
sendcraft completion bash >> ~/.bashrc && source ~/.bashrc

# zsh
sendcraft completion zsh > ~/.zsh/completions/_sendcraft

JSON output

Every command supports --json for scripting:

# Get email ID after send
ID=$(sendcraft emails send -t [email protected] -f [email protected] -s "Hi" --html "<p>Hello</p>" --json | jq -r '.data.id')

# List campaign IDs
sendcraft campaigns list --json | jq '.[].id'

# Check open rate
sendcraft analytics overview --json | jq '.openRate'

CI/CD

# GitHub Actions
- name: Send deploy notification
  env:
    SENDCRAFT_API_KEY: ${{ secrets.SENDCRAFT_API_KEY }}
  run: |
    npx sendcraft-cli@2 emails send \
      --to [email protected] \
      --from [email protected] \
      --subject "Deployed ${{ github.sha }}" \
      --html "<p>Deploy complete ✓</p>"

Self-hosted

sendcraft config set-url https://api.yourinstance.com/api
sendcraft config set-key your-api-key
sendcraft doctor

Environment variables

| Variable | Description | |----------|-------------| | SENDCRAFT_API_KEY | API key — overrides config file | | SENDCRAFT_BASE_URL | API base URL — for self-hosted instances |


Building standalone binaries

cd sdk/cli
npm install
npm run build:bin
# Outputs: dist/sendcraft-linux-x64  dist/sendcraft-macos-x64
#          dist/sendcraft-macos-arm64  dist/sendcraft-win-x64.exe

Related

| Package | Description | |---------|-------------| | sendcraft-sdk | Node.js SDK | | sendcraft-sdk (PyPI) | Python SDK | | sendcraft-mcp | MCP server for AI agents |


License

MIT © SendCraft