> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc-agui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Twilio

> Use Twilio with Agno agents.

Enable Agno agents to autonomously send SMS messages and retrieve call/message metadata for real-world interaction with Twilio.

## Prerequisites

* Get Twilio Account SID and Auth Token from [https://console.twilio.com](https://console.twilio.com)
* A Twilio phone number
* Install Twilio `uv pip install twilio`
* Set the following environment variables:
  ```bash theme={null}
  export TWILIO_ACCOUNT_SID="your_account_sid"
  export TWILIO_AUTH_TOKEN="your_auth_token"
  ```
* Alternatively, provide these variables when creating the TwilioTools instance

```python theme={null}

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.twilio import TwilioTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------



# Example 1: Enable specific Twilio functions
agent = Agent(
    name="Twilio Agent",
    instructions=[
        """You can help users by:
        - Sending SMS messages
        - Checking message history
        - getting call details
        """
    ],
    model=OpenAIChat(id="gpt-4o"),
    tools=[
        TwilioTools(
            enable_send_sms=True,
            enable_get_call_details=True,
            enable_list_messages=True,
        )
    ],
    markdown=True,
)

# Example 2: Enable all Twilio functions
agent_all = Agent(
    name="Twilio Agent All",
    model=OpenAIChat(id="gpt-4o"),
    tools=[TwilioTools(all=True)],
    markdown=True,
)

# Example 3: Enable only SMS functionality
sms_agent = Agent(
    name="SMS Agent",
    model=OpenAIChat(id="gpt-4o"),
    tools=[
        TwilioTools(
            enable_send_sms=True,
            enable_get_call_details=False,
            enable_list_messages=False,
        )
    ],
    markdown=True,
)

sender_phone_number = "+1234567890"
receiver_phone_number = "+1234567890"

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response(
        f"Can you send an SMS saying 'Your package has arrived' to {receiver_phone_number} from {sender_phone_number}?"
    )
```

## Run the Example

```bash theme={null}
# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/91_tools

# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate

python twilio_tools.py
```

For details, see [Twilio tool cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/twilio_tools.py).
