CLI
On Node 18 or later, use npx send.ad with no install. Settings live in ~/.sendad/config.json, and the environment variable SEND_API_KEY · SEND_BASE_URL takes priority. Add --json to any command for machine-readable output.
| Command | Description |
|---|---|
| sendad login [--key K] [--base URL] | Save your API key (prompts if omitted) |
| sendad whoami | Workspace, role, balance |
| sendad balance | Balance, price per email, emails remaining |
| sendad lists list | create <name> | Lists |
| sendad contacts list [--list L] [--q search] · add <email> [--first-name] [--list L] [--tag T] | Contact |
| sendad contacts import <file.csv> --list <name|id> | Import CSV (recognizes Mailchimp format) |
| sendad templates list | List templates |
| sendad campaigns list | status <id> | report <id> | View campaigns |
| sendad campaigns create --name N --subject S --list L (--design file.json | --html file.html) | Create draft |
| sendad campaigns send <id> [--at ISO] | Send or schedule |
| sendad send --to a@b.com --subject S (--html H | --text T | --html-file f) | Single send |
| sendad ai "<brief>" [--list L] [--tone T] [--send | --at ISO] | Brief → campaign (+ send). --send prints status until it finishes |
| sendad approvals · approve <id> [--at ISO] · reject <id> [--note] | List items awaiting approval · approve (send now or scheduled) · reject (back to draft) |
| sendad autopilot mode [manual|approve|auto] | View/change autopilot mode |
| sendad autopilot list | create --name N --brief "template" [--cadence weekly --dow 2 --hour 10] [--list L] [--rss URL] | run <id> | pause <id> | resume <id> | Recurring run plans (brief template {{date}} {{recent_posts}} {{products}} {{free_text}}) |
| sendad learning | Learning memo — what we learned from performance · best send times |
| sendad domains list | add <domain> | verify <id> | Sending domain |
| sendad mcp | Run the MCP server (stdio) |
npx send.ad login --key sd_live_…\nnpx send.ad contacts import ./subscribers.csv --list customers\nnpx send.ad ai "20% off holiday gift sets, through 11/25" --list customers # → awaiting approval + approval link\nnpx send.ad approvals && npx send.ad approve <id> # approve → send\nnpx send.ad autopilot create --name weekly-news --brief "{{date}} This week: {{recent_posts}}" --cadence weekly --dow 2 --hour 10 --list customers --rss https://blog.example/rss\nnpx send.ad learning # what we learned from performance\nnpx send.ad campaigns report <id> --jsonsendad ai … --send If the workspace mode is approve , it stops at awaiting approval and gives you the approval link (exit 0). auto , it sends as soon as the guardrails pass; manual leaves a draft (sends with --send). --wait prints status until the send completes.