finds.dev← search

// the find

nonebot/nonebot2

★ 7,582 · Python · MIT · updated Jun 2026

跨平台 Python 异步聊天机器人框架 / Asynchronous multi-platform chatbot framework written in Python

NoneBot2 is a Python async chatbot framework that abstracts over a dozen chat platforms — QQ, Telegram, Discord, Feishu, GitHub, and more — behind a unified plugin/matcher API. It targets developers who want to write one bot codebase and deploy it across multiple platforms without rewriting protocol logic for each. The primary audience is Chinese developers building QQ bots, though the platform coverage is genuinely broad.

100% type annotation coverage with Pyright checks in CI is real — you actually get autocomplete and type errors in editors, which most bot frameworks skip. The dependency injection system for handler parameters (event, bot, state, custom deps) mirrors FastAPI's pattern and makes handlers easy to test in isolation. The adapter model is clean enough that community adapters for obscure platforms (Matrix, VoceChat, Bilibili live) exist and work without forking core. The nb-cli scaffolding and plugin store lower the barrier for non-framework contributors to ship installable plugins.

The ecosystem is heavily QQ/Chinese-platform-centric; if you're building for Telegram or Discord specifically, you'll find the adapters lag behind native libraries like python-telegram-bot or discord.py in feature completeness and documentation. The multi-driver setup (you compose server + client drivers) is flexible but genuinely confusing to configure — the docs assume you already understand why you'd need both FastAPI and httpx at once. State management across conversations requires external storage you provision yourself; there's no built-in session persistence, so anything stateful hits you fast. Plugin load order and namespace isolation can bite you in larger projects — the plugin manager relies on Python import mechanics in ways that cause subtle conflicts when two plugins touch the same module path.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →