brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
sendblue-sendblue-cliSend iMessage and SMS from the shell via the @sendblue/cli npm package — outbound sends, contact management, and account setup with no API client or webhook server required.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: sendblue-sendblue-cli description: "Send iMessage and SMS from the shell via the @sendblue/cli npm package \u2014 outbound sends, contact management, and account setup with no API client or webhook server required." category: api-integration risk: critical source: community source_repo: sendblue-api/sendblue-cli source_type: official date_added: '2026-05-22' author: AnthonyFirth tags:
@sendblue/cli is a Node CLI that creates a Sendblue account, provisions an iMessage-enabled number, and sends messages. It is the fastest way to text from a shell, script, or Claude Code hook — no API client, no webhook server, no credentials in env vars. Credentials live at ~/.sendblue/credentials.json (mode 600) and Node.js 18+ is required.
sendblue as a CLI/binary or asks to set up the @sendblue/cli package.npm install -g @sendblue/cli # global, exposes `sendblue`
# or one-shot:
npx @sendblue/cli <command>
sendblue setup runs interactively by default. For CI/scripts, run it in two phases — the first call sends an 8-digit verification code by email, the second consumes it.
sendblue setup --email you@example.com # sends code
sendblue setup --email you@example.com --code 12345678 \
--company my-co --contact +15551234567 # completes setup
| Flag | Notes |
|---|---|
--email | Email address |
--code | 8-digit verification code (from the email) |
--company | Lowercase, hyphens/underscores, 3–64 chars |
--contact | First contact, E.164 |
sendblue send +15551234567 'Hello from Sendblue!'
sendblue messages --inbound --limit 20
Phone numbers must be E.164 (+ + country code + digits, no spaces or dashes).
On the free plan, a contact must text your Sendblue number once before outbound sends to that contact will work. After sendblue setup ... --contact +15551234567, have that contact send any text to the printed Sendblue number, then run sendblue contacts to confirm verification.
| Command | Purpose |
|---|---|
sendblue setup | Create account, verify email, set company name, add first contact |
sendblue login | Log in to an existing account |
sendblue send <number> <message> | Send an iMessage |
sendblue messages [--inbound|--outbound] [-n <number>] [-l <count>] | List recent messages |
sendblue add-contact <number> | Register a contact |
sendblue contacts | List contacts and their verification status |
sendblue status | Account/plan info |
sendblue whoami | Show current credentials and verify validity |
long_running_thing && sendblue send +15551234567 "✅ done: $(date)"
sendblue messages -n +15551234567 --inbound --limit 50
sendblue whoami || sendblue login
Stop hookTo text yourself at the end of every agent turn, register a Stop hook in settings.json that shells out to sendblue send. Defer the actual hook wiring to [[update-config]] and the trigger logic to [[sendblue-notify]] — this skill only owns the CLI invocation.
+15551234567, never 5551234567 or (555) 123-4567.sendblue whoami before unattended batches to fail fast on stale or missing creds.setup as the same OS user that owns ~/.sendblue/credentials.json.sudo — it writes creds to root's home and the next non-sudo run won't see them.~/.sendblue/credentials.json with mode 600. Treat that file like an API key — do not commit it, do not copy it across machines without the same posture.sudo writes a separate copy under root's home and silently desyncs.sendblue send into hooks or loops only after gating on duration or success conditions to avoid spamming the recipient.5551234567 or (555) 123-4567 will fail — always +15551234567.sendblue contacts.--email alone only sends the code; you must run a second invocation with --code and the rest of the flags to finish.~/.sendblue/credentials.json is owner-only (600). Don't sudo and pollute root's home — re-running as the same user that ran setup is what works.@sendblue-api — HTTP/JSON alternative for application code, webhooks, and features the CLI does not expose.@sendblue-notify — Patterns and copy rules for "text me when X is done" workflows that sit on top of this CLI.@update-config — Wires sendblue send into Claude Code hooks (Stop, Notification) without owning the message logic.