sendcraft-cli
v2.0.0
Published
The official CLI for SendCraft — send emails, manage campaigns, and more from your terminal
Maintainers
Readme
sendcraft-cli
Installation
Standalone binary (no Node.js required)
macOS / Linux
curl -fsSL https://sendcraft.online/install.sh | bashWindows (PowerShell)
iwr https://sendcraft.online/install.ps1 | iexvia npm
npm install -g sendcraft-cliQuick 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 doctorCommands
Auth
sendcraft auth login # Save API key interactively
sendcraft auth logout # Remove saved credentialsEmails
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 summarySend 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 versionDomains
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 domainWebhooks
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 typesTopics
sendcraft topics list # List topics / mailing lists
sendcraft topics create -n "Name" # Create a topic
sendcraft topics delete <id> # Delete a topicAPI 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 keyAnalytics
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 recommendationLogs
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 configUtilities
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 scriptShell completion
# bash
sendcraft completion bash >> ~/.bashrc && source ~/.bashrc
# zsh
sendcraft completion zsh > ~/.zsh/completions/_sendcraftJSON 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 doctorEnvironment 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.exeRelated
| Package | Description |
|---------|-------------|
| sendcraft-sdk | Node.js SDK |
| sendcraft-sdk (PyPI) | Python SDK |
| sendcraft-mcp | MCP server for AI agents |
License
MIT © SendCraft
