@send tool lets the agent initiate a message on a messaging channel — not just reply. It reuses the same adapters as the Chat Gateway (Telegram, WhatsApp, Discord, Slack and a generic webhook), so it works with the credentials you already configured, with no new integration.
This is the native equivalent of hermes-agent’s
send_message: notify the user or deliver a result to a chat proactively.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.
@send in agent or coder, or via the send-message skill.
Subcommands
send {to, message}
tois 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_idtarget — e.g.telegram:-1001234567890,whatsapp:+5511999999999,slack:C0123ABC. Everything after the first:is passed verbatim, so thread suffixes (telegram:-100123:42) are preserved.
- a bare platform —
messageis 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 |
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 listor set the token. - “no target for X” → no
chat_idand no home channel; passplatform:chat_idor setCHATCLI_<PLATFORM>_HOME_CHANNEL.
Scope
@send sends text. Outbound media is delivered by other paths: voice via the gateway TTS and images via @image.