Model or dataset
AstrBotDevs/AstrBot avatar
AstrBotDevs/AstrBot

AstrBot: A Python Chatbot Framework That Connects LLMs, Plugins, and Messaging Platforms

AstrBot is an AI assistant framework that connects model providers, plugins, and messaging platforms in a deployable bot service.

40,545 stars2,919 forksPythonAGPL-3.0

At a glance

What is it?
AstrBot is an open-source, AGPL-3.0 Python framework for building AI chatbots that work across QQ, Telegram, Slack, and more. It bundles LLM integrations, a plugin system, an agent sandbox, and multiple deployment paths, but its licensing and platform breadth deserve scrutiny.
Who is it for?
Adopt AstrBot if you need a self-hosted chatbot that reaches many Chinese and Western messaging platforms from one codebase, and if you can live with the AGPL-3.0 license and a Python 3.12 toolchain. Do not adopt it if you require a permissive license for proprietary extensions, or if you need a platform it does not yet support, such as WhatsApp, which the README lists as coming soon.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What AstrBot Actually Solves

AstrBot solves a coordination problem: wiring a large language model to a chat platform and keeping that connection maintainable. The README describes it as an all-in-one Agent chatbot platform that integrates with mainstream instant messaging apps. The target audience is broad: individuals building a personal AI companion, developers creating customer service bots, and teams deploying enterprise knowledge bases. The core value is that you do not write a separate adapter for each messaging service. Instead, AstrBot provides the plumbing, and you configure the model and the platform. That is a real convenience for anyone who has maintained a bot that must talk to both QQ and Telegram, because those protocols have little in common. The framework also bundles features that would otherwise require separate libraries, such as persona settings, knowledge base support, and automatic context compression. For a solo developer, that reduces the number of moving parts.

The Architecture: Model Providers, Plugins, and Platforms

The repository layout and README reveal a three-layer design. The bottom layer is the model service integration, which includes direct LLM providers like OpenAI, Anthropic, Google Gemini, DeepSeek, and Ollama, plus LLMOps platforms like Dify, Alibaba Cloud Bailian, and Coze. The middle layer is the plugin system, which allows one-click installation of over 1,000 plugins. The top layer is the messaging adapter, with official support for QQ, OneBot v11, Telegram, WeCom, WeChat Official Accounts, Feishu, DingTalk, Slack, Discord, LINE, Satori, KOOK, Misskey, and Mattermost. Community adapters exist for Matrix, Rocket.Chat, and VoceChat. The data flow is straightforward: a message arrives on a platform, the adapter normalizes it, the agent core decides whether to invoke a plugin or call the model, and the response goes back through the same adapter. The README mentions an agent sandbox for isolated execution of code and shell calls, which suggests that the core can run tool calls in a restricted environment. The documentation link points to a dedicated sandbox page, but the README itself does not detail the isolation mechanism, so treat that as a feature to verify before relying on it.

Getting It Running: Three Paths and Their Trade-offs

The README offers several deployment methods, each with a different audience. The quick start uses uv, a Python package manager. The commands are: uv tool install astrbot --python 3.12, then astrbot init for first-time setup, then astrbot run. Upgrading is uv tool upgrade astrbot --python 3.12. This path assumes you can install uv and are comfortable with the command line. The README warns that macOS users may see a 10 to 20 second delay on first run due to security checks. For production, Docker or Docker Compose is recommended, with a link to official documentation. There is also a desktop application, AstrBot App, which is intended for ChatUI usage and not for servers. Finally, a launcher tool exists for multi-instance desktop use. The variety is useful, but it also means you must choose carefully. The uv path is the fastest for a test, while Docker is the safest for a long-running service. The README does not give the exact Docker commands, so you will need to consult the docs for those.

What the Agent Sandbox Does and Does Not Promise

AstrBot includes a feature called Agent Sandbox, which the README describes as providing isolated, safe execution of code, shell calls, and session-level resource reuse. This is a significant claim because running arbitrary code from a chat bot is risky. The README links to a dedicated documentation page, but the README does not explain how the isolation is implemented. It could be a container, a subprocess with restricted permissions, or a virtual machine. Without that detail, you cannot assess the actual security boundary. The phrase session-level resource reuse suggests that a conversation can keep state across multiple tool calls, which is useful for complex tasks, but it also means that a long-lived session could accumulate resource usage. If you plan to expose AstrBot to untrusted users, you should read the sandbox documentation carefully and test it with adversarial inputs. The README also mentions web search and a built-in agent sandbox in the ChatUI, which implies that the sandbox is not only for server-side execution but also for interactive use.

The Plugin Ecosystem: Breadth with a Catch

The README claims over 1,000 plugins available for one-click installation. That number is impressive, but it also introduces a maintenance burden. Each plugin is an independent piece of code that may rely on specific versions of AstrBot's API. The framework is under active development, with releases v4.27.2, v4.27.3, and v4.27.4 appearing weekly in August 2026. That cadence means plugin authors must keep up, and a plugin that works on v4.27.2 might break on v4.27.4. The README does not specify a plugin compatibility policy, such as semantic versioning for the plugin API. Before you build a critical workflow on a third-party plugin, you should check its update history and whether it tracks AstrBot releases. The one-click installation feature reduces the barrier to entry, but it also makes it easy to install something that silently stops working after an upgrade. The plugin system is a strength, but it is also a point of fragility.

Platform Coverage: Broad, but with Gaps

AstrBot's official messaging platform list is long, covering most major Chinese and Western services. That is a major advantage over frameworks that only support one or two platforms. However, the list has notable absences. WhatsApp is marked as coming soon, so if your users are on WhatsApp, AstrBot cannot help you yet. The community adapters for Matrix and Rocket.Chat exist, but they are not maintained by the core team, so their reliability is uncertain. The README also mentions Satori, which is a protocol standard rather than a single platform, and that may allow connection to other services. The breadth is real, but you should verify that the adapter for your specific platform is up to date and actively maintained. The README does not provide per-platform feature parity information, so a feature like voice messages or file uploads may work on Telegram but not on DingTalk. Test each platform you need, rather than assuming uniform behavior.

Licensing and Maintenance Costs

AstrBot is licensed under AGPL-3.0. That is a strong copyleft license. If you modify AstrBot and deploy it as a network service, you must make your modifications available to users under the same license. For a personal bot or an internal tool, this may be acceptable. For a commercial product that embeds AstrBot, it could be a problem, because you might be forced to release your proprietary code. The README does not discuss licensing implications, so you should consult a lawyer if you have doubts. On maintenance, the project is clearly active, with weekly releases and a public roadmap. That is a positive sign, but it also means you must keep up with updates or risk falling behind on security fixes. The uv-based upgrade command is simple, but the underlying Python 3.12 requirement means you need a compatible environment. The Docker deployment path likely isolates you from system-level changes, but you still need to rebuild images. The documentation site and blog are available, but the README does not state whether there is a stable API for plugins across major versions. That is a key thing to check before investing in plugin development.

Editorial conclusion

Adopt AstrBot if you need a self-hosted chatbot that reaches many Chinese and Western messaging platforms from one codebase, and if you can live with the AGPL-3.0 license and a Python 3.12 toolchain. Do not adopt it if you require a permissive license for proprietary extensions, or if you need a platform it does not yet support, such as WhatsApp, which the README lists as coming soon. Before committing, verify that your target messaging platform has an official adapter, confirm that your preferred LLM service appears in the supported list, and test the agent sandbox on your operating system, since macOS first-run delays are documented. Also check the Docker deployment docs if you need production isolation, because the uv-based quick start is aimed at experimentation.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes