telegram.*
Telegram bridge methods. Requires a configured bot token — see Telegram bridge.
| Method | Params | Result |
|---|---|---|
telegram.status | {} | { bot: { username, firstName }, polling: boolean, lastError?: string, accessPolicy: "open"|"dm-only"|"allowlist", approvedChats: number, pendingPairings: number } |
telegram.list_chats | {} | { chats: Array<{ id, kind: "private"|"group", title, lastMessageAt, lastMessagePreview }> } |
telegram.read | { chatId: string|number, limit?: number, beforeMessageId?: number } | { messages: Array<{ id, ts, fromId, fromName, text, replyToId? }> } |
telegram.send | { chatId: string|number, text: string, silent?: boolean, replyToId?: number } | { messageId } |
telegram.settings | {} | full Telegram settings sub-tree (token elided) |
CLI equivalents
Section titled “CLI equivalents”| Method | CLI |
|---|---|
telegram.status | ht telegram status |
telegram.list_chats | ht telegram chats |
telegram.read | ht telegram read --chat <id> --limit N |
telegram.send | ht telegram send --chat <id> "<text>" |
telegram.settings | (settings panel only) |
Read side
Section titled “Read side”| Method | Params | Result |
|---|---|---|
telegram.chats | {} | { chats: [{ id, name?, lastMessageAt }] } — most-recently-active first |
telegram.history | { chat_id, limit?, before? } | { messages: TelegramWireMessage[] } |
telegram.restart | {} | "OK" — tear down and recreate the long-poll service |
telegram.history reads the SQLite log at
~/Library/Application Support/hyperterm-canvas/telegram.db, so it works even
when polling is disabled. before is a message timestamp for pagination.
telegram.restart is the fix-it path for a rotated token or a transient API
outage — no app restart required.