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 引擎。

一个文件,就能打招呼

bot.ts — 整个机器人可以就是这一份文件。

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

export default definePlugin({
  name: 'my-bot',
  setup({ addCommand }) {
    addCommand('hello', defineCommand({
      description: '打招呼',
      execute: () => 'Hello from Zhin!',
    }));
  },
});

三步跑起来(无需模型 Key):

bash
npm create zhin-app my-bot -y
cd my-bot && pnpm dev

打开 console.zhin.dev → Sandbox → /hello

想拆成约定目录?commands/hello.ts 默认导出同一个 defineCommand(...) 即可——见 minimal-bot

完整单文件示例:single-file-bot。 数据库、定时、主动推送、Agent?去 definePlugin 全景setup