Twilio SMS CLI: buy/list/keep numbers, send/check messages, credential routing.
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-twilio-sms-0a2a5227b5e7 ,按照其中的说明把「twilio-sms」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Use for Twilio phone-number and SMS work: create/buy numbers, list owned numbers, keep/label numbers, send texts, and check inbound/outbound messages.
$one-password for secret reads. op stays tmux-only.env -u OP_SERVICE_ACCOUNT_TOKEN op ....twilio --version or npx -y twilio-cli --versiontwilio profiles:list or npx -y twilio-cli profiles:listTWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_FROM_NUMBERop only sees a restricted vault, retry desktop-backed reads with env -u OP_SERVICE_ACCOUNT_TOKEN.curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID.json"
Twilio CLI profile creation requires account auth token, not just API key creds:
npx -y twilio-cli profiles:create "$TWILIO_ACCOUNT_SID" \
--auth-token "$TWILIO_AUTH_TOKEN" \
--profile default --force --silent
npx -y twilio-cli profiles:use default
Use npx -y twilio-cli when twilio is not installed.
List owned:
npx -y twilio-cli api:core:incoming-phone-numbers:list \
--properties phoneNumber,friendlyName,capabilities
Search US local SMS-capable inventory:
npx -y twilio-cli api:core:available-phone-numbers:local:list \
--country-code US --sms-enabled --voice-enabled --limit 5
If the CLI shape is awkward or missing flags, use REST:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/AvailablePhoneNumbers/US/Local.json?SmsEnabled=true&VoiceEnabled=true&PageSize=5"
Buy one candidate:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
-X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/IncomingPhoneNumbers.json" \
--data-urlencode "PhoneNumber=$PHONE_NUMBER"
Verify ownership/capabilities after purchase. Twilio JSON uses lowercase keys:
capabilities.sms
capabilities.mms
capabilities.voice
Mark numbers the user wants to keep:
npx -y twilio-cli api:core:incoming-phone-numbers:update \
--sid "$PHONE_NUMBER_SID" \
--friendly-name "KEEP - <purpose>"
Retention rule: a number is kept while it remains in the Twilio account and billing is healthy. Do not release/delete unless explicitly asked.
Send:
npx -y twilio-cli api:core:messages:create \
--from "$FROM_NUMBER" \
--to "$TO_NUMBER" \
--body "$BODY" \
-o json
Fetch status:
npx -y twilio-cli api:core:messages:fetch --sid "$MESSAGE_SID" -o json
Check inbound to a number:
npx -y twilio-cli api:core:messages:list \
--to "$NUMBER" --limit 20 -o json
Check outbound from a number:
npx -y twilio-cli api:core:messages:list \
--from "$NUMBER" --limit 20 -o json
Twilio CLI JSON can return an array for single-resource commands. Parse defensively:
jq 'if type=="array" then .[0] else . end'