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

# Messaging Integrations

> Reach the Synti agent from Telegram, WhatsApp, and Lark/Feishu, and drive sessions from your phone.

Messaging integrations let you talk to the Synti agent from the chat apps you already use. Bind a chat to a session, send a message, and the agent runs on your machine and replies right back in the thread — so you can kick off work, check results, or steer a running task without opening the desktop app.

Synti connects to three platforms today. Each is configured per workspace under **Settings → Messaging**.

<CardGroup cols={3}>
  <Card title="Telegram" icon="telegram" href="/messaging/telegram">
    Connect a bot with a token from BotFather. Supports inline buttons and attachments up to 20 MB.
  </Card>

  <Card title="WhatsApp" icon="whatsapp" href="/messaging/whatsapp">
    Link by scanning a QR code, just like WhatsApp Web. Test it from a self-chat without a second phone.
  </Card>

  <Card title="Lark / Feishu" icon="comment" href="/messaging/lark">
    Connect a custom app with an App ID and secret. Supports interactive cards and rich text.
  </Card>
</CardGroup>

## How it works

Every integration follows the same three-part flow:

<Steps>
  <Step title="Enable the platform">
    Turn on and authenticate the platform in your workspace's **Settings → Messaging**.
  </Step>

  <Step title="Bind a chat to a session">
    Link a specific chat to a Synti session — either a new one or an existing one — so messages have somewhere to go.
  </Step>

  <Step title="Chat with the agent">
    Send messages that drive the agent, and its replies render back into the chat according to your chosen response mode.
  </Step>
</Steps>

## Commands

You manage sessions from inside the chat with slash commands. The same set works across platforms:

| Command        | What it does                                                  |
| -------------- | ------------------------------------------------------------- |
| `/new`         | Create a new session and bind this chat to it.                |
| `/bind`        | Bind this chat to an existing session.                        |
| `/pair <code>` | Redeem a pairing code to bind an app session from your phone. |
| `/unbind`      | Disconnect this chat from its session.                        |
| `/status`      | Show the current binding.                                     |
| `/stop`        | Halt the running agent.                                       |

## Response modes

Each binding can render the agent's output differently. Pick the one that fits how closely you want to follow along:

* **Progress** (default) — a single message that edits itself in place, with thinking bubbles, as the agent works.
* **Streaming** — live edits plus intermediate messages, mirroring what you'd see in the desktop app.
* **Final only** — the agent stays quiet until it's done, then posts one final message.

## Pairing codes

To bind an existing desktop session from your phone, Synti issues a short-lived six-digit pairing code. Send it with `/pair <code>` from the chat and the session binds instantly.

Pairing codes are built for safety: they expire quickly, are rate-limited against brute-force guessing, and are scoped to a single workspace — a workspace only accepts its own codes.

## Good to know

* **Bindings are workspace-scoped.** Each workspace keeps its own messaging configuration and only accepts its own pairing codes.
* **Direct messages only.** The agent runs from private one-on-one chats. Group and channel messages are rejected. (Lark/Feishu is the exception — it can respond to group messages where the bot is @mentioned.)
* **Attachments** route through the same temporary file handling as uploads in the app.
* **Approval prompts** for actions like running shell commands appear in the chat or in the desktop app depending on your `approvalChannel` setting. Some platforms can only approve from the desktop app — see each platform's page.

<Note>
  Messaging configuration is stored per workspace under
  `~/.synti/workspaces/{workspaceId}/messaging/`, with separate files for platform settings, chat-to-session mappings, and any saved credentials.
</Note>

## Set up a platform

<CardGroup cols={3}>
  <Card title="Telegram" icon="telegram" href="/messaging/telegram" />

  <Card title="WhatsApp" icon="whatsapp" href="/messaging/whatsapp" />

  <Card title="Lark / Feishu" icon="comment" href="/messaging/lark" />
</CardGroup>
