insodimension/telegram
v0.1.3MIT
Telegram connector — send messages, read updates, inspect chats via the Bot API
What this package declares
The file a client reads when it loads this plugin, exactly as this revision carries it.
plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "telegram",
"version": "0.1.3",
"description": "Telegram connector — send messages, read updates, inspect chats via the Bot API",
"author": {
"name": "Dimension"
},
"license": "MIT",
"keywords": [
"telegram",
"bot",
"messaging",
"chat",
"connector"
],
"extensions": {
"ai.insodimension.dimension": {
"contractVersion": 1,
"title": "Telegram",
"icon": "assets/icon.svg",
"category": "connector",
"defaultEnabled": false,
"examples": [
"Send me a Telegram message when the build finishes",
"Read my latest Telegram messages",
"What's the chat id for the person who just messaged my bot?"
],
"connect": {
"kind": [
"form"
],
"setup": [
{
"title": "Open @BotFather in Telegram",
"detail": "BotFather is Telegram's official bot for creating bots. Open it in the Telegram app (or Telegram Web).",
"url": "https://t.me/BotFather",
"urlLabel": "Open BotFather"
},
{
"title": "Create a new bot",
"detail": "Send /newbot to BotFather. Pick a display name, then a unique username that MUST end in `bot` (e.g. my_dimension_bot)."
},
{
"title": "Copy the HTTP API token",
"detail": "BotFather replies with a token like 123456789:ABCdefGhIJKlmNoPQRsTUVwxyz. Paste it into the form below — it stays on this machine."
},
{
"title": "Say hello to your bot",
"detail": "A bot cannot message a user who never messaged it first. Open a chat with your new bot (or add it to a group) and send /start. Then run telegram_get_updates to discover the chat_id you can message."
}
],
"form": [
{
"id": "botToken",
"label": "Bot API Token",
"secret": true,
"placeholder": "123456:ABC-…",
"help": "The HTTP API token @BotFather gives you when you create a bot with /newbot (or later via /mybots → API Token).",
"helpUrl": "https://core.telegram.org/bots#botfather",
"helpUrlLabel": "About BotFather"
}
],
"configTemplate": "connect/token.template.json",
"configTarget": "~/.config/dimension-telegram/token.json",
"verify": {
"http": "https://api.telegram.org/bot${access}/getMe",
"authPrefix": "",
"failures": [
{
"match": "401|Unauthorized",
"title": "Reconnect Telegram — the bot token is invalid",
"detail": "Ask @BotFather for the token again (/mybots → API Token) and paste the fresh value.",
"url": "https://t.me/BotFather",
"urlLabel": "Open BotFather"
}
]
}
},
"toolRenderer": [
{
"match": "telegram_send_message",
"use": "summary",
"icon": "telegram",
"title": "Send message"
},
{
"match": "telegram_get_updates",
"use": "summary",
"icon": "telegram",
"title": "Updates"
},
{
"match": "telegram_get_chat",
"use": "summary",
"icon": "telegram",
"title": "Chat"
},
{
"match": "telegram_reply_message",
"use": "summary",
"icon": "telegram",
"title": "Reply"
},
{
"match": "telegram_edit_message",
"use": "summary",
"icon": "telegram",
"title": "Edit"
},
{
"match": "telegram_delete_message",
"use": "summary",
"icon": "telegram",
"title": "Delete"
},
{
"match": "telegram_pin_message",
"use": "summary",
"icon": "telegram",
"title": "Pin"
},
{
"match": "telegram_send_photo",
"use": "summary",
"icon": "telegram",
"title": "Photo"
}
],
"tools": [
{
"name": "telegram_send_message",
"description": "Send a text message to a Telegram chat via the bot. Destructive — confirm recipient and text first. Returns the sent message_id."
},
{
"name": "telegram_get_updates",
"description": "Read recent incoming messages the bot received (chat id/title, sender, text). Use to discover a chat_id. Only works when no webhook is set."
},
{
"name": "telegram_get_chat",
"description": "Look up a chat's title, type, username, and description by chat_id or @username."
},
{
"name": "telegram_reply_message",
"description": "Reply to a specific message in a chat (threads under the original). Destructive — confirm chat_id, the message_id, and reply text first. Returns the sent message_id."
},
{
"name": "telegram_edit_message",
"description": "Replace the text of a message the bot itself sent. Cannot edit other users' messages. Destructive — confirm chat_id, message_id, and new text first."
},
{
"name": "telegram_delete_message",
"description": "Delete a message from a chat. Irreversible — demand explicit confirmation of chat_id and message_id. Bot's own any time; others' only within 48h and with admin rights."
},
{
"name": "telegram_pin_message",
"description": "Pin a message to the top of a chat, or unpin it when unpin=true. Needs 'pin messages' admin rights in groups. Confirm chat_id, message_id, and pin/unpin first."
},
{
"name": "telegram_send_photo",
"description": "Send a photo to a chat by https:// URL with an optional caption. Destructive — confirm recipient, photo URL, and caption first. Returns the sent message_id."
}
]
}
}
}
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- ai.insodimension.dimension