/koishi

现代、高效的跨平台聊天机器人框架

Primary LanguageTypeScriptMIT LicenseMIT

logo

Codecov npm GitHub

Koishi 是一个现代化跨平台机器人框架,目前可支持 QQTelegramDiscord 等多个平台。

这个项目的名字和图标来源于东方 Project 中的角色古明地恋 (Komeiji Koishi)。

快速上手

打开命令行,输入下面的指令,即可在当前目录下新建并启用一个带控制台的 Koishi 项目:

npm init koishi
# 或者
yarn create koishi

项目启动成功后,会自动为你打开一个浏览器界面,你可以使用界面中的控制台进行一系列操作,包括修改配置、安装插件和添加机器人。

特性

开箱即用的控制台

高度便利的控制台让你无需基础让你在几分钟之内搭建自己的聊天机器人。

  • 提供在线插件市场,即使没有 js 编程基础,也能轻松在控制台中下载安装插件
  • 支持 QQ,Telegram,Discord 等主流聊天平台,支持多账户和跨平台数据互通
  • 随时随机通过控制面板监控运行状态,控制机器人的行为,甚至上号聊天

参见:创建控制台项目

功能强大的 API

经过了几个版本的迭代,Koishi 已经发展出了丰富的 API,功能覆盖机器人领域的方方面面。从上层负责交互的指令、会话、中间件,再到中层负责控制的应用、上下文、插件,最后到底层的机器人和适配器,每一个部分都经过了精心的编写,可以让你轻松实现任何需求。如果担心在复杂的功能中迷失方向,我们也准备了细致的文档来提供帮助。

参见:API 文档

丰富的生态系统

官方提供了大量插件和解决方案,覆盖了绝大多数常见需求的同时,也为开发提供了绝佳的范例。

  • @koishijs/plugin-console:网页控制台
  • @koishijs/plugin-schedule:计划任务
  • @koishijs/plugin-teach:问答教学

除了这些官方插件以外,社区贡献者也编写了各种各样的第三方插件:

  • koishi-plugin-genshin:原神资料查询
  • koishi-plugin-ink:展示视觉小说
  • koishi-plugin-shell:执行终端命令

这些插件共同组成了 Koishi 如今的生态。

参见:官方插件

专为开发者打造

Koishi 更为开发者提供了众多专业功能,使开发者得以在各种复杂需求中构建规模化的解决方案。

类型支持

Koishi 完全基于 TypeScript 开发,拥有顶级的类型支持,丰富的代码提示让你在编写代码的时候甚至无需查看文档。

单元测试

所有核心功能均已经通过单元测试,既确保了可靠性,也为开发者提供了一套测试插件和定位问题的最佳实践。

模块热重载

开发 Koishi 插件时,只需轻点保存即可热重载,无需频繁重启机器人,如同前端开发一样丝滑顺畅。

官方插件

适配器支持

静态资源存储

数据库支持

常用功能

辅助功能

网页控制台

其他官方插件

  • eval: 对话机器人执行脚本
  • github: GitHub 相关功能
  • mock: 模拟消息、会话、网络请求
  • puppeteer: 网页截图和图片渲染
  • teach: 教学问答系统

应用案例

欢迎向下面的列表中添加自己的插件或机器人。

社区插件

名称请链接到源码仓库,忽略前缀,按首字母排序。

名称 简介
adapter-minecraft Minecraft 适配器
assets-smms 使用 sm.ms 存储静态资源文件
chess 棋类游戏
crazy-thursday 输出 KFC 疯狂星期四段子
dice 掷骰
eval-react-jsx 在 Eval 环境支持 React JSX
gocqhttp gocqhttp 启动器
image-search 图源搜索
pics 随机图片
rss RSS 订阅
srvpro-roomlist YGOPro 服务器房间列表查询
tabulate YGOCore 战队联盟友谊赛排表姬
tex TeX 渲染
thesaurus 基于 AnimeThesaurus 的机器人聊天插件
tools 小功能合集
ygocard YGOPro 卡查
ygotournament YGOPro 比赛主持辅助

社区项目

名称请链接到源码仓库,新项目请添加到列表结尾。

名称 简介
2bot 一个很 2 的 FFXIV bot
koishi-bootstrap Koishi 的 Docker 启动器
koishi-nestjs Nest.js 中使用 Koishi 开发规模化机器人应用
koishi-thirdeye 装饰器以及 DI 风格的 Koishi 插件开发框架
onebot-lb OneBot 负载均衡器
Afanyiyu/qa-bot 基于 plugin-teach 魔改的问答机器人,适用于客服 / 知识库等场景

使用协议

Koishi 完全使用 MIT 协议开源,维护良好的开源生态从我做起 (*>ω<)φ

Copyright © 2019-2022, Shigma

贡献指南

请看这里

联系方式

Discord

本群只交流程序开发,不欢迎伸手党,禁止谈论商业行为。