插件
一个包里同时带技能、命令、子代理、MCP 服务器和钩子;安装账本归引擎所有。
插件是打包分发的能力集合,一个插件里可以同时带技能、斜杠命令、子代理、MCP 服务器和钩子。
- 市场档:从插件市场浏览并安装。每行「装了会多出什么」是引擎用真正加载时那套解析器算出来的,所以不会出现「市场页写的和装完实际有的不一样」。
- 已安装档:启用/禁用开关。注意插件启停是应用级的,没有项目作用域——启用后所有会话可见。
- 已装列表里的「已加载 / 加载失败」是某一条会话的运行时状态,不是全局属性:同一个插件可以在新会话里好的、在旧会话里还是旧状态。
它的安装与生效机制:
- 账本归引擎所有:
~/.klaus/plugins/installed_plugins.json里每条记录带名字、来源、安装路径、安装时间和启用位。已登记的市场目录在~/.klaus/plugins/known_marketplaces.json。 - 安装分两段:客户端先把包取到一个暂存目录(本地复制,或 git 拉取——支持仓库地址、
owner/repo简写、以及只拉仓库里某一个子目录),再交给引擎校验、复制进它自己的存储区、写账本。无论成败暂存目录都会被清掉,所以安装失败不会留下半个插件。 - 启停改的是账本里的启用位;插件带来的东西是在会话启动时绑定的,所以改完要开新会话(少数情况下引擎会回报需要重启)。
- 卸载同时删账本行和存储区里的那份副本。内置的那几个(比如浏览器)标为内置来源,可以停用但卸不掉。
- 插件里的技能/命令/子代理/MCP/钩子由引擎自己从账本加载并标上来源,客户端不再重复报一遍(否则插件里的钩子会每个事件触发两次)。