npx skills add https://github.com/alphaonedev/openclaw-graph
steipete/agent-scripts
twilio-sms
Twilio SMS CLI: buy/list/keep numbers, send/check messages, credential routing.
Installation
npx skills add steipete/agent-scripts --skill twilio-sms
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
SMS/MMS: send/receive, TwiML, webhooks, delivery receipts, opt-out, A2P 10DLC, short codes
57 installsHelps users discover and install agent skills when they ask questions like "how do I do X", "fi…
3.3M installsBrowser automation CLI for AI agents. Use when the user needs to interact with websites, includ…
810.4K installsReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "chec…
617.3K installsBuild, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and …
576.5K installsAlso in this package
Other skills from steipete/agent-scripts · top by installs.
npx skills add steipete/agent-scripts
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Skill metadata
Parsed from SKILL.md frontmatter.
More metadata
- short-description
- Twilio SMS numbers and messages
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md4,242 B -
docs
SUMMARY.md97 B
History
- First seen on skills.sh
- First recorded snapshot · 60 installs
SKILL.md
Twilio SMS
Use for Twilio phone-number and SMS work: create/buy numbers, list owned numbers, keep/label numbers, send texts, and check inbound/outbound messages.
Safety
- Never print Account SIDs, auth tokens, API secrets, TOTP codes, or full 1Password item JSON.
- Do not store real phone numbers, SIDs, names, or account-specific item IDs in this skill.
- Use
$one-passwordfor secret reads.opstays tmux-only. - If desktop 1Password access is needed, unset service-account auth for those commands:
env -u OPSERVICEACCOUNT_TOKEN op .... - Print credential shape only: field present, length, prefix class if useful.
- Public writes or logs: avoid leaking message bodies unless the user asked to read/check SMS.
Credential Route
- Check Twilio CLI/profile:
- twilio --version or npx -y twilio-cli --version - twilio profiles:list or npx -y twilio-cli profiles:list
- Check exact env presence only:
- TWILIOACCOUNTSID - TWILIOAUTHTOKEN - optional API key/secret vars
- If only partial env exists, search 1Password metadata first.
- Prefer an item with fields matching:
- TWILIOACCOUNTSID - TWILIOAUTHTOKEN - optional TWILIOFROMNUMBER
- If
oponly sees a restricted vault, retry desktop-backed reads withenv -u OPSERVICEACCOUNT_TOKEN. - Verify auth before any purchase/send:
curl -sS -u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN" \
"https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID.json"
CLI Setup
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.
Numbers
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.
SMS
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'
Notes
- International SMS may show an alphanumeric or carrier sender instead of the purchased US number.
- US SMS can be compliance-gated. If sending to US recipients fails, check A2P/10DLC registration state before retrying blindly.
- Trial accounts may restrict recipients.