supports Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信, compatible with various LLMs including OpenAI, Gemini, DeepSeek, Doubao, and OpenRouter. It offers intelligent conversation, image generation, video creation, and more. Works seamlessly in both private chats and group settings.
See the codeThis repository provides a Chat bot (Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信) that integrates
with LLM API to provide
AI-powered responses. The bot supports openai deepseek gemini openrouter orcarouter LLMs, making interactions feel
more natural and dynamic.
中文文档
Китайская документация
感谢阮一峰老师的weekly,很荣幸能登榜:https://github.com/ruanyf/weekly
感谢linux.do 社区,佬友们很给力,给一个我的介绍贴链接:https://linux.do/t/topic/1128110
Thanks to the Reddit community as well, even though a few of my subreddits got banned 😅: https://www.reddit.com/
SKILL.md instructions into the unified /task workflow,
see doc.easiest way to use: https://www.youtube.com/watch?v=4UHoKRMfNZg
deepseek: https://www.youtube.com/watch?v=kPtNdLjKVn0
gemini: https://www.youtube.com/watch?v=7mV9RYvdE6I
chatgpt: https://www.youtube.com/watch?v=G_DZYMvd5Ug
| Platform | Supported | Description | Docs / Links |
|---|---|---|---|
| 🟦 Telegram | ✅ | Supports Telegram bot (go-telegram-bot-api based, handles commands, inline buttons, ForceReply, etc.) | Docs |
| 🌈 Discord | ✅ | Supports Discord bot | Docs |
| 🌛 Web API | ✅ | Provides HTTP/Web API for interacting with LLM (great for custom frontends/backends) | Docs |
| 🔷 Slack | ✅ | Supports Slack (Socket Mode / Events API / Block Kit interactions) | Docs |
| 🟣 Lark (Feishu) | ✅ | Supports Lark long connection & message handling (based on larksuite SDK, with image/audio download & message update) | Docs |
| 🆙 DingDing | ✅ | Supports Dingding long connection | Docs |
| ⚡️ Work WeChat | ✅ | Support Work WeChat http callback to trigger LLM | Docs |
| ✅ | Support QQ http callback to trigger LLM | Docs | |
| ✅ | Support Wechat http callback to trigger LLM | Docs |
| Model | Provider | Text Generation | Image Generation | Video Generation | Recognize Photo | TTS | Link |
|---|---|---|---|---|---|---|---|
| 🌟 Gemini | ✅ | ✅ | ✅ | ✅ | ✅ | doc | |
| 💬 ChatGPT | OpenAI | ✅ | ✅ | ❌ | ✅ | ✅ | doc |
| 🐦 Doubao | ByteDance | ✅ | ✅ | ✅ | ✅ | ✅ | doc |
| 🐦 Qwen | Aliyun | ✅ | ✅ | ✅ | ✅ | ✅ | doc |
| 🧠 DeepSeek | DeepSeek | ✅ | ❌ | ❌ | ❌ | ❌ | doc |
| ⚙️ 302.AI | 302.AI | ✅ | ✅ | ✅ | ✅ | ❌ | doc |
| 🌐 OpenRouter | OpenRouter | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
| 🛡️ OrcaRouter | OrcaRouter | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
| 🌐 ChatAnywhere | ChatAnywhere | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
Clone the repository
git clone https://github.com/yincongcyincong/MuseBot.git
cd MuseBot
Install dependencies
go mod tidy
Set up environment variables
export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
export DEEPSEEK_TOKEN="your_deepseek_api_key"
Run the bot locally:
go run main.go -telegram_bot_token=telegram-bot-token -deepseek_token=deepseek-auth-token
Use docker
docker pull jackyin0822/musebot:latest
chmod 777 /home/user/data
docker run -d -v /home/user/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" -p 36060:36060 --name my-bot jackyin0822/MuseBot:latest
ALIYUN:
docker pull crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot:latest
chmod 777 /home/user/data
docker run -d -v /home/user/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" -p 36060:36060 --name my-bot crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot:latest
command: (doc)[https://github.com/yincongcyincong/MuseBot/blob/main/static/doc/param_conf.md]
You can configure the bot via environment variables:
Here’s the English version of your environment variable table: If you use parameter. Please use lower letter and underscore. for example: ./MuseBot -telegram_bot_token=xxx
| Variable Name | Description | Default Value |
|---|---|---|
| TELEGRAM_BOT_TOKEN | Telegram bot token | - |
| DISCORD_BOT_TOKEN | Discord bot token | - |
| SLACK_BOT_TOKEN | Slack bot token | - |
| SLACK_APP_TOKEN | Slack app-level token | - |
| LARK_APP_ID | Lark (Feishu) App ID | - |
| LARK_APP_SECRET | Lark (Feishu) App Secret | - |
| DING_CLIENT_ID | DingTalk App Key / Client ID | - |
| DING_CLIENT_SECRET | DingTalk App Secret | - |
| DING_TEMPLATE_ID | DingTalk template message ID | - |
| COM_WECHAT_TOKEN | WeCom (Enterprise WeChat) token | - |
| COM_WECHAT_ENCODING_AES_KEY | WeCom EncodingAESKey | - |
| COM_WECHAT_CORP_ID | WeCom CorpID | - |
| COM_WECHAT_SECRET | WeCom App Secret | - |
| COM_WECHAT_AGENT_ID | WeCom Agent ID | - |
| WECHAT_APP_ID | WeChat Official Account AppID | - |
| WECHAT_APP_SECRET | WeChat Official Account AppSecret | - |
| WECHAT_ENCODING_AES_KEY | WeChat Official Account EncodingAESKey | - |
| WECHAT_TOKEN | WeChat Official Account Token | - |
| WECHAT_ACTIVE | Whether to enable WeChat message listening (true/false) | false |
| QQ_APP_ID | QQ Open Platform AppID | - |
| QQ_APP_SECRET | QQ Open Platform AppSecret | - |
| QQ_ONEBOT_RECEIVE_TOKEN | Token for ONEBOT → MuseBot event messages | MuseBot |
| QQ_ONEBOT_SEND_TOKEN | Token for MuseBot → ONEBOT message sending | MuseBot |
| QQ_ONEBOT_HTTP_SERVER | ONEBOT HTTP server address | http://127.0.0.1:3000 |
| DEEPSEEK_TOKEN | DeepSeek API key | - |
| OPENAI_TOKEN | OpenAI API key | - |
| GEMINI_TOKEN | Google Gemini API token | - |
| OPEN_ROUTER_TOKEN | OpenRouter token doc | - |
| ORCAROUTER_TOKEN | OrcaRouter API key doc | - |
| ALIYUN_TOKEN | Aliyun Bailian token doc | - |
| AI_302_TOKEN | 302.AI token doc | - |
| VOL_TOKEN | Volcano Engine general token doc | - |
| VOLC_AK | Volcano Engine multimedia access key doc | - |
| VOLC_SK | Volcano Engine multimedia secret key doc | - |
| ERNIE_AK | Baidu ERNIE large model AK doc | - |
| ERNIE_SK | Baidu ERNIE large model SK doc | - |
| CUSTOM_URL | Custom LLM API endpoint | https://api.deepseek.com/ |
| TYPE | LLM type (deepseek/openai/gemini/openrouter/vol/302-ai/chatanywhere/orcarouter) | deepseek |
| MEDIA_TYPE | Media generation source (openai/gemini/vol/openrouter/aliyun/302-ai/orcarouter) | vol |
| DB_TYPE | Database type (sqlite3/mysql) | sqlite3 |
| DB_CONF | Database config path or connection string | ./data/muse_bot.db |
| LLM_PROXY | LLM network proxy (e.g. http://127.0.0.1:7890) | - |
| ROBOT_PROXY | Bot network proxy (e.g. http://127.0.0.1:7890) | - |
| LANG | Language (en/zh) | en |
| TOKEN_PER_USER | Max tokens allowed per user, 0 means no limit | 10000 |
| MAX_USER_CHAT | Maximum concurrent chats per user | 2 |
| HTTP_HOST | MuseBot HTTP server port | :36060 |
| USE_TOOLS | Enable function-calling tools (true/false) | false |
| MAX_QA_PAIR | Max number of question-answer pairs to keep as context | 100 |
| CHARACTER | AI personality description | - |
| CRT_FILE | HTTPS certificate file path | - |
| KEY_FILE | HTTPS private key file path | - |
| CA_FILE | HTTPS CA certificate file path | - |
| ADMIN_USER_IDS | Comma-separated list of admin user IDs | - |
| ALLOWED_USER_IDS | Comma-separated user IDs allowed to use the bot; empty = all allowed; 0 = all banned | - |
| ALLOWED_GROUP_IDS | Comma-separated group IDs allowed to use the bot; empty = all allowed; 0 = all banned | - |
| BOT_NAME | Bot name | MuseBot |
| CHAT_ANY_WHERE_TOKEN | ChatAnyWhere platform token | - |
| SMART_MODE | Automatically check what you want to generate (txt/photo/video) and route multi-step tasks to /task | true |
| SEND_MCP_RES | send mcp result to user | false |
| DEFAULT_MODEL | default txt model | - |
If you are using a self-deployed llm, you can set CUSTOM_URL to route requests to your self-deployed llm.
support sqlite3 or mysql
if DB_TYPE is sqlite3, give a file path, such as ./data/telegram_bot.db
if DB_TYPE is mysql, give a mysql link, such as
root:admin@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local, database must be created.
choose a language for bot, English (en), Chinese (zh), Russian (ru).
deepseek_conf
photo_conf
video_conf
audio_conf
clear all of your communication record with deepseek. this record use for helping deepseek to understand the context.
retry last question.
choose txt/photo/video/recognize model type.
choose txt/photo/video/recognize model.
show current model type and model.
calculate one user token usage.
/edit_photo will update you photo base on your description.
allows the bot to chat through /chat command in groups,
without the bot being set as admin of the group.
multi agent communicate with each other!
Build the Docker image
docker build -t MuseBot .
Run the container
docker run -d -v /home/user/xxx/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" --name my-bot MuseBot
Feel free to submit issues and pull requests to improve this bot. 🚀
telegram-group: https://t.me/+WtaMcDpaMOlhZTE1 , or you can have a try robot Guanwushan_bot.
every body have 10000 token to try this bot, please give me a star!
QQ群:1031411708
MIT License © 2025 jack yin
supports Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信, compatible with various LLMs including OpenAI, Gemini, DeepSeek, Doubao, and OpenRouter. It offers intelligent conversation, image generation, video creation, and more. Works seamlessly in both private chats and group settings.
See the codeThis repository provides a Chat bot (Telegram, Discord, Slack, Lark(飞书),钉钉, 企业微信, QQ, 微信) that integrates
with LLM API to provide
AI-powered responses. The bot supports openai deepseek gemini openrouter orcarouter LLMs, making interactions feel
more natural and dynamic.
中文文档
Китайская документация
感谢阮一峰老师的weekly,很荣幸能登榜:https://github.com/ruanyf/weekly
感谢linux.do 社区,佬友们很给力,给一个我的介绍贴链接:https://linux.do/t/topic/1128110
Thanks to the Reddit community as well, even though a few of my subreddits got banned 😅: https://www.reddit.com/
SKILL.md instructions into the unified /task workflow,
see doc.easiest way to use: https://www.youtube.com/watch?v=4UHoKRMfNZg
deepseek: https://www.youtube.com/watch?v=kPtNdLjKVn0
gemini: https://www.youtube.com/watch?v=7mV9RYvdE6I
chatgpt: https://www.youtube.com/watch?v=G_DZYMvd5Ug
| Platform | Supported | Description | Docs / Links |
|---|---|---|---|
| 🟦 Telegram | ✅ | Supports Telegram bot (go-telegram-bot-api based, handles commands, inline buttons, ForceReply, etc.) | Docs |
| 🌈 Discord | ✅ | Supports Discord bot | Docs |
| 🌛 Web API | ✅ | Provides HTTP/Web API for interacting with LLM (great for custom frontends/backends) | Docs |
| 🔷 Slack | ✅ | Supports Slack (Socket Mode / Events API / Block Kit interactions) | Docs |
| 🟣 Lark (Feishu) | ✅ | Supports Lark long connection & message handling (based on larksuite SDK, with image/audio download & message update) | Docs |
| 🆙 DingDing | ✅ | Supports Dingding long connection | Docs |
| ⚡️ Work WeChat | ✅ | Support Work WeChat http callback to trigger LLM | Docs |
| ✅ | Support QQ http callback to trigger LLM | Docs | |
| ✅ | Support Wechat http callback to trigger LLM | Docs |
| Model | Provider | Text Generation | Image Generation | Video Generation | Recognize Photo | TTS | Link |
|---|---|---|---|---|---|---|---|
| 🌟 Gemini | ✅ | ✅ | ✅ | ✅ | ✅ | doc | |
| 💬 ChatGPT | OpenAI | ✅ | ✅ | ❌ | ✅ | ✅ | doc |
| 🐦 Doubao | ByteDance | ✅ | ✅ | ✅ | ✅ | ✅ | doc |
| 🐦 Qwen | Aliyun | ✅ | ✅ | ✅ | ✅ | ✅ | doc |
| 🧠 DeepSeek | DeepSeek | ✅ | ❌ | ❌ | ❌ | ❌ | doc |
| ⚙️ 302.AI | 302.AI | ✅ | ✅ | ✅ | ✅ | ❌ | doc |
| 🌐 OpenRouter | OpenRouter | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
| 🛡️ OrcaRouter | OrcaRouter | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
| 🌐 ChatAnywhere | ChatAnywhere | ✅ | ✅ | ❌ | ✅ | ❌ | doc |
Clone the repository
git clone https://github.com/yincongcyincong/MuseBot.git
cd MuseBot
Install dependencies
go mod tidy
Set up environment variables
export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
export DEEPSEEK_TOKEN="your_deepseek_api_key"
Run the bot locally:
go run main.go -telegram_bot_token=telegram-bot-token -deepseek_token=deepseek-auth-token
Use docker
docker pull jackyin0822/musebot:latest
chmod 777 /home/user/data
docker run -d -v /home/user/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" -p 36060:36060 --name my-bot jackyin0822/MuseBot:latest
ALIYUN:
docker pull crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot:latest
chmod 777 /home/user/data
docker run -d -v /home/user/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" -p 36060:36060 --name my-bot crpi-i1dsvpjijxpgjgbv.cn-hangzhou.personal.cr.aliyuncs.com/jackyin0822/musebot:latest
command: (doc)[https://github.com/yincongcyincong/MuseBot/blob/main/static/doc/param_conf.md]
You can configure the bot via environment variables:
Here’s the English version of your environment variable table: If you use parameter. Please use lower letter and underscore. for example: ./MuseBot -telegram_bot_token=xxx
| Variable Name | Description | Default Value |
|---|---|---|
| TELEGRAM_BOT_TOKEN | Telegram bot token | - |
| DISCORD_BOT_TOKEN | Discord bot token | - |
| SLACK_BOT_TOKEN | Slack bot token | - |
| SLACK_APP_TOKEN | Slack app-level token | - |
| LARK_APP_ID | Lark (Feishu) App ID | - |
| LARK_APP_SECRET | Lark (Feishu) App Secret | - |
| DING_CLIENT_ID | DingTalk App Key / Client ID | - |
| DING_CLIENT_SECRET | DingTalk App Secret | - |
| DING_TEMPLATE_ID | DingTalk template message ID | - |
| COM_WECHAT_TOKEN | WeCom (Enterprise WeChat) token | - |
| COM_WECHAT_ENCODING_AES_KEY | WeCom EncodingAESKey | - |
| COM_WECHAT_CORP_ID | WeCom CorpID | - |
| COM_WECHAT_SECRET | WeCom App Secret | - |
| COM_WECHAT_AGENT_ID | WeCom Agent ID | - |
| WECHAT_APP_ID | WeChat Official Account AppID | - |
| WECHAT_APP_SECRET | WeChat Official Account AppSecret | - |
| WECHAT_ENCODING_AES_KEY | WeChat Official Account EncodingAESKey | - |
| WECHAT_TOKEN | WeChat Official Account Token | - |
| WECHAT_ACTIVE | Whether to enable WeChat message listening (true/false) | false |
| QQ_APP_ID | QQ Open Platform AppID | - |
| QQ_APP_SECRET | QQ Open Platform AppSecret | - |
| QQ_ONEBOT_RECEIVE_TOKEN | Token for ONEBOT → MuseBot event messages | MuseBot |
| QQ_ONEBOT_SEND_TOKEN | Token for MuseBot → ONEBOT message sending | MuseBot |
| QQ_ONEBOT_HTTP_SERVER | ONEBOT HTTP server address | http://127.0.0.1:3000 |
| DEEPSEEK_TOKEN | DeepSeek API key | - |
| OPENAI_TOKEN | OpenAI API key | - |
| GEMINI_TOKEN | Google Gemini API token | - |
| OPEN_ROUTER_TOKEN | OpenRouter token doc | - |
| ORCAROUTER_TOKEN | OrcaRouter API key doc | - |
| ALIYUN_TOKEN | Aliyun Bailian token doc | - |
| AI_302_TOKEN | 302.AI token doc | - |
| VOL_TOKEN | Volcano Engine general token doc | - |
| VOLC_AK | Volcano Engine multimedia access key doc | - |
| VOLC_SK | Volcano Engine multimedia secret key doc | - |
| ERNIE_AK | Baidu ERNIE large model AK doc | - |
| ERNIE_SK | Baidu ERNIE large model SK doc | - |
| CUSTOM_URL | Custom LLM API endpoint | https://api.deepseek.com/ |
| TYPE | LLM type (deepseek/openai/gemini/openrouter/vol/302-ai/chatanywhere/orcarouter) | deepseek |
| MEDIA_TYPE | Media generation source (openai/gemini/vol/openrouter/aliyun/302-ai/orcarouter) | vol |
| DB_TYPE | Database type (sqlite3/mysql) | sqlite3 |
| DB_CONF | Database config path or connection string | ./data/muse_bot.db |
| LLM_PROXY | LLM network proxy (e.g. http://127.0.0.1:7890) | - |
| ROBOT_PROXY | Bot network proxy (e.g. http://127.0.0.1:7890) | - |
| LANG | Language (en/zh) | en |
| TOKEN_PER_USER | Max tokens allowed per user, 0 means no limit | 10000 |
| MAX_USER_CHAT | Maximum concurrent chats per user | 2 |
| HTTP_HOST | MuseBot HTTP server port | :36060 |
| USE_TOOLS | Enable function-calling tools (true/false) | false |
| MAX_QA_PAIR | Max number of question-answer pairs to keep as context | 100 |
| CHARACTER | AI personality description | - |
| CRT_FILE | HTTPS certificate file path | - |
| KEY_FILE | HTTPS private key file path | - |
| CA_FILE | HTTPS CA certificate file path | - |
| ADMIN_USER_IDS | Comma-separated list of admin user IDs | - |
| ALLOWED_USER_IDS | Comma-separated user IDs allowed to use the bot; empty = all allowed; 0 = all banned | - |
| ALLOWED_GROUP_IDS | Comma-separated group IDs allowed to use the bot; empty = all allowed; 0 = all banned | - |
| BOT_NAME | Bot name | MuseBot |
| CHAT_ANY_WHERE_TOKEN | ChatAnyWhere platform token | - |
| SMART_MODE | Automatically check what you want to generate (txt/photo/video) and route multi-step tasks to /task | true |
| SEND_MCP_RES | send mcp result to user | false |
| DEFAULT_MODEL | default txt model | - |
If you are using a self-deployed llm, you can set CUSTOM_URL to route requests to your self-deployed llm.
support sqlite3 or mysql
if DB_TYPE is sqlite3, give a file path, such as ./data/telegram_bot.db
if DB_TYPE is mysql, give a mysql link, such as
root:admin@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local, database must be created.
choose a language for bot, English (en), Chinese (zh), Russian (ru).
deepseek_conf
photo_conf
video_conf
audio_conf
clear all of your communication record with deepseek. this record use for helping deepseek to understand the context.
retry last question.
choose txt/photo/video/recognize model type.
choose txt/photo/video/recognize model.
show current model type and model.
calculate one user token usage.
/edit_photo will update you photo base on your description.
allows the bot to chat through /chat command in groups,
without the bot being set as admin of the group.
multi agent communicate with each other!
Build the Docker image
docker build -t MuseBot .
Run the container
docker run -d -v /home/user/xxx/data:/app/data -e TELEGRAM_BOT_TOKEN="telegram-bot-token" -e DEEPSEEK_TOKEN="deepseek-auth-token" --name my-bot MuseBot
Feel free to submit issues and pull requests to improve this bot. 🚀
telegram-group: https://t.me/+WtaMcDpaMOlhZTE1 , or you can have a try robot Guanwushan_bot.
every body have 10000 token to try this bot, please give me a star!
QQ群:1031411708
MIT License © 2025 jack yin