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

# Proactive Messaging (@send)

> The AI initiates messages on Telegram, WhatsApp, Discord, Slack or a webhook by reusing the gateway adapters — the @send tool.

The **`@send`** tool lets the agent **initiate** a message on a messaging channel — not just reply. It reuses the same adapters as the [Chat Gateway](/features/chat-gateway) (Telegram, WhatsApp, Discord, Slack and a generic webhook), so it works with the credentials you already configured, with no new integration.

<Info>
  This is the native equivalent of hermes-agent's `send_message`: notify the user or deliver a result to a chat proactively.
</Info>

***

## When to use

* Notify the user when a long task finishes ("build green ✅").
* Deliver a result to a specific group/channel.
* Fire an alert from an agent, the scheduler or the gateway daemon.

Chat mode runs no tools; use `@send` in **agent** or **coder**, or via the `send-message` skill.

***

## Subcommands

```text theme={"system"}
<tool_call name="@send" args='{"cmd":"send","args":{"to":"telegram","message":"Build green ✅"}}' />
<tool_call name="@send" args='{"cmd":"list"}' />
```

### `send {to, message}`

* **`to`** is either:
  * a **bare platform** — `telegram`, `whatsapp`, `discord`, `slack`, `webhook` — which delivers to that platform's *home channel* (`CHATCLI_<PLATFORM>_HOME_CHANNEL`); or
  * a **`platform:chat_id`** target — e.g. `telegram:-1001234567890`, `whatsapp:+5511999999999`, `slack:C0123ABC`. Everything after the first `:` is passed verbatim, so thread suffixes (`telegram:-100123:42`) are preserved.
* **`message`** is plain text.

### `list`

Shows configured platforms and whether each has a home channel.

***

## Configuration

| Variable                        | Purpose                                      |
| ------------------------------- | -------------------------------------------- |
| `CHATCLI_TELEGRAM_HOME_CHANNEL` | Default Telegram channel for `to:"telegram"` |
| `CHATCLI_WHATSAPP_HOME_CHANNEL` | Default WhatsApp channel                     |
| `CHATCLI_DISCORD_HOME_CHANNEL`  | Default Discord channel                      |
| `CHATCLI_SLACK_HOME_CHANNEL`    | Default Slack channel                        |
| `CHATCLI_WEBHOOK_HOME_CHANNEL`  | Default webhook target                       |

Per-platform credentials are the gateway's (`CHATCLI_TELEGRAM_BOT_TOKEN`, etc.). `@send` builds the configured adapters on each call via `gateway.BuildConfigured()`, so it works with or without the daemon running. Check the state in `/config` (*Integrations · Gateway · Proactive messaging*).

***

## Common errors

* **"platform is not configured"** → missing credentials; run `@send list` or set the token.
* **"no target for X"** → no `chat_id` and no home channel; pass `platform:chat_id` or set `CHATCLI_<PLATFORM>_HOME_CHANNEL`.

***

## Scope

`@send` sends **text**. Outbound media is delivered by other paths: voice via the [gateway TTS](/features/text-to-speech) and images via [@image](/features/image-generation).

<Tip>
  For natural-language auto-activation ("ping me on Telegram"), use the bundled `send-message` skill — see [Builtin Skills](/features/builtin-skills).
</Tip>
