Telegram Setup
Create a Telegram bot
- Open Telegram and message @BotFather
- Send
/newbot - Choose a display name (e.g., “My Denkeeper”)
- Choose a username (must end in
bot, e.g.,my_denkeeper_bot) - Copy the token BotFather gives you
Configure Denkeeper
[telegram]
token = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
allowed_users = [YOUR_USER_ID]
Find your user ID by messaging @userinfobot.
Features
Typing indicator
While the LLM is processing, the bot shows a “typing…” indicator in the chat. This is sent immediately after receiving your message and refreshed every 4 seconds until the response is ready.
Slash commands
Denkeeper registers commands with Telegram’s command picker:
/start— welcome message/help— list available commands
Skills with command: triggers (e.g., triggers = ["command:briefing"]) are automatically registered as /briefing in Telegram’s command menu.
Voice messages
With the [voice] section configured, the bot transcribes incoming voice messages to text using OpenAI’s Whisper API, and can optionally reply with synthesized speech.
Inline keyboards
Approval requests are delivered as messages with Approve/Deny inline buttons. The user taps a button to resolve the request without typing.
Multiple agents
You can bind different agents to different Telegram chats:
[[agents]]
name = "default"
adapters = ["telegram"] # all other chats
[[agents]]
name = "work"
adapters = ["telegram:987654321"] # this specific chat only