Model or dataset
langbot-app/LangBot avatar
langbot-app/LangBot

LangBot: A production IM bot platform that trades simplicity for reach

Production-grade platform for building agentic IM bots, with Agent and knowledge-base orchestration and a plugin system. Bots for Discord, Slack, LINE, Telegram, WeChat (Work WeChat, WeChat bots, official accounts), Feishu, DingTalk, QQ, and Matrix. Integrates with ChatGPT (GPT), DeepSeek, Dify, n8n, Langflow, Coze, Claude, Gemini, GLM, Ollama, SiliconFlow, Moonshot, OpenClaw/hermes agent, and DeerFlow.

18,969 stars1,708 forksPythonApache-2.0

At a glance

What is it?
LangBot is an Apache-2.0 Python platform for connecting LLMs to a dozen chat services. It offers a web panel, multi-pipeline design, and plugin/MCP support, but its breadth means you must verify each platform integration before trusting it.
Who is it for?
Adopt LangBot if you need one codebase to reach many chat platforms with LLM backends like OpenAI, DeepSeek, or Dify, and you prefer a web UI over YAML. Skip it if you only need a single platform or if your compliance team requires per-platform guarantees, because the README lists integrations as official but provides no test evidence.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
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 November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • langbot-app/LangBot18,969 ★ · +1,258
Star history
Repository2026-09-102026-11-13
langbot-app/LangBot17.7k19k

1,258 Stars in the last 64 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What LangBot actually solves

LangBot addresses a coordination problem: teams that want LLM-powered bots on multiple chat platforms usually end up writing separate adapters for each platform's API, then wiring each to an LLM provider. LangBot claims to collapse that into one platform. The README lists Discord, Telegram, Slack, LINE, QQ, WeCom, WeChat, Lark, DingTalk, KOOK, Satori, Email, and Matrix as supported. It also names a long set of LLM and orchestration backends: OpenAI, Anthropic, DeepSeek, Gemini, xAI, plus Dify, Coze, n8n, Langflow, and Deerflow. The intended user is an engineer or team that wants to ship a bot to several channels without rebuilding the connection layer each time. The phrase 'production-grade' appears in the tagline, and the feature list includes access control, rate limiting, sensitive word filtering, monitoring, and exception handling. Those are exactly the pieces that a hobby bot framework usually leaves out. So the value proposition is not just 'bot framework', it is 'bot framework with operational controls built in'.

The multi-pipeline architecture and where the logic lives

The README describes a 'multi-pipeline architecture' where different bots can serve different scenarios. That suggests you can run one instance for a customer support bot and another for an internal assistant, each with its own model configuration and platform bindings. The web management panel is the control surface: you configure, manage, and monitor bots through a browser, with no YAML editing required. The README's feature list also promises comprehensive monitoring alongside the multi-pipeline design. The event-driven plugin architecture and MCP protocol support point to a design where you extend behavior at the event level rather than by forking the core. That is a meaningful architectural choice: it keeps the core stable while letting plugins handle platform-specific quirks or custom logic. What the README does not show is how pipelines are isolated. If one pipeline crashes or hits a rate limit, does it affect others? You should probe that before relying on it for production.

Getting it running: from one line to Docker Compose

The fastest path is a one-line command: `uvx langbot`, which requires the `uv` package manager. That launches a local server on port 5300. For a more persistent setup, the README gives a Docker Compose route: clone the repo, `cd LangBot/docker`, then run `docker compose --profile all up -d`. There are also one-click deploy buttons for Zeabur and Railway, plus documented options for Docker, manual install, BTPanel, and Kubernetes. The Docker Compose profile flag suggests that some services are optional; the `all` profile brings up everything. What is missing from the README is the content of the Docker configuration, so you cannot tell which services are included or whether it runs a database or just file storage. For a quick test, `uvx langbot` is the shortest path. For a production deployment, you would likely want the Kubernetes or manual route, because the one-liner is not obviously meant for long-running service use. The README does not state how to configure platform credentials, but the web panel is implied to handle that, since it says no YAML editing is required.

The platform matrix is wide, but the fine print is thin

LangBot's feature list names ten platforms, the platform table's notes column marks seven of them (Discord, Telegram, Slack, LINE, Lark, DingTalk and KOOK) as 'Official', and the table then adds Satori, Email, and Matrix. The Matrix entry is interesting because it says it supports 'multiple bridged platforms such as Signal, WhatsApp, Messenger, iMessage, Mattermost, Google Chat, IRC, XMPP, Zulip, and more'. That is a big claim. The distinction between 'Official' and merely 'supported' is not defined in the README. Does Official mean the LangBot team maintains the adapter, while supported means community-contributed? For a production platform, that distinction matters: if a platform integration breaks, who fixes it? The README also notes that WeChat includes 'Personal & Official Account', which is a legally and technically tricky area. Whether that use fits WeChat's own terms is something you must evaluate yourself. The README provides no per-platform feature matrix, so you cannot tell whether, say, Telegram supports streaming output on every platform or just some. The feature list says 'streaming output' is a capability, but not which platforms support it.

What you cannot learn from the README: failure modes and limits

The README promises access control, rate limiting, sensitive word filtering, and exception handling, but it gives no details on how these work. Rate limiting is a generic term: is it per-user, per-channel, per-pipeline, or global? Sensitive word filtering: is it a built-in list or configurable per pipeline? Exception handling: what happens when an LLM call times out or returns a malformed tool call? The documentation does not say. For a platform that calls itself production-grade, these are exactly the details you need before trusting it with real traffic. Multi-turn dialogues require session state. The dependency list includes aiosqlite, SQLAlchemy and Alembic, and the Docker image pins a SQLite release, so a database is part of the stack, but the README's feature list does not say how conversation sessions are stored. The README's feature list also gives no security hardening notes, although the Dockerfile builds Google nsjail as a self-contained sandbox backend. Running a bot that connects to WeChat and Discord means handling user messages that could contain malicious content. The README says 'production-ready' but does not mention input sanitization or SSRF protections for tool calls. You should treat these as open questions.

Alternatives: the trade-off between focus and breadth

The most direct alternative is to build on a single-platform framework, such as python-telegram-bot for Telegram or discord.py for Discord. Those frameworks are deeply tested for one platform, with rich documentation and a large community. They do not give you a web panel or multi-platform routing, but they give you control and simplicity. The difference in approach is fundamental: LangBot is an orchestrator that abstracts away platform differences, while a dedicated framework exposes the platform's native API directly. If you only need one platform, LangBot is overkill. Another alternative is a general automation platform like n8n, which LangBot explicitly integrates with. n8n is a workflow tool, not a bot platform, but you can build a bot by connecting a chat trigger to an LLM node. The difference is that n8n gives you visual workflow editing and hundreds of integrations beyond chat, but it does not provide the bot-specific features like session management or platform-specific message formatting out of the box. LangBot positions itself as the bot-native layer, with n8n as a backend you can plug in. So the choice is whether you want a bot platform with orchestration hooks or a general workflow tool that you bend into a bot.

Maintenance, licensing, and the activity signal

LangBot is licensed under Apache-2.0, which is permissive for commercial use and modification, with no copyleft obligations. That is a clear advantage for enterprises that want to fork or embed it. The repository shows frequent releases: v4.11.2, v4.11.3, and v4.11.4 were published within about a week in late October 2026. That level of release cadence suggests active maintenance, but it also means you should expect frequent changes. Upgrading from one minor version to another may introduce breaking changes, especially in a platform with this many integrations. Read the release notes for each version before upgrading. The project also runs a cloud service, a plugin market, and a roadmap page, which indicates a commercial ecosystem around the open-source core. That can be good for long-term viability, but it also means the open-source project may prioritize features that support the cloud offering. For an engineer evaluating adoption, the maintenance cost is not just the code you run; it is the time spent tracking releases and testing each platform integration after every update.

Editorial conclusion

Adopt LangBot if you need one codebase to reach many chat platforms with LLM backends like OpenAI, DeepSeek, or Dify, and you prefer a web UI over YAML. Skip it if you only need a single platform or if your compliance team requires per-platform guarantees, because the README lists integrations as official but provides no test evidence. Before adopting, verify that your specific platform (especially WeChat or QQ) and your chosen LLM provider are covered in the current release notes, and test the rate limiting and sensitive word filters in a staging environment. The project is active with frequent releases, but that activity alone is not a quality signal.

Frequently asked questions

What is LangBot?

It is an open-source, Apache-2.0 platform for building AI-powered instant messaging bots, connecting large language models to chat platforms so agents can converse, execute tasks and plug into existing workflows. It is written in Python and needs Python 3.11 or newer.

Which chat platforms can a LangBot bot connect to?

The platform table covers Discord, Telegram, Slack, LINE, QQ, WeCom, WeChat, Lark, DingTalk, KOOK, Satori, Email and Matrix, and the Matrix row claims bridging to platforms such as Signal, WhatsApp, Messenger, iMessage, Mattermost, Google Chat, IRC, XMPP and Zulip.

Does LangBot need a Docker socket to sandbox code execution?

No. The Dockerfile builds Google nsjail 3.6 from source and copies the binary in, which the comments describe as a self-contained sandbox backend that needs no host Docker socket.

How do I run LangBot tests without LLM credentials?

Use the quick and fast integration targets, which are described as needing no real credentials and no external services. The full suite is a separate target that runs the coverage-checked run_tests.sh script.

Official sources

  1. langbot-app/LangBot on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/langbot-app-langbot.svg)](https://hysenlabs.com/projects/langbot-app-langbot)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/langbot-app-langbot.svg)](https://hysenlabs.com/projects/langbot-app-langbot)

Was this useful?