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

# Interfaces

> Expose Agno agents through various communication protocols and platforms

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

## Available Interfaces

<CardGroup cols={2}>
  <Card title="AG-UI" icon="desktop" href="/agent-os/interfaces/ag-ui/introduction">
    Connect agents to frontend applications using the Agent-User Interaction Protocol
  </Card>

  <Card title="Slack" icon="slack" href="/agent-os/interfaces/slack/introduction">
    Deploy agents as Slack applications for team collaboration
  </Card>

  <Card title="WhatsApp" icon="whatsapp" href="/agent-os/interfaces/whatsapp/introduction">
    Serve agents via WhatsApp for direct messaging interactions
  </Card>

  <Card title="Telegram" icon="telegram" href="/agent-os/interfaces/telegram/introduction">
    Deploy agents as Telegram bots for direct and group chat conversations
  </Card>

  <Card title="A2A" icon="code" href="/agent-os/interfaces/a2a/introduction">
    Expose agents via the Agent-to-Agent Protocol for inter-agent communication
  </Card>
</CardGroup>

## How Interfaces Work

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

* Wraps Agno agents, teams, or workflows 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 AgentOS instance through the `interfaces` parameter:

```python theme={null}
from agno.os import AgentOS
from agno.os.interfaces.slack import Slack

agent_os = AgentOS(
    agents=[my_agent],
    interfaces=[Slack(agent=my_agent)],
)
app = agent_os.get_app()
```

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