Send Text Message
SkillCommunicationSend SMS text messages to phone numbers. Use when the user asks to send a text, send an SMS, text someone, message a phone number, or send a notification via text message.
Use Send Text Message in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Send Text Message and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Send Text Message skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by gooseworks-ai/goose-skills in skills/outreach/capabilities/send-sms-textbelt/SKILL.md and read by Ahel’s review.
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Send SMS messages via the Textbelt API on Orthogonal.
Workflow
Step 1: Gather Info
Ask the user for:
- Phone number (required) - US/Canada: 10-digit with area code. International: E.164 format (e.g., +44...)
- Message (required) - Max 800 characters. No URLs allowed.
Step 2: Send the Message
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"textbelt","path":"/text"}'
"phone": "<phone_number>",
"message": "<message_text>"
}'
Step 3: Confirm Delivery
The response includes a textId. Use it to check delivery status:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"textbelt","path":"/status/{textId}"}'
This endpoint is free.
Response
Send Response (/text)
- success (boolean) -
trueif message was queued - textId (string) - Message ID for delivery tracking (only on success)
- quotaRemaining (integer) - Remaining SMS credits
- error (string) - Error message (only on failure)
Status Response (/status/{textId})
- status (string) -
DELIVERED,SENDING,FAILED, orUNKNOWN
Constraints
- Max 800 characters per message
- No URLs in message text
- Sender name is optional and not visible to the recipient in most countries
Optional Parameters
When sending, you can also include:
sender(string) - Business/org name for regulatory purposesreplyWebhookUrl(string) - US only: URL to receive reply webhookswebhookData(string) - Extra data passed to webhook (max 100 chars)
Error Handling
- success: false with
errorfield describes the issue (e.g., invalid phone number, insufficient credits) - US/Canada numbers only work from US/Canada IP region
- International numbers require E.164 format (e.g.,
+44...) - Messages containing URLs are rejected — use descriptions instead
- Max 800 characters — longer messages are rejected, not truncated
Signals
- GitHub stars
- 1k
- Forks
- 211
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
send-sms-textbelt- Source
- github.com/gooseworks-ai/goose-skills
github.com/gooseworks-ai/goose-skills
Related picks
Skill · coreyhaines31
The pick for SMSsms-alert-automation
Skill · composio-community
The pick for SMSslack-gif-creator
Skill · anthropics
More in Communicationerror-handling
Skill · affaan-m
More in Communicationemails
Skill · coreyhaines31
More in Communicationwait-what
Skill · mattpocock
More in Communication