nanobot/skills/twilio-sms-dispatch/SKILL.md
```skill --- name: sms-dispatch description: Sends an SMS message via the Twilio API. metadata: nanobot: emoji: 📱 category: communication tags: [sms, messaging, twilio] twilio: account_sid: REQUIRED auth_token: REQUIRED from_number: REQUIRED --- ## Instructions This skill allows you to send SMS messages using the Twilio API. You **must** provide your Twilio Account SID, Auth Token, and a Twilio phone number (from_number) in the environment variables. **Prerequisi
npx skillsauth add astoryh/pasb nanobot/skills/twilio-sms-dispatchInstall 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.
---
name: sms-dispatch
description: Sends an SMS message via the Twilio API.
metadata:
nanobot:
emoji: 📱
category: communication
tags: [sms, messaging, twilio]
twilio:
account_sid: REQUIRED
auth_token: REQUIRED
from_number: REQUIRED
---
## Instructions
This skill allows you to send SMS messages using the Twilio API. You **must** provide your Twilio Account SID, Auth Token, and a Twilio phone number (from_number) in the environment variables.
**Prerequisites:**
* A Twilio account.
* A Twilio phone number.
* The `twilio` Python library installed (though this is handled automatically by the nanobot environment).
**Usage:**
To send an SMS, provide the `to_number` and `message_body` as arguments.
**Arguments:**
* `to_number` (string): The recipient's phone number (in E.164 format, e.g., +15551234567). **REQUIRED**
* `message_body` (string): The text of the SMS message. **REQUIRED**
**Example:**
sms-dispatch to_number="+15558675309" message_body="Hello from the nanobot!"
**Error Handling:**
* If any of the required environment variables (`account_sid`, `auth_token`, `from_number`) are missing, the skill will return an error.
* If the `to_number` is invalid, the skill will return an error.
* If the Twilio API returns an error (e.g., due to insufficient funds or a problem with the Twilio service), the skill will return an error.
**Return Value:**
On success, the skill will return a JSON object containing the Twilio `message_sid`.
```json
{
"message_sid": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
On failure, the skill will return an error message.
Code Implementation (for reference - you do not need to modify this):
import os
from twilio.rest import Client
def main(to_number, message_body):
"""Sends an SMS message using the Twilio API."""
account_sid = os.environ.get("TWILIO_ACCOUNT_SID")
auth_token = os.environ.get("TWILIO_AUTH_TOKEN")
from_number = os.environ.get("TWILIO_FROM_NUMBER")
if not account_sid or not auth_token or not from_number:
return "Error: Twilio credentials (account_sid, auth_token, from_number) not set in environment variables."
client = Client(account_sid, auth_token)
try:
message = client.messages.create(
to=to_number,
from_=from_number,
body=message_body
)
return {"message_sid": message.sid}
except Exception as e:
return f"Error sending SMS: {str(e)}"
development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi