> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Interfaces

> Expose Upsonic agents through various communication protocols and platforms

Interfaces enable exposing Upsonic agents through various communication protocols and platforms. Each interface provides a standardized way to connect Upsonic agents to external systems, messaging platforms, and frontend applications.

## Available Interfaces

<CardGroup cols={2}>
  <Card title="Slack" icon="slack" href="/concepts/interfaces/slack">
    Deploy agents as Slack applications for team collaboration
  </Card>

  <Card title="WhatsApp" icon="whatsapp" href="/concepts/interfaces/whatsapp">
    Serve agents via WhatsApp for direct messaging interactions
  </Card>

  <Card title="Telegram" icon="telegram" href="/concepts/interfaces/telegram">
    Host agents as Telegram bots with webhooks, multi-media, and task or chat modes
  </Card>

  <Card title="Gmail" icon="envelope" href="/concepts/interfaces/gmail">
    Connect agents to Gmail for automated email processing and replies
  </Card>

  <Card title="Mail (SMTP/IMAP)" icon="envelope-open-text" href="/concepts/interfaces/mail">
    Universal email interface that works with any mail provider (Gmail, Outlook, Yahoo, self-hosted, etc.)
  </Card>
</CardGroup>

<Card title="Browse All Interface Integrations" icon="plug" href="/integrations/overview#interfaces" horizontal>
  See all messaging platform integrations including advanced Telegram features.
</Card>

## How Interfaces Work

Interfaces are FastAPI routers that mount protocol-specific endpoints on an InterfaceManager instance. Each interface:

* Wraps Upsonic agents into protocol-compatible endpoints

* Handles authentication and request validation for the target platform

* Manages session tracking and context preservation

* Streams responses back to clients in the appropriate format

## Using Interfaces

Interfaces are added to an InterfaceManager instance through the `interfaces` parameter:

```python theme={null}
from upsonic import Agent
from upsonic.interfaces import InterfaceManager, SlackInterface

agent = Agent(model="anthropic/claude-sonnet-4-6")

manager = InterfaceManager(
    interfaces=[SlackInterface(agent=agent)],
)

manager.serve(port=8000)
```

Multiple interfaces can be added to a single InterfaceManager instance, allowing the same agents to be exposed through different protocols simultaneously.
