Telegram
Use Telegram when you want the same Gavin agent available in chat without opening the web dashboard.
Good use cases
Telegram works well for:
- quick questions while away from your desk
- lightweight team coordination in a shared group
- sending text, photos, and supported documents to an agent
- using the same profile from web and chat channels
The Telegram bridge talks to the same Gavin server as the web app and CLI. It is a chat channel, not a separate agent system.
What Telegram can do
With Telegram enabled, users can:
- chat with a Gavin profile in a private Telegram chat
- use Gavin in a Telegram group
- switch org and profile with Telegram commands
- send photos
- send supported documents such as
pdf,docx,txt, andcsv
Setup
1. Create a bot
- Open
@BotFather - Create a bot
- Copy the bot token
2. Save Telegram settings in Gavin
- Open Integrations → Telegram in the Gavin web app
- Paste the bot token
- Choose which profile should reply
- Save
3. Pair your Telegram account
- Generate or copy the pairing code from Integrations → Telegram
- Open the bot in a private Telegram chat
- Send the pairing code as a message
After that, your Telegram user is linked to Gavin.
Running the bridge
From the repo root:
bun run dev:telegramThe bridge uses long polling and forwards Telegram messages to the Gavin server.
Private chat behavior
Private chat is the simplest setup.
- paired users can send normal messages directly to the bot
- the bot keeps a Telegram session history
/status,/profile,/org,/clear, and/neware available
Group chat setup
Group chat needs one extra Telegram-specific setup step.
- Link your account with the bot in a private chat first
- In
@BotFather, disable Group Privacy for the bot if you want@mentionsto work reliably - If you changed Group Privacy, remove the bot from the group and add it back
- Add the bot to the group
Without that re-add step, Telegram may keep sending only limited group updates such as slash commands and replies.
How group triggering works
Gavin does not reply to every group message.
Even when Telegram group privacy is disabled, Gavin only responds when a message is:
- a slash command like
/status - a reply to one of the bot's messages
- a real bot mention like
@your_bot_name hello
This keeps the bot usable in groups without becoming noisy.
Commands
Useful Telegram commands:
| Command | What it does |
|---|---|
/start | Shows the welcome or help flow |
/help | Lists available Telegram commands |
/status | Shows bridge, provider, and profile status |
/org | Lists or switches the active organization |
/profile | Lists or switches the active replying profile |
/clear | Clears the current chat history |
/new | Starts a fresh conversation |
/compact | Compacts the current conversation history |
/stop | Stops an in-progress reply |
Troubleshooting
Mentions do not work in groups
Check these first:
- Disable Group Privacy in
@BotFather - Remove the bot from the group and add it back
- Make sure only one Telegram bridge worker is running
If replies and slash commands work but mentions do not, the issue is usually Telegram group delivery settings, not Gavin's handler logic.
Private chat works but group chat does not
Usually one of these is true:
- the user is not paired yet
- the bot was added before Group Privacy was changed
- the wrong bridge worker is running
The bot does not answer any Telegram messages
Check:
- the bot token is saved
- the bridge worker is running
- the Gavin server is running
- the Telegram user is paired
