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

@sendkit-ai/cli

v1.1.1

Published

SendKit CLI — interact with the SendKit platform from your terminal

Readme

@sendkit-ai/cli

The official command-line interface for SendKit — a complete email outreach platform. Manage campaigns, leads, mailboxes, inbox, analytics, and more — all from your terminal.

Installation

npm install -g @sendkit-ai/cli

Or run without installing:

npx @sendkit-ai/cli --help

Quick Start

# 1. Authenticate with your API key
sendkit auth login

# 2. Select a workspace
sendkit workspaces list
sendkit workspaces use <workspace-id>

# 3. Start working
sendkit campaigns list
sendkit leads list
sendkit analytics overview

Authentication

SendKit supports two types of API keys:

  • Platform keys (sk_user_...) — access all workspaces, required for workspace management
  • Workspace keys (sk_...) — scoped to a single workspace, no header needed

Get your API key from app.sendkit.ai under Settings > API Keys.

# Interactive login (prompts for key)
sendkit auth login

# Direct login
sendkit auth login --key sk_user_your_key_here

# Check current session
sendkit auth whoami

# Logout
sendkit auth logout

Global Options

These flags work with any command:

| Flag | Description | |------|-------------| | --json | Output raw JSON instead of formatted tables | | --api-key <key> | Override stored API key for this command | | --workspace <id> | Override the active workspace | | -V, --version | Show CLI version | | -h, --help | Show help for any command |

sendkit --json campaigns list               # JSON output for scripting
sendkit --api-key sk_user_xxx leads list    # Use a different API key
sendkit --workspace <id> inbox list         # Target a specific workspace

Commands Overview

| Command Group | Description | Subcommands | |---------------|-------------|-------------| | auth | Authentication | login, logout, whoami | | workspaces | Workspace management | list, use, get, create, update, delete, members, add-member, remove-member | | campaigns | Campaign lifecycle | list, get, create, update, start, pause, resume, delete, duplicate, analytics, preview-email, send-test-email | | campaign-leads | Leads within campaigns | list, get, add, add-filter, import, action, update | | leads | Global lead database | list, get, create, update, delete, bulk-create, import, export, search | | mailboxes | Email mailboxes | list, get, create, update, delete, health, import, import-outlook, bulk, connect-google, connect-outlook | | inbox | Conversations & replies | list, get, update, reply, scheduled, cancel-scheduled, tag, mark-read, dnc, delete, unread-count | | analytics | Performance metrics | overview, campaign, mailboxes, daily | | templates | Email templates | list, get, create, update, delete | | webhooks | Webhook subscriptions | list, get, create, update, delete, test | | dnc | Do Not Contact list | list, add, remove, import | | enrichment | Lead enrichment | enrich, jobs, job, cancel, settings, settings-get, settings-configure, settings-remove, settings-update | | tags | AI tagging labels | list, create, update, delete | | warmup | Email warmup metrics | stats, mailbox | | agents | AI reply agents | list, get, create, update, delete, generate-reply | | integrations | CRM integrations | list, crm-status, crm-get, crm-connect, crm-disconnect, crm-pull, crm-push, crm-jobs | | testing | Deliverability tests | inbox-placement-list, inbox-placement-create, inbox-placement-get, blacklist-list, blacklist-create, blacklist-get |

Run sendkit <command> --help for detailed usage of any command.


Campaigns

Create and manage email outreach campaigns with multi-step sequences, scheduling, and tracking.

# List and filter campaigns
sendkit campaigns list
sendkit campaigns list --status active --search "Q2"

# Get full campaign details with sequence breakdown
sendkit campaigns get <id>

# Create a campaign (minimal)
sendkit campaigns create --name "Q2 Outreach"

# Create with full configuration
sendkit campaigns create --name "Q2 Outreach" \
  --mailbox-ids id1,id2 \
  --timezone "Asia/Kolkata" \
  --start-time "10:00" \
  --end-time "18:00" \
  --working-days "1,2,3,4,5" \
  --track-opens --track-clicks --stop-on-reply \
  --daily-send-limit 50

# Create with a sequence from a JSON file
sendkit campaigns create --name "Q2 Outreach" --sequence-file sequence.json

# Assign mailboxes by tag or provider
sendkit campaigns create --name "Outreach" --mailbox-tags "outreach" --mailbox-provider gmail

# Campaign lifecycle
sendkit campaigns start <id>
sendkit campaigns pause <id>
sendkit campaigns resume <id>
sendkit campaigns delete <id>
sendkit campaigns duplicate <id>

# Analytics with step-by-step breakdown
sendkit campaigns analytics <id>

# Preview personalized email before sending
sendkit campaigns preview-email <id> --step 0 --lead <leadId> --mailbox <mailboxId>

# Send a test email
sendkit campaigns send-test-email <id> --step 0 --mailbox <mailboxId> --email [email protected]

Sequence Format

Sequences are defined as JSON arrays with email and wait steps. Names are auto-assigned ("Initial Email" → "Follow-up 1" → "Follow-up 2", etc.).

[
  {
    "type": "email",
    "order": 0,
    "subject": "Hi {{firstName}}, quick question",
    "body": "<p>Hi {{firstName}},</p><p>Your email body here...</p>"
  },
  {
    "type": "wait",
    "order": 1,
    "waitDays": 3
  },
  {
    "type": "email",
    "order": 2,
    "subject": "Re: quick question",
    "body": "<p>Just following up...</p>"
  }
]

Rules:

  • Sequence must start with an email step
  • Sequence must end with an email step (not a wait)
  • A wait step (with waitDays >= 1) is required between consecutive email steps
  • Step names are auto-assigned — do not set them manually
  • Supports {{firstName}}, {{lastName}}, {{companyName}}, {{senderName}}, and custom variables

Save to a file and use --sequence-file:

sendkit campaigns create --name "Outreach" --sequence-file sequence.json
sendkit campaigns update <id> --sequence-file updated-sequence.json

Campaign Leads

Manage leads within a specific campaign.

# List leads in a campaign
sendkit campaign-leads list <campaignId>
sendkit campaign-leads list <campaignId> --status active

# Get lead detail with email history
sendkit campaign-leads get <campaignId> <leadId>

# Add leads by ID
sendkit campaign-leads add <campaignId> --lead-ids id1,id2,id3

# Add leads by filter
sendkit campaign-leads add-filter <campaignId> --tags outreach --search "acme"
sendkit campaign-leads add-filter <campaignId> --select-all

# Import from CSV
sendkit campaign-leads import <campaignId> leads.csv

# Bulk actions (pause, resume, remove)
sendkit campaign-leads action <campaignId> --action pause --lead-ids id1,id2
sendkit campaign-leads action <campaignId> --action remove --select-all

# Update a specific lead's status or tags
sendkit campaign-leads update <campaignId> <leadId> --status paused --tags "follow-up"

Leads

Manage your global lead database.

# List with filters
sendkit leads list
sendkit leads list --search "john" --tags outreach --limit 50
sendkit leads list --email-status valid --email-type business
sendkit leads list --email-verified true --has-company --has-phone
sendkit leads list --seg-protected false

# Get lead details
sendkit leads get <id>

# Create a lead
sendkit leads create --email [email protected] --first-name John --last-name Doe \
  --company Acme --title CEO --phone +1234567890 --tags "outreach,q2"

# Update a lead
sendkit leads update <id> --first-name Jane --company "New Corp" --tags "updated"

# Bulk create from JSON file (max 5,000)
sendkit leads bulk-create leads.json --tag "batch-q2"

# Import from CSV
sendkit leads import leads.csv --tag "import-q2" --skip-duplicates

# Export to CSV
sendkit leads export --output leads.csv --search "acme" --tags "outreach"
sendkit leads export --email-verified true --country "US"

# Advanced search
sendkit leads search --email "@acme.com" --company "Acme" --country "US"

# Delete
sendkit leads delete --ids id1,id2,id3
sendkit leads delete --all --force

Mailboxes

Manage email sending accounts with health monitoring and warmup tracking.

# List with advanced filters
sendkit mailboxes list
sendkit mailboxes list --status active --provider gmail --tags "outreach"
sendkit mailboxes list --warmup-enabled true --warmup-health good
sendkit mailboxes list --high-bounce-rate --min-health-score 80
sendkit mailboxes list --not-in-campaign --connection-type oauth
sendkit mailboxes list --untagged --in-active-campaign

# Get details and health check
sendkit mailboxes get <id>
sendkit mailboxes health <id>

# Create SMTP mailbox
sendkit mailboxes create --email [email protected] --smtp-host smtp.co.com \
  --smtp-port 587 --smtp-user [email protected] --smtp-pass xxx \
  --display-name "My Mailbox" --daily-limit 30

# Import mailboxes from CSV
sendkit mailboxes import mailboxes.csv --tag "batch-1"
sendkit mailboxes import-outlook outlook.csv

# Bulk operations
sendkit mailboxes bulk --operation enableSending --mailbox-ids id1,id2
sendkit mailboxes bulk --operation checkDNS --select-all
sendkit mailboxes bulk --operation startWarmup --mailbox-ids id1,id2
sendkit mailboxes bulk --operation addTags --select-all --tags "new-tag"
sendkit mailboxes bulk --operation updateDailyLimit --select-all --daily-limit 30

# OAuth connect
sendkit mailboxes connect-google
sendkit mailboxes connect-outlook

Inbox

Manage conversation threads with leads — reply, tag, schedule, and track.

# List conversations
sendkit inbox list
sendkit inbox list --status unread --tag interested --campaign <id>

# Get full conversation thread with messages and scheduled replies
sendkit inbox get <id>

# Update conversation
sendkit inbox update <id> --mark-read
sendkit inbox update <id> --ai-tag interested
sendkit inbox update <id> --tags "vip,priority"

# Reply (immediate or scheduled)
sendkit inbox reply <id> --body "Thanks for reaching out!" --mailbox <mailboxId>
sendkit inbox reply <id> --body "Follow up" --schedule "2025-01-15T10:00:00Z"
sendkit inbox reply <id> --body "See attached" --cc "[email protected]" --bcc "[email protected]"

# Manage scheduled replies
sendkit inbox scheduled <id>
sendkit inbox cancel-scheduled <id> <replyId>

# Bulk operations
sendkit inbox tag --ids id1,id2 --tag "interested"
sendkit inbox mark-read --ids id1,id2,id3
sendkit inbox dnc --ids id1,id2
sendkit inbox dnc --select-all --campaigns id1 --tags interested
sendkit inbox delete --ids id1,id2
sendkit inbox delete --select-all --campaigns id1

# Unread count
sendkit inbox unread-count
sendkit inbox unread-count --campaign <id>

Analytics

View performance metrics across your workspace, campaigns, mailboxes, and daily trends.

# Workspace-wide overview
sendkit analytics overview

# Per-campaign breakdown with step analytics
sendkit analytics campaign <id>

# Mailbox performance
sendkit analytics mailboxes

# Daily trends
sendkit analytics daily
sendkit analytics daily --from 2025-01-01 --to 2025-01-31

Stats display as number (percentage%) — e.g. 72 (48.0%) for opened emails.


Templates

Manage reusable email templates with single-letter shortcuts.

sendkit templates list
sendkit templates get <id>
sendkit templates create --name "Follow Up" --content "Hi {{firstName}}..." --shortcut "A"
sendkit templates update <id> --name "New Name" --content "Updated content"
sendkit templates delete <id>

Shortcuts must be a single uppercase letter (A-Z).


Webhooks

Subscribe to events and receive real-time notifications.

sendkit webhooks list
sendkit webhooks get <id>
sendkit webhooks create --name "Reply Hook" --url "https://myapp.com/hook" --events "email.replied,email.bounced"
sendkit webhooks update <id> --events "email.replied,email.opened" --status active
sendkit webhooks delete <id>
sendkit webhooks test <id>

DNC — Do Not Contact

Manage your suppression list to prevent sending to specific emails or domains.

sendkit dnc list
sendkit dnc list --type email --limit 50
sendkit dnc add --emails "[email protected],[email protected]" --type email --reason "complaint"
sendkit dnc remove --emails "[email protected]"
sendkit dnc import --emails "[email protected],[email protected]" --type email --reason "complaint"

Enrichment

Enrich leads with email verification, phone numbers, and SEG detection.

# Enrich leads
sendkit enrichment enrich --lead-ids id1,id2 --types email --provider enrich
sendkit enrichment enrich --lead-ids id1,id2 --types email,phoneEnrichment --provider leadmagic

# Manage enrichment jobs
sendkit enrichment jobs
sendkit enrichment job <jobId>
sendkit enrichment cancel <jobId>

# Provider settings
sendkit enrichment settings
sendkit enrichment settings-get leadmagic
sendkit enrichment settings-configure leadmagic --provider-key "lm_xxx"
sendkit enrichment settings-remove leadmagic

Tags

Manage AI tagging labels used for automatic conversation classification.

sendkit tags list
sendkit tags create --name "Interested" --description "Lead showed interest" --color "#22c55e"
sendkit tags update "Interested" --description "Updated desc" --color "#ef4444"
sendkit tags delete "Interested"

Warmup

Monitor email warmup progress and deliverability metrics.

sendkit warmup stats
sendkit warmup stats --days 14 --search "gmail"
sendkit warmup mailbox <mailboxId>
sendkit warmup mailbox <mailboxId> --days 60

Agents — AI Reply

Create AI agents that generate contextual replies to lead conversations.

sendkit agents list
sendkit agents get <id>
sendkit agents create --name "Sales Bot" --company-name "Acme Inc" --tone "professional" --role "SDR"
sendkit agents update <id> --name "Updated Bot" --tone "friendly"
sendkit agents delete <id>
sendkit agents generate-reply <agentId> --conversation <conversationId> --context "They asked about pricing"

Integrations — CRM

Connect and sync with CRM platforms like HubSpot, Pipedrive, and more.

# Overview
sendkit integrations list
sendkit integrations crm-status

# Connect / disconnect
sendkit integrations crm-connect hubspot --crm-key "hk_xxx"
sendkit integrations crm-disconnect hubspot

# Sync leads
sendkit integrations crm-pull hubspot
sendkit integrations crm-pull hubspot --entity-type people --campaign <id>
sendkit integrations crm-push hubspot --lead-ids id1,id2 --fields "email,firstName,lastName"
sendkit integrations crm-push hubspot --select-all --include-engagement

# Monitor sync jobs
sendkit integrations crm-jobs
sendkit integrations crm-jobs --status pending --crm-type hubspot

Testing — Inbox Placement & Blacklist

Test email deliverability and monitor blacklist status.

# Inbox placement tests
sendkit testing inbox-placement-list
sendkit testing inbox-placement-create --name "Q2 Test" --mailbox-ids id1,id2
sendkit testing inbox-placement-create --name "All Test" --select-all --subject "Test" --body "Hello"
sendkit testing inbox-placement-get <id>

# Blacklist tests
sendkit testing blacklist-list
sendkit testing blacklist-create --name "IP Check" --mailbox-ids id1,id2
sendkit testing blacklist-create --name "All Check" --select-all
sendkit testing blacklist-get <id>

JSON Output & Scripting

All commands support --json for machine-readable output, making it easy to integrate with scripts and pipelines.

# Get campaign IDs
sendkit --json campaigns list | jq '.[].id'

# Export unread conversation count
sendkit --json inbox unread-count | jq '.unread'

# Pipe lead emails to a file
sendkit --json leads list --limit 100 | jq -r '.[].email' > emails.txt

Requirements

  • Node.js >= 18.0.0

License

MIT