← 开源
yincongcyincong

MuseBot

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.

AI EngineeringBring agent to usersGo
在 GitHub 打开
增长势头
+524 小时新增 Star+0.3%
1.67k
Star
247
Fork
+16
本周
4
贡献者
创建于 2025-02-17 · 更新于 2026-10-16 · 今日第 2192 名
主要开发者
README

🚀 Connect your communication app to AI in just one minute

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.
  • 🧩 Skills: load local SKILL.md instructions into the unified /task workflow, see doc.
  • 🛠️ Conversational System Operations: use natural language directly to manage runtime settings, MCP, skills, and cron jobs, and to run commands and file operations inside safety boundaries, 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

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
🌞 QQ ✅ Support QQ http callback to trigger LLM Docs
🚇 Wechat ✅ Support Wechat http callback to trigger LLM Docs

Supported Large Language Models

Model Provider Text Generation Image Generation Video Generation Recognize Photo TTS Link
🌟 Gemini Google ✅ ✅ ✅ ✅ ✅ 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

🤖 Text Example

🎺 Multimodal Example

📥 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 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 -

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 $txt_type $photo_type $video_type $rec_type

choose txt/photo/video/recognize model type.

/txt_model /img_model /video_model /rec_model $txt_model $img_model $video_model $rec_model

choose txt/photo/video/recognize model.

/mode $mode

show current model type and model.

/state $state

calculate one user token usage.

/photo /edit_photo $photo $edit_photo

/edit_photo will update you photo base on your description.

/video $video

/chat $chat

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

/help $help

/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

排名相邻
同类项目