Koishi is a cross-platform, extensible, high-performance chatbot framework written in TypeScript, aimed at anyone who wants to build and run bots across QQ, Telegram, Discord, Feishu, Matrix, LINE, mail and OneBot from one codebase.
What it is
Koishi is an open-source chatbot framework published as the koishi package on npm and developed under the koishijs organisation. It is written entirely in TypeScript and distributed under the MIT licence, with documentation and a web console hosted at koishi.chat. The project takes its name and icon from Komeiji Koishi, a character from the Touhou Project, a choice the authors describe as reflecting both the chatbot subject matter and the affection the developers put into the work. It sits in the JavaScript and Node.js ecosystem and builds on more than four years of iteration.
The concrete problem it solves is fragmentation. Each messaging platform normally requires its own bot implementation, its own connection handling and its own account model, so a team that wants a presence on QQ, Telegram, Discord and Feishu ends up maintaining several unrelated codebases. Koishi replaces that with one framework and a shared plugin surface, so platform support becomes a plugin rather than a separate project. It also replaces the assumption that bot building requires programming: the console and online plugin market are explicitly designed so that a user with no coding background can assemble and run a bot.
Key capabilities
- A web console that serves as the primary control surface, used to set up a bot, install plugins and monitor running state without writing code.
- An online plugin market reachable from the console, which allows plugins to be downloaded and installed without any programming background.
- Adapters for mainstream chat platforms including QQ, Telegram, Discord and Feishu, with additional topics covering Matrix, LINE, mail, Lark and OneBot.
- Multi-account support with cross-platform data interoperability, so several bot accounts can run within one deployment and share state.
- An ecosystem of more than 3000 official and community plugins spanning platform support, database, resource storage, web console, state management and business features.
- Full TypeScript development with type support rich enough that the README claims code completion can replace reading documentation during plugin authoring.
- Unit tests across all core functionality, presented both as a reliability guarantee and as an example for testing plugins and locating problems.
- Module hot reload while developing plugins, so saving a file reloads the module instead of requiring a bot restart.
Who uses it and how
- Non-programmers who need a working bot quickly, using the console and plugin market to assemble functionality in minutes rather than writing adapters.
- Plugin developers building reusable components, who rely on TypeScript type support, the core unit tests as a testing model, and hot reload for a frontend-like edit cycle.
- Teams running large interactive applications across several platforms at once, where cross-platform data interoperability and multi-account deployment matter.
- Operators running lightweight helper bots, which the README names explicitly as a supported scale alongside large interactive applications.
- Administrators who want remote oversight, using the control panel to watch runtime state, change bot behaviour and even chat through the panel.
Getting started
The README points to the starter documentation at https://koishi.chat/manual/starter/, and the framework is published on npm as the koishi package.
How it compares
No paid products or similar tools are named in the supplied facts, so this entry stands alone in this registry rather than being contrasted against alternatives. Readers comparing options will need to evaluate Koishi on its own terms: MIT licence, four years of iteration and a 3000-plus plugin ecosystem.
When to use it — and when not to
A self-hoster takes on the runtime and the surrounding pieces the plugin ecosystem provides, which the README lists as platform support, database, resource storage, web console and state management, so choosing and operating those is part of the work. Teams that will not run a Node.js service, or that need a stable release cadence with minimal churn, should look carefully before adopting, given 107 open issues and a README excerpt that is written in Chinese and carries a copyright range ending in 2023. The framework rewards investment in its plugin model, but a small team wanting a single fixed platform integration may find the breadth unnecessary.