Skip to content

TypeScript · ESM · Plugin Runtime

Zhin.js

为生活与工作助手 Bot 而生的多通道 IM 框架。插件是乐高,热重载是日常,Console 就在浏览器里。

IM 核心 <10MBNode ≥20.19MIT
zsh
$ npm create zhin-app my-bot
$ cd my-bot && pnpm dev
✔ IM 黄金路径启动 —— 不需要任何模型 Key

为什么是 Zhin.js

01

插件化内核

一个 package.json#zhin 清单加一个 plugin.ts 就是一个插件。命令、组件、适配器按约定目录发现,改完文件即热重载。

02

多平台,一套消息流

QQ、OneBot、Discord、Telegram、Slack、KOOK、钉钉、飞书、企微、LINE…… 二十个适配器按需挂载,收发走同一条链路。

03

Console 免部署

Host 只暴露 API。打开浏览器就能管插件、看实例、翻日志、改配置——前端不必跟着 Bot 跑。

04

AI 按需加装

默认只有 IM 核心。要 AI 时再装 @zhin.js/agent——providers、MCP、子代理、调度任务,逐层解锁。

05

插件即应用

插件目录里放一个 zhin.config.ymlzhin runtime start 直接启动。不需要先写一个宿主工程。

06

单向分层

basic → kernel → ai → core → agent → zhin,依赖只往下走。每层都能单独拿来用——kernel 是纯插件引擎,ai 是纯 LLM 引擎。

一个插件,就这么多

plugin.ts — 入口只有一件事:声明自己。

ts
import { definePlugin } from 'zhin.js/plugin-runtime';

export default definePlugin({
  name: 'minimal-bot',
  metadata: { displayName: 'Minimal Bot' },
});

commands/hello.ts — 命令就是约定目录里的一个文件。

ts
import { defineCommand } from 'zhin.js/command';

export default defineCommand({
  description: 'Say hello',
  execute: () => 'Hello from minimal-bot.',
});

想动用数据库、定时任务、主动推送、Agent 工具? 去 definePlugin 全景 看看 setup 能做什么。