MuseBot

August 17, 2026 · View on GitHub

MuseBot Banner

🚀 Connect your communication app to AI in just one minute

GitHub Stars GitHub Forks License Docker GitHub Actions

MuseBot

This 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.
中文文档
Китайская документация

Thanks

感谢阮一峰老师的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/

🚀 Features

  • 🤖 AI Responses: Uses LLM API for chatbot replies.
  • Streaming Output: Sends responses in real-time to improve user experience.
  • 🏗 Easy Deployment: Run locally or deploy to a cloud server.
  • 👀 Identify Image: use image to communicate with LLM, see doc.
  • 🎺 Support Voice: use voice to communicate with LLM, see doc.
  • 🐂 Function Call: transform mcp protocol to function call, see doc.
  • 🌊 RAG: Support Rag to fill context, see doc.
  • 🌞 AdminPlatform: Use platform to manage MuseBot, see doc.
  • 🌛 Register: With the service registration module, robot instances can be automatically registered to the registration center doc
  • 🌈 Metrics: Support Metrics for monitoring, see doc.
  • 🐶 Cron: Support Cron to trigger LLM, see doc.

Usage Video

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

📸 Support Platform

PlatformSupportedDescriptionDocs / Links
🟦 TelegramSupports Telegram bot (go-telegram-bot-api based, handles commands, inline buttons, ForceReply, etc.)Docs
🌈 DiscordSupports Discord botDocs
🌛 Web APIProvides HTTP/Web API for interacting with LLM (great for custom frontends/backends)Docs
🔷 SlackSupports 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
🆙 DingDingSupports Dingding long connectionDocs
⚡️ Work WeChatSupport Work WeChat http callback to trigger LLMDocs
🌞 QQSupport QQ http callback to trigger LLMDocs
🚇 WechatSupport Wechat http callback to trigger LLMDocs

Supported Large Language Models

ModelProviderText GenerationImage GenerationVideo GenerationRecognize PhotoTTSLink
🌟 GeminiGoogledoc
💬 ChatGPTOpenAIdoc
🐦 DoubaoByteDancedoc
🐦 QwenAliyundoc
🧠 DeepSeekDeepSeekdoc
⚙️ 302.AI302.AIdoc
🌐 OpenRouterOpenRouterdoc
🛡️ OrcaRouterOrcaRouterdoc
🌐 ChatAnywhereChatAnywheredoc

🤖 Text Example

aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

🎺 Multimodal Example

aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

📥 Installation

  1. Clone the repository

    git clone https://github.com/yincongcyincong/MuseBot.git
    cd MuseBot
    
  2. Install dependencies

     go mod tidy
    
  3. Set up environment variables

     export TELEGRAM_BOT_TOKEN="your_telegram_bot_token"
     export DEEPSEEK_TOKEN="your_deepseek_api_key"
    

🚀 Usage

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]

⚙️ Configuration

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 NameDescriptionDefault Value
TELEGRAM_BOT_TOKENTelegram bot token-
DISCORD_BOT_TOKENDiscord bot token-
SLACK_BOT_TOKENSlack bot token-
SLACK_APP_TOKENSlack app-level token-
LARK_APP_IDLark (Feishu) App ID-
LARK_APP_SECRETLark (Feishu) App Secret-
DING_CLIENT_IDDingTalk App Key / Client ID-
DING_CLIENT_SECRETDingTalk App Secret-
DING_TEMPLATE_IDDingTalk template message ID-
COM_WECHAT_TOKENWeCom (Enterprise WeChat) token-
COM_WECHAT_ENCODING_AES_KEYWeCom EncodingAESKey-
COM_WECHAT_CORP_IDWeCom CorpID-
COM_WECHAT_SECRETWeCom App Secret-
COM_WECHAT_AGENT_IDWeCom Agent ID-
WECHAT_APP_IDWeChat Official Account AppID-
WECHAT_APP_SECRETWeChat Official Account AppSecret-
WECHAT_ENCODING_AES_KEYWeChat Official Account EncodingAESKey-
WECHAT_TOKENWeChat Official Account Token-
WECHAT_ACTIVEWhether to enable WeChat message listening (true/false)false
QQ_APP_IDQQ Open Platform AppID-
QQ_APP_SECRETQQ Open Platform AppSecret-
QQ_ONEBOT_RECEIVE_TOKENToken for ONEBOT → MuseBot event messagesMuseBot
QQ_ONEBOT_SEND_TOKENToken for MuseBot → ONEBOT message sendingMuseBot
QQ_ONEBOT_HTTP_SERVERONEBOT HTTP server addresshttp://127.0.0.1:3000
DEEPSEEK_TOKENDeepSeek API key-
OPENAI_TOKENOpenAI API key-
GEMINI_TOKENGoogle Gemini API token-
OPEN_ROUTER_TOKENOpenRouter token doc-
ORCAROUTER_TOKENOrcaRouter API key doc-
ALIYUN_TOKENAliyun Bailian token doc-
AI_302_TOKEN302.AI token doc-
VOL_TOKENVolcano Engine general token doc-
VOLC_AKVolcano Engine multimedia access key doc-
VOLC_SKVolcano Engine multimedia secret key doc-
ERNIE_AKBaidu ERNIE large model AK doc-
ERNIE_SKBaidu ERNIE large model SK doc-
CUSTOM_URLCustom LLM API endpointhttps://api.deepseek.com/
TYPELLM type (deepseek/openai/gemini/openrouter/vol/302-ai/chatanywhere/orcarouter)deepseek
MEDIA_TYPEMedia generation source (openai/gemini/vol/openrouter/aliyun/302-ai/orcarouter)vol
DB_TYPEDatabase type (sqlite3/mysql)sqlite3
DB_CONFDatabase config path or connection string./data/muse_bot.db
LLM_PROXYLLM network proxy (e.g. http://127.0.0.1:7890)-
ROBOT_PROXYBot network proxy (e.g. http://127.0.0.1:7890)-
LANGLanguage (en/zh)en
TOKEN_PER_USERMax tokens allowed per user, 0 means no limit10000
MAX_USER_CHATMaximum concurrent chats per user2
HTTP_HOSTMuseBot HTTP server port:36060
USE_TOOLSEnable function-calling tools (true/false)false
MAX_QA_PAIRMax number of question-answer pairs to keep as context100
CHARACTERAI personality description-
CRT_FILEHTTPS certificate file path-
KEY_FILEHTTPS private key file path-
CA_FILEHTTPS CA certificate file path-
ADMIN_USER_IDSComma-separated list of admin user IDs-
ALLOWED_USER_IDSComma-separated user IDs allowed to use the bot; empty = all allowed; 0 = all banned-
ALLOWED_GROUP_IDSComma-separated group IDs allowed to use the bot; empty = all allowed; 0 = all banned-
BOT_NAMEBot nameMuseBot
CHAT_ANY_WHERE_TOKENChatAnyWhere platform token-
SMART_MODEAutomatically check what you want to generate (txt/photo/video)true
SEND_MCP_RESsend mcp result to userfalse
DEFAULT_MODELdefault txt model-

CUSTOM_URL

If you are using a self-deployed llm, you can set CUSTOM_URL to route requests to your self-deployed llm.

DB_TYPE

support sqlite3 or mysql

DB_CONF

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.

LANG

choose a language for bot, English (en), Chinese (zh), Russian (ru).

other config

deepseek_conf
photo_conf
video_conf
audio_conf

Command

/clear $clear

clear all of your communication record with deepseek. this record use for helping deepseek to understand the context.

/retry $retry

retry last question.

/txt_type /photo_type /video_type /rec_type txttypetxt_type photo_type videotypevideo_type rec_type

choose txt/photo/video/recognize model type.
aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

/txt_model /img_model /video_model /rec_model txtmodeltxt_model img_model videomodelvideo_model rec_model

choose txt/photo/video/recognize model.
aa92b3c9580da6926a48fc1fc5c37c03 aa92b3c9580da6926a48fc1fc5c37c03

/mode $mode

show current model type and model.
aa92b3c9580da6926a48fc1fc5c37c03

/state $state

calculate one user token usage.
aa92b3c9580da6926a48fc1fc5c37c03

/photo /edit_photo photophoto edit_photo

aa92b3c9580da6926a48fc1fc5c37c03

/edit_photo will update you photo base on your description.
aa92b3c9580da6926a48fc1fc5c37c03

/video $video

aa92b3c9580da6926a48fc1fc5c37c03

/chat $chat

allows the bot to chat through /chat command in groups, without the bot being set as admin of the group.
aa92b3c9580da6926a48fc1fc5c37c03

/help $help

aa92b3c9580da6926a48fc1fc5c37c03

/task $task

multi agent communicate with each other!

Deployment

Deploy with Docker

  1. Build the Docker image

     docker build -t MuseBot .
    
  2. 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
    

Contributing

Feel free to submit issues and pull requests to improve this bot. 🚀

group

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

License

MIT License © 2025 jack yin