🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

微指令工坊 DGCK81LNN/koishi-plugin-microcommands

Koishi
DGCK81LNN12 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

使用 JavaScript 为 Koishi 编写简单的指令 Define simple Koishi…

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/DGCK81LNN/koishi-plugin-microcommands.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

用 JavaScript 为 Koishi 编写简单指令

README

由 DeepSeek 最新模型翻译生成
koishi-plugin-microcommands Microcommands 让你用 JavaScript 代码,方便地为 Koishi 机器人创建指令。 用法介绍 管理员可以用 microcommand 指令来定义指令。 * microcommand define <name> 定义微指令。name 是指令名,code 是指令的 JavaScript 代码。指令定义的 API 见下文。默认需要 4 级权限。 * microcommand remove <name> 删除指定的微指令。默认需要 4 级权限。 * microcommand show <name> 显示指定微指令的源代码。默认不要求权限。 * microcommand list 显示当前注册的微指令列表。默认不要求权限。 每个注册的微指令默认都是 microcommand 的[层级式子指令][subcmd](除非它已经是某个指令的[派生式子指令][subcmd])。建议用官方插件 commands 提供的 command <name> -p <parentName> 来更改微指令所属的父级指令(或 command <name> -P 将其改为顶级指令),也可以在控制台的「指令管理」中操作。
展开完整文档(README 剩余 1 节)
koishi-plugin-microcommands

Microcommands 让你用 JavaScript 代码,方便地为 Koishi 机器人创建指令。

用法介绍

管理员可以用 microcommand 指令来定义指令。

* microcommand define <name>

定义微指令。name 是指令名,code 是指令的 JavaScript 代码。指令定义的 API 见下文。默认需要 4 级权限。

* microcommand remove <name>

删除指定的微指令。默认需要 4 级权限。

* microcommand show <name>

显示指定微指令的源代码。默认不要求权限。

* microcommand list

显示当前注册的微指令列表。默认不要求权限。

每个注册的微指令默认都是 microcommand 的[层级式子指令][subcmd](除非它已经是某个指令的[派生式子指令][subcmd])。建议用官方插件 commands 提供的 command <name> -p <parentName> 来更改微指令所属的父级指令(或 command <name> -P 将其改为顶级指令),也可以在控制台的「指令管理」中操作。

[subcmd]: https://koishi.chat/zh-CN/manual/usage/command.html#子指令

微指令 API

微指令定义的代码里有以下局部变量(虽然是变量,但除了可以把 ctx 赋值为加了过滤器的 ctx〔如 ctx = ctx.platform("onebot")〕之外,不要给这些变量赋值):

* name:当前微指令的名称。
* ctx:当前插件上下文。整段定义代码运行完之后,它会被替换成内层插件上下文,用来注入服务依赖。
* require(moduleSpec):导入 Node.js 模块。
* inject(services):注入服务依赖,相当于一般插件的 export const inject = services。
* signature(def, desc?, config?):设置指令的基本信息。参数与 ctx.command() 相同,只是第一个参数开头不写指令名称(指令没有参数就传空字符串)。
* option(name, desc?, config?):定义指令选项。同 cmd.option()。
* alias(name, config?):定义指令别名。同 cmd.alias()。
* usage(text):定义指令使用说明。同 cmd.usage()。
* example(example):定义指令使用示例。同 cmd.example()。
* userFields(fields):定义指令需要用到的用户数据字段。同 cmd.userFields()。
* channelFields(fields):定义指令需要用到的频道数据字段。同 cmd.channelFields()。
* before(checker, append?):定义指令的检测函数。同 cmd.before()。
* action(action, prepend?):定义指令的执行函数。同 cmd.action()。
* locale(locale, dict):定义指令的本地化字符串。同 ctx.i18n.define(locale, { commands: { [name]: dict } })。

另外,koishi 包导出的所有函数和对象,在微指令定义环境里都是局部变量,可以直接使用。

示例

下面是一个简单的微指令示例:

~~~javascript
//microcommand define greet
signature("[name:text]", "打招呼", { checkUnknown: true })
option("formal", "-f", "使用正式称呼")
action(({ options: { formal } }, name) =>
h.text(${formal ? "您好" : "你好"},${name || "世界"}!)
)

下面是包含国际化支持的微指令示例: ~~~javascript //microcommand define greet
signature("[name:text]", { checkUnknown: true })
option("formal", "-f")
action(({ session, options: { formal } }, name) =>
session.i18n(formal ? ".formal-greeting" : ".greeting", [name || session.i18n(".default-name")])
)
locale("zh-CN", {
description: "打招呼",
options: {
formal: "使用正式称呼", },
messages: {
greeting: "你好,{0}!", "formal-greeting": "您好,{0}!", "default-name": "世界", }, })
locale("en-US", {
description: "Send greeting",
options: {
formal: "Use a formal greeting",
},
messages: {
greeting: "Hello, {0}!",
"formal-greeting": "Good day, {0}!",
"default-name": "world",
},
})

编辑器支持

koishi-plugin-microcommands/types 提供微指令定义环境下全局对象的类型声明。如果你用外部编辑器编写微指令代码,可以在文件里加三斜线指令,启用编辑器 Intellisense 支持:

~~~js
/// <reference types="koishi-plugin-microcommands/types" />

或者,在微指令代码所在目录中创建 jsconfig.json:

~~~json
{
"compilerOptions": {
"types": [
"koishi-plugin-microcommands/types"
]
}
}

控制台编辑器

安装并启用 Koishi 控制台和 koishi-plugin-codemirror 后,插件会在控制台活动栏注册「微指令」页面,路径为 /microcommands,需要 4 级权限。你可以在页面中搜索和编辑已保存的微指令,也可以新建、保存及删除微指令定义。新建的定义只有保存后才会写入数据库;刷新会重新读取列表和源代码。切换、刷新或删除时,如果存在未保存的更改,页面会先请求确认。

控制台和 CodeMirror 插件是可选依赖;未安装时,仍可通过上面的 microcommand 指令和服务 API 管理微指令。

服务 API

其他 Koishi 插件可以通过 ctx.microcommands 读取和管理微指令。使用该服务的插件应声明 microcommands 依赖。该服务提供以下异步方法:

* define(name, code):注册或替换微指令,并将源代码保存到数据库。
* get(name):读取已保存的源代码;微指令不存在时返回 undefined。
* list():返回当前已加载的微指令名称列表。
* remove(name):卸载微指令并删除保存的源代码;返回是否删除了数据库记录。
预览分享卡片长什么样 ↓DGCK81LNN/koishi-plugin-microcommands
分享 · DeepSeek Harness Hub
DGCK81LNN/koishi-plugin-microcommands

使用 JavaScript 为 Koishi 编写简单的指令 Define simple Koishi…

回到顶部