Telegram
This guide covers setting up a Qwen Code channel on Telegram.
Prerequisites
- A Telegram account
- A Telegram bot token (see below)
Creating a Bot
- Open Telegram and search for @BotFather
- Send
/newbotand follow the prompts to choose a name and username - BotFather will give you a bot token — save it securely
Finding Your User ID
To use senderPolicy: "allowlist" or "pairing", you need your Telegram user ID (a numeric ID, not your username).
The easiest way to find it:
- Search for @userinfobot on Telegram
- Send it any message — it will reply with your user ID
Configuration
Add the channel to ~/.qwen/settings.json:
{
"channels": {
"my-telegram": {
"type": "telegram",
"token": "$TELEGRAM_BOT_TOKEN",
"senderPolicy": "allowlist",
"allowedUsers": ["YOUR_USER_ID"],
"sessionScope": "user",
"cwd": "/path/to/your/project",
"instructions": "You are a concise coding assistant responding via Telegram. Keep responses short.",
"groupPolicy": "disabled",
"groups": {
"*": { "requireMention": true }
}
}
}
}Set the bot token as an environment variable:
export TELEGRAM_BOT_TOKEN=<your-token-from-botfather>Or add it to a .env file that gets sourced before running.
Running
# Start only the Telegram channel
qwen channel start my-telegram
# Or start all configured channels together
qwen channel startThen open your bot in Telegram and send a message. You should see “Working…” appear immediately, followed by the agent’s response.
Group Chats
To use the bot in Telegram groups:
- Set
groupPolicyto"allowlist"or"open"in your channel config - Disable privacy mode in BotFather:
/mybots→ select your bot → Bot Settings → Group Privacy → Turn Off - Add the bot to a group. If it was already in the group, remove and re-add it (Telegram caches privacy settings from when the bot joined)
- If using
groupPolicy: "allowlist", add the group’s chat ID togroupsin your config
By default, the bot requires an @mention or a reply to respond in groups. Set "requireMention": false for a specific group to make it respond to all messages (useful for dedicated task groups). See Group Chats for full details.
Images and Files
You can send photos and documents to the bot, not just text.
Photos: Send a photo and the agent will analyze it using its vision capabilities. This requires a multimodal model — add "model": "qwen3.5-plus" (or another vision-capable model) to your channel config. Photo captions are passed as the message text.
Documents: Send a PDF, code file, or any document. The bot downloads it and saves it locally so the agent can read it with its file tools. This works with any model. Telegram’s file size limit is 20MB.
Tips
- Keep instructions concise-focused — Telegram has a 4096-character message limit. Adding instructions like “keep responses short” helps the agent stay within bounds.
- Use
sessionScope: "user"— This gives each user their own conversation. Use/clearto start fresh. - Restrict access — Use
senderPolicy: "allowlist"for a fixed set of users, or"pairing"to let new users request access with a code you approve via CLI. See DM Pairing for details.
Message Formatting
The agent’s markdown responses are automatically converted to Telegram-compatible HTML. Code blocks, bold, italic, links, and lists are all supported.
Troubleshooting
Bot doesn’t respond
- Check that the bot token is correct and the environment variable is set
- Verify your user ID is in
allowedUsersif usingsenderPolicy: "allowlist", or that you’ve been approved if using"pairing" - Check the terminal output for errors
Bot doesn’t respond in groups
- Check that
groupPolicyis set to"allowlist"or"open"(default is"disabled") - If using
"allowlist", verify the group’s chat ID is in thegroupsconfig - Make sure Group Privacy is turned off in BotFather — without this, the bot can’t see non-command messages in groups
- If you changed privacy mode after adding the bot to a group, remove and re-add the bot to the group
- By default, the bot requires an @mention or a reply. Send
@yourbotname helloto test
”Sorry, something went wrong processing your message”
This usually means the agent encountered an error. Check the terminal output for details.
Bot takes a long time to respond
The agent may be running multiple tool calls (reading files, searching, etc.). The “Working…” indicator shows while the agent is processing. Complex tasks can take a minute or more.