Skip to content

telegram.send

Schema

Input = {
text: string, // max 4096 chars (Telegram's own limit)
chatId?: string, // defaults to the chat linked in the Telegram connection
parseMode?: 'Markdown' | 'HTML',
}
Output = {
messageId: string,
chatId: string,
provider: string, // 'twin' | 'telegram'
}

requiresConnection: 'telegram'. Prefers ctx.integrations.telegram when the Twin has wired it; otherwise calls the Telegram Bot API’s sendMessage directly with the connection’s own bot token (or TELEGRAM_BOT_TOKEN from .env) and the chat id learned when you paired — see Connecting Telegram. If no chat has ever paired, the skill fails with a clear instruction rather than a raw API error: “No Telegram chat linked yet. Message the bot once so the Twin can learn your chat id, or pass chatId.”

telegram.send is one of the six world-acting skills — including when Muse reaches for it as one of its ten tools. An agent or Muse calling it directly is refused and a decision Signal goes to your desktop instead; it only sends once you tap “Do it”.

Example

Terminal window
curl -s -X POST http://localhost:4000/api/studio/skills/invoke \
-H 'content-type: application/json' -b cookies.txt \
-d '{"name":"telegram.send","input":{"text":"Your report is ready — check the Studio."}}'
{ "ok": true, "output": { "messageId": "482", "chatId": "6819234501", "provider": "telegram" } }