AGENT SKILL

sendblue-cli

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.

适用职业开发工程师
使用场景后端与接口
License 许可
MIT
最近更新
2026-05-29
Stars
★ 0
Forks
0

01 前言 Front Matter

name
sendblue-cli
risk
safe
tags
[ "sendblue", "imessage", "sms", "cli", "messaging", "notifications" ]
tools
[ "claude", "cursor", "gemini" ]
author
AnthonyFirth
source
community
license
MIT
category
api-integration
date_added
2026-05-22
description
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.
source_repo
sendblue-api/sendblue-cli
source_type
official
license_source
https://github.com/sendblue-api/sendblue-cli/blob/main/LICENSE

03 SKILL.md 正文

Sendblue CLI

Overview

@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.

When to Use This Skill

  • Use when the user wants to text a phone number from a script, shell, hook, or agent turn (e.g. "text me when X finishes", "ping my phone", "notify on completion").
  • Use when the user mentions sendblue as a CLI/binary or asks to set up the @sendblue/cli package.
  • Prefer this skill over [[sendblue-api]] when the work happens in a shell context, one-shot script, cron job, or agent hook.
  • Reach for [[sendblue-api]] instead when writing application code that integrates Sendblue, receiving inbound webhooks, or needing features the CLI does not expose (send styles, reactions, group messages, status callbacks, media uploads).

How It Works

Step 1: Install

npm install -g @sendblue/cli       # global, exposes `sendblue`
# or one-shot:
npx @sendblue/cli <command>

Step 2: Set up an account

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

Step 3: Send messages

sendblue send +15551234567 'Hello from Sendblue!'
sendblue messages --inbound --limit 20

Phone numbers must be E.164 (+ + country code + digits, no spaces or dashes).

Step 4: Manage contacts and plan

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 Reference

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

Examples

Example 1: Notify when a long task finishes

long_running_thing && sendblue send +15551234567 "✅ done: $(date)"

Example 2: Read recent inbound for a specific contact

sendblue messages -n +15551234567 --inbound --limit 50

Example 3: Verify creds are good before a batch send

sendblue whoami || sendblue login

Example 4: Wire to a Claude Code Stop hook

To 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.

Best Practices

  • ✅ Use E.164 numbers everywhere. +15551234567, never 5551234567 or (555) 123-4567.
  • ✅ Run sendblue whoami before unattended batches to fail fast on stale or missing creds.
  • ✅ Re-run setup as the same OS user that owns ~/.sendblue/credentials.json.
  • ❌ Don't sudo — it writes creds to root's home and the next non-sudo run won't see them.
  • ❌ Don't embed creds in env vars when the CLI already reads them from the per-user credentials file.

Limitations

  • Outbound-first: there is no built-in webhook server for inbound. Use [[sendblue-api]] webhooks for full inbound handling.
  • The CLI does not expose send styles/effects, reactions, group messages, status callbacks, media uploads, or the contacts API beyond basic CRUD. Reach for the HTTP API for those.
  • Free-plan accounts require recipient verification before outbound sends succeed.

Security & Safety Notes

  • Credentials are written to ~/.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.
  • Run the CLI as the OS user that owns the credentials file. sudo writes a separate copy under root's home and silently desyncs.
  • Outbound messages to phone numbers are not free of consequence — wire sendblue send into hooks or loops only after gating on duration or success conditions to avoid spamming the recipient.
  • Verification codes arrive by email; treat the address you registered with as a recovery factor for the account.

Common Pitfalls

  • E.164 only. 5551234567 or (555) 123-4567 will fail — always +15551234567.
  • Free-plan unverified contacts. Outbound to a contact that hasn't texted in first returns an error — have them text your Sendblue number once, then confirm with sendblue contacts.
  • Two-step setup in non-interactive mode. --email alone only sends the code; you must run a second invocation with --code and the rest of the flags to finish.
  • Credentials are per-user. ~/.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.

Related Skills

  • @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.

Links

04 同仓库更多 Skills

agency-black
agency-black/Skills

zarr-python

Chunked N-D arrays for cloud storage (Zarr-Python 3). Compressed arrays, parallel I/O, S3/GCS via fsspec, NumPy/Dask/Xarray compatible, for large-scale scientific computing pipelines.

★ 0
agency-black
agency-black/Skills

xvary-stock-research

Thesis-driven equity analysis from public SEC EDGAR and market data; /analyze, /score, /compare workflows with bundled Python tools (Claude Code, Cursor, Codex).

资料检索与研究
★ 0
agency-black
agency-black/Skills

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

测试与质量前端开发
★ 0
agency-black
agency-black/Skills

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

前端开发
★ 0
agency-black
agency-black/Skills

vercel-react-view-transitions

Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.

前端开发
★ 0
agency-black
agency-black/Skills

vercel-react-native-skills

React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.

前端开发
★ 0