# koishijs/koishi

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/koishijs-koishi).**

5,456 stars · 292 forks · TypeScript · mit

## Links

- GitHub: https://github.com/koishijs/koishi
- Homepage: https://koishi.chat
- awesome-repositories: https://awesome-repositories.com/repository/koishijs-koishi.md

## Topics

`bot` `chatbot` `discord` `feishu` `framework` `koishi` `koishijs` `lark` `line` `mail` `matrix` `onebot` `sdk` `telegram`

## Description

Koishi is an open-source framework for building multi-platform chatbots, designed around an adapter-driven architecture that lets a single bot connect to multiple messaging services with consistent logic. It provides a plugin-based development platform with hot reload support, enabling developers to write and update bot extensions using TypeScript without restarting the application. A web-based management console offers a graphical interface for configuring plugins, commands, permissions, and monitoring runtime status.

What distinguishes Koishi is its combination of a dynamic plugin lifecycle manager, context-aware configuration scoping, and a hierarchical command system with configurable prefix triggers and parameter validation. It supports multi-platform account binding, linking multiple user accounts to a single profile for shared data across platforms. Developers can simulate bot conversations in a sandbox, browse and install community plugins from a searchable marketplace, and leverage hot reload to apply code changes instantly. The platform also includes tools for dependency repair, project scaffolding, and daemon process management, along with built-in permission management and response localization per user or channel.

## Tags

### Artificial Intelligence & ML

- [Chatbot Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/chatbot-frameworks.md) — Provides a framework for building chatbots that connect to multiple messaging platforms through adapter plugins and a unified console interface.
- [Bot Platforms](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms.md) — Ships a plugin-based development platform with TypeScript support and hot reload for writing chatbot extensions.
- [Graphical Bot Builders](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms/graphical-bot-builders.md) — The chatbot platform provides a graphical console to build a multi-platform bot, install plugins, connect to services, and monitor runtime status. ([source](https://koishi.chat/zh-CN/manual/introduction.html))
- [Multi-Platform Deployments](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms/multi-platform-deployments.md) — Provides an adapter-driven architecture for deploying a single bot across multiple messaging platforms with shared logic.
- [Platform Normalization Adapters](https://awesome-repositories.com/f/artificial-intelligence-ml/bot-platforms/platform-normalization-adapters.md) — The chatbot platform installs an adapter plugin and configures it to connect a bot to a messaging platform. ([source](https://koishi.chat/zh-CN/manual/starter/direct.html))
- [Custom Plugin Development](https://awesome-repositories.com/f/artificial-intelligence-ml/ml-visualization-libraries/custom-plugin-development.md) — Allows writing inline or file-based logic that responds to user input and can be loaded as a plugin. ([source](https://koishi.chat/zh-CN/manual/starter/direct.html))

### Part of an Awesome List

- [Command Subgroup Organizers](https://awesome-repositories.com/f/awesome-lists/devtools/shell-command-organizers/command-subgroup-organizers.md) — Groups commands under a parent command using hierarchical or dot-separated names for cleaner organization. ([source](https://koishi.chat/zh-CN/manual/usage/command.html))
- [Bot Management Interfaces](https://awesome-repositories.com/f/awesome-lists/devtools/web-management-interfaces/bot-management-interfaces.md) — Provides a web-based management interface for configuring plugins, commands, permissions, and monitoring bot instances.

### Development Tools & Productivity

- [Command Help Displays](https://awesome-repositories.com/f/development-tools-productivity/command-line-display-tools/empty-input-help-displays/command-help-displays.md) — Provides a command that displays detailed help for any command, listing its arguments, options, and subcommands. ([source](https://koishi.chat/zh-CN/manual/usage/command.html))
- [Chat Command Triggers](https://awesome-repositories.com/f/development-tools-productivity/custom-command-execution/configuration-file-command-execution/command-trigger-prefixes/chat-command-triggers.md) — Requires messages in group chats to start with a configurable prefix, nickname, or @mention to invoke a command. ([source](https://koishi.chat/zh-CN/manual/usage/command.html))
- [Command Tree Parsing](https://awesome-repositories.com/f/development-tools-productivity/custom-command-execution/configuration-file-command-execution/command-trigger-prefixes/chat-command-triggers/command-tree-parsing.md) — Parses user messages using configurable prefixes and extracts command paths, arguments, and options.
- [Hot Code Reloading](https://awesome-repositories.com/f/development-tools-productivity/hot-code-reloading.md) — Rebuilds and reloads plugin code automatically when source files change to reduce iteration time during development.
- [Management Consoles](https://awesome-repositories.com/f/development-tools-productivity/management-consoles.md) — Provides a browser-accessible graphical interface for administrators to configure, monitor, and control the application.
- [TypeScript Plugin Authoring](https://awesome-repositories.com/f/development-tools-productivity/plugin-development-toolkits/typescript-plugin-authoring.md) — Supports developing plugins with TypeScript type checking, unit test integration, and hot reload that applies changes instantly.
- [Plugin Lifecycle Management](https://awesome-repositories.com/f/development-tools-productivity/plugin-lifecycle-management/plugin-lifecycle-management.md) — Dynamically loads and unloads plugin modules at runtime without restarting the application, supporting multiple instances.
- [Dependency Version Managers](https://awesome-repositories.com/f/development-tools-productivity/dependency-removers/dependency-version-managers.md) — Updates individual or all dependencies to a chosen version or removes them through a management interface. ([source](https://koishi.chat/zh-CN/manual/usage/market.html))
- [Plugin Configuration Forms](https://awesome-repositories.com/f/development-tools-productivity/extensible-configuration-interfaces/plugin-interface-configurations/plugin-configuration-forms.md) — Provides a graphical form to set plugin options, highlighting required and unsaved changes. ([source](https://koishi.chat/zh-CN/manual/usage/market.html))
- [Plugin Activation Switches](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/shell-plugin-systems/plugin-activation-managers/deferred-plugin-activation/plugin-activation-switches.md) — Starts or stops a plugin without deleting its code or configuration. ([source](https://koishi.chat/zh-CN/manual/usage/market.html))

### DevOps & Infrastructure

- [Contextual Configuration Filters](https://awesome-repositories.com/f/devops-infrastructure/environment-grouping/configuration-set-grouping/contextual-configuration-filters.md) — Allows configuration values to depend on contextual filters so the same setting can differ per user, group, or platform. ([source](https://koishi.chat/zh-CN/manual/usage/customize.html))
- [Conditional Plugin Filters](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility/typed-plugin-interfaces/plugin-mode-filters/conditional-plugin-filters.md) — Enables or disables each plugin conditionally based on platform, user, group, channel, or bot. ([source](https://koishi.chat/zh-CN/manual/usage/customize.html))
- [Application Containerizers](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/application-containerizers.md) — Bundles the application in a Docker container, exposes the control panel on port 5140, and persists data through volume mounts and environment variables. ([source](https://koishi.chat/zh-CN/manual/starter/docker.html))
- [Independent Process Deployments](https://awesome-repositories.com/f/devops-infrastructure/multi-instance-deployments/independent-process-deployments.md) — Spins up separate application processes with independent plugin configurations, each listening on a distinct port. ([source](https://koishi.chat/zh-CN/manual/recipe/multiple.html))
- [Webhook Endpoint Exposers](https://awesome-repositories.com/f/devops-infrastructure/public-network-deployments/webhook-endpoint-exposers.md) — Configures network settings so its console and webhook endpoints are accessible from the internet. ([source](https://koishi.chat/zh-CN/manual/recipe/server.html))
- [Reverse Proxy Configurations](https://awesome-repositories.com/f/devops-infrastructure/reverse-proxy-configurations.md) — Sets up a reverse proxy like nginx or Caddy to provide SSL encryption and domain-based access for public-facing services. ([source](https://koishi.chat/zh-CN/manual/recipe/server.html))

### Networking & Communication

- [Command Behavior Managers](https://awesome-repositories.com/f/networking-communication/chatbot-command-interfaces/command-behavior-managers.md) — Ships a console interface that lists all commands and lets users review and modify their settings and permissions. ([source](https://koishi.chat/zh-CN/manual/usage/command.html))
- [Messaging Adapters](https://awesome-repositories.com/f/networking-communication/messaging-adapters.md) — Uses an adapter architecture to connect a single bot to multiple messaging services with consistent logic.
- [Bot Response Localization](https://awesome-repositories.com/f/networking-communication/messaging-bot-frameworks/bot-response-localization.md) — Sets the bot's output language per user, channel, or globally and allows customizing any text string in the interface. ([source](https://koishi.chat/zh-CN/manual/usage/customize.html))
- [Messaging Platform Integrations](https://awesome-repositories.com/f/networking-communication/messaging-platform-integrations.md) — The chatbot platform integrates a bot with various real messaging platforms using adapter plugins, supporting multiple accounts and load balancing. ([source](https://koishi.chat/zh-CN/manual/usage/adapter.html))
- [Multi-Bot Channel Assignments](https://awesome-repositories.com/f/networking-communication/slack-integrations/channel-reply-integrations/multi-bot-channel-assignments.md) — The chatbot platform designates which bot account answers in a given channel to prevent duplicate or conflicting replies. ([source](https://koishi.chat/zh-CN/manual/usage/customize.html))

### Security & Cryptography

- [Command Access Rules](https://awesome-repositories.com/f/security-cryptography/permission-systems/command-access-rules.md) — Provides a hierarchical command system with configurable prefix triggers, parameter validation, and permission levels for fine-grained access control.
- [Hierarchical Permission Levels](https://awesome-repositories.com/f/security-cryptography/user-permission-definitions/hierarchical-permission-levels.md) — The chatbot platform defines a hierarchy of permission levels and provides commands to elevate or restrict user authority within the bot. ([source](https://koishi.chat/zh-CN/manual/usage/customize.html))
- [Password Access Restrictions](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions/password-access-restrictions.md) — Requires authentication via a login plugin to protect the console from unauthorized access when exposed publicly. ([source](https://koishi.chat/zh-CN/manual/recipe/server.html))
- [Account Linking](https://awesome-repositories.com/f/security-cryptography/identity-access-management/identity-management/account-linking.md) — Links multiple platform user accounts to a single profile, enabling shared data and interactions across all connected platforms.

### Software Engineering & Architecture

- [Chat Platform Adapters](https://awesome-repositories.com/f/software-engineering-architecture/adapter-patterns/chat-platform-adapters.md) — Connects to multiple chat platforms by abstracting each platform's API behind a common adapter interface.
- [Plugin Instance Controllers](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/plugin-configurations/plugin-instance-controllers.md) — Determines whether a plugin can run multiple copies simultaneously or only one, preventing configuration conflicts. ([source](https://koishi.chat/zh-CN/manual/recipe/multiple.html))
- [Plugin Installation and Management](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/plugin-installation-utilities/plugin-installation-and-management.md) — Discovers and loads plugins from the npm registry to extend the chatbot's functionality. ([source](https://koishi.chat/zh-CN/manual/starter/direct.html))
- [Plugin Marketplaces](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins/plugin-marketplaces.md) — Provides a searchable marketplace for discovering, filtering, and installing community plugins with sandbox preview.
- [Marketplace Plugin Installers](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins/plugin-marketplaces/marketplace-plugin-installers.md) — Downloads and installs plugins from a searchable marketplace within the graphical console. ([source](https://koishi.chat/zh-CN/manual/usage/market.html))
- [Plugin Group Managers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/layered-plugin-organizations/plugin-group-managers.md) — Creates nested groups to collectively manage multiple plugins, reorderable by drag and drop. ([source](https://koishi.chat/zh-CN/manual/usage/market.html))

### System Administration & Monitoring

- [Administrative Consoles](https://awesome-repositories.com/f/system-administration-monitoring/administrative-operations/configuration-control-utilities/system-administration-tools/administration-tools/administrative-consoles.md) — Ships a web-based management console for configuring plugins, commands, permissions, and monitoring bot instances.

### Web Development

- [Command Parameter Validators](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/query-parameter-validations/parameter-coercion-and-validation/command-parameter-validators.md) — Parses required and optional arguments, supports variadic parameters, and handles options with or without values. ([source](https://koishi.chat/zh-CN/manual/usage/command.html))
