bundled-skills/sendblue/sendblue-cli/SKILL.md
Send 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.
npx skillsauth add FrancoStino/opencode-skills-antigravity sendblue-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
@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 [email protected] # sends code
sendblue setup --email [email protected] --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.development
Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.
development
Passive income portfolio analysis — activate when user asks about dividend yields, Treasury rates, REIT income, monthly passive income goals, or portfolio yield optimization. Scans 4 asset classes, ranks by risk-adjusted return, and builds allocations targeting a specific monthly income.
devops
End-to-end production QA, build verification, and launch-readiness checklist for fullstack Next.js apps. Covers TypeScript, linting, tests, build, SEO tags, route regression, and sitemap validation.
development
Safe production cleanup and hardening for vibe-coded fullstack apps (Next.js, React, Node.js, etc.). Removes dead imports, unused files, and broken references without breaking routes or APIs.