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.
MuseBot – Multi‑platform chatbot powered by LLM APIs
What it is – MuseBot is an open‑source Go application that turns a variety of communication tools (Telegram, Discord, Slack, Lark/Feishu, DingTalk, Enterprise WeChat, QQ, WeChat, and a generic Web API) into AI‑driven chat bots. It forwards user messages to a large‑language‑model (LLM) service of your choice (OpenAI, DeepSeek, Gemini, OpenRouter, OrcaRouter, 302.AI, etc.) and streams the model’s reply back to the user.
Key capabilities
- LLM‑agnostic – supports dozens of text‑generation providers and can also call image‑generation, video‑generation, and speech‑to‑text services where available.
- Streaming responses – the bot pushes partial tokens as they arrive, giving a real‑time feel.
- Multimodal – you can send images or voice recordings; MuseBot forwards them to the LLM (or to a separate media API) and returns the model’s interpretation.
- Function‑call bridge – a built‑in “mcp protocol → function call” layer lets you expose custom functions to the LLM.
- Skill system – plain‑text
SKILL.mdfiles can be loaded as task templates for structured workflows. - RAG support – optional retrieval‑augmented generation to enrich context from a local SQLite/MySQL store.
- Admin platform & metrics – a lightweight UI for managing bots and Prometheus‑style metrics for monitoring.
- Cron jobs – schedule periodic prompts to an LLM (e.g., daily summaries).
Supported platforms (all listed as ✅ in the README)
| Platform | How it works |
|---|---|
| Telegram | Uses go-telegram-bot-api; supports commands, inline buttons, ForceReply, etc. |
| Discord | Standard Discord bot via the Discord API |
| Slack | Socket Mode / Events API with Block Kit support |
| Lark (Feishu) | Long‑connection SDK handling image/audio download |
| DingTalk | Long‑connection SDK |
| Enterprise WeChat | HTTP callback endpoint |
| QQ (OneBot) | HTTP bridge to OneBot protocol |
| WeChat (Official) | HTTP callback endpoint |
| Web API | Generic REST endpoint you can call from any front‑end |
Getting started
- Clone & build
git clone https://github.com/yincongcyincong/MuseBot.git cd MuseBot go mod tidy # fetch Go dependencies - Configure – set the required environment variables (at minimum a bot token for the platform you’ll use and an LLM token). Example for Telegram + DeepSeek:
Additional variables let you switch providers (export TELEGRAM_BOT_TOKEN="<your‑telegram‑token>" export DEEPSEEK_TOKEN="<your‑deepseek‑api‑key>"TYPE,MEDIA_TYPE), choose a database (DB_TYPE/DB_CONF), and proxy network traffic. - Run
Or use the published Docker image:go run main.go -telegram_bot_token=$TELEGRAM_BOT_TOKEN -deepseek_token=$DEEPSEEK_TOKENdocker pull jackyin0822/musebot:latest docker run -d \ -v /home/user/data:/app/data \ -e TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" \ -e DEEPSEEK_TOKEN="$DEEPSEEK_TOKEN" \ -p 36060:36060 \ --name musebot jackyin0822/musebot:latest - Optional extras – enable image handling (
IMAGE_CONF), voice (AUDIO_CONF), function calls, RAG, cron jobs, etc., by following the markdown docs linked in the README (static/doc/*.md).
Why you might use it
- Quickly give any team‑communication tool an AI assistant without writing custom integration code.
- Centralize LLM credentials; switch providers by changing a single env var.
- Extend with your own functions or retrieval data via the built‑in skill/RAG system.
- Deploy with Docker or on a simple VM; the project includes CI via GitHub Actions and a ready‑to‑pull Docker image.
Links & resources
- Repo: https://github.com/yincongcyincong/MuseBot
- Docker Hub: searchable under
musebot - Demo videos (Telegram, DeepSeek, Gemini, ChatGPT): https://www.youtube.com/watch?v=4UHoKRMfNZg and others listed in the README.
- Documentation – English README plus Chinese and Russian translations; detailed per‑platform docs live under
static/doc/.
All information above is taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project
- Project