插件生态

你自己的工具装进启动器

插件不是附加功能,是 ToolZen 的主体。官方内置四个插件,覆盖编解码、JSON、取色与贴图;每个插件暴露的功能点都能在启动器里直接搜到。你也可以用 Vue 3 写一个,上传后经审核发布到插件商店。

ToolZen 插件商店的全部插件列表
客户端内置插件商店:分类筛选、推荐排序、一键安装,装过的插件会跟着账号同步。
Built in

四个官方插件,装好就在

随客户端交付,不需要下载。下面每一条功能点都是启动器里可以直接搜到的一项,标成代码片的就是能敲的关键字——敲前缀也算命中,输入「js」就能找到 JSON。

<>

编码助手

开发工具 · v1.0.0 · 随客户端内置 · 可独立成窗

Base64 / URL / Unicode / Hash 等常用编解码与转换工具合集。唤出时可按剪贴板内容自动匹配解码类操作。

不申请任何权限
  • 日期时间转换date时间戳
    秒 / 毫秒时间戳与日期时间互转
  • UUID / GUID 生成uuidguid
    一键生成标准唯一标识
  • Hash 摘要md5sha256
    MD5 / SHA1 / SHA224 / SHA256 / SHA384 / SHA512
  • Base64 编解码base64编码
    UTF-8 文本与 Base64 互转
  • URL 编解码url解码
    URI 组件编码与还原
  • Unicode 编解码unicode
    \uXXXX 转义与还原
  • 进制转换
    二进制 / 八进制 / 十进制 / 十六进制
  • HTML 实体编解码
    常见实体与文本互转
{}

JSON

开发工具 · v1.1.0 · 随客户端内置 · 可独立成窗

支持 JSON 美化、压缩、校验及 URL Params 转换。

写剪贴板
  • 粘贴自动格式化
    粘贴到输入框时自动美化后填入
  • JSON 美化jsonpretty格式化
    缩进格式化,便于阅读
  • JSON 压缩minify压缩
    去除空白,减小体积
  • 语法校验
    显示解析错误信息
  • URL Params 转 JSONurlparams参数转换
    支持完整 URL、查询串与重复参数数组
🎨

取色器

开发工具 · v1.1.0 · 随客户端内置

打开即全屏取色,取色完成自动复制 HEX 色值。

写剪贴板
  • 全屏取色取色colorcp
    打开插件直接开始屏幕取色,可取任意窗口颜色
  • 自动复制
    取色完成自动复制 HEX 到剪贴板
🖼️

悬浮图片

效率办公 · v1.0.0 · 随客户端内置

把剪贴板或粘贴的图片悬浮在屏幕最上层,可拖动、滚轮缩放,Esc 关闭。

读剪贴板
  • 置顶悬浮贴图pin
    图片悬浮在所有窗口之上,不被遮挡
  • 拖动缩放
    鼠标拖动移动位置,滚轮或 +/- 键缩放
  • 剪贴板识别
    唤出主窗口自动识别剪贴板图片,或直接粘贴到输入框
  • Esc 关闭
    焦点在悬浮图片上按 Esc 即可关闭
插件商店里的插件详情,列出功能、权限与剪贴板规则
装之前就能看全:一个插件有哪些功能、申请了哪些权限、会对剪贴板里的什么内容做出反应,商店详情里逐条写清。
Triggers

插件怎么被唤起

插件不用一个个去菜单里翻。每个功能点都可以声明自己在什么情况下该出现在候选列表里,一共四种形态,同一个功能点最多声明 12 条。

关键字

'json'

最常用的一种。与输入内容互为前缀就算命中,所以敲「js」也能找到 JSON,中文关键字同样可以。

正则

type: 'regex'

输入内容匹配上正则就出这个功能,适合识别 URL、订单号这类有形状的文本。表达式不超过 300 字符且必须能编译。

长文本

type: 'over'

按输入长度触发,可以给上下界。粘一整段日志进来时,处理长文本的插件自己会浮上来。

图片

type: 'img'

剪贴板里或直接粘进来的是图片时进入候选栏——官方的「悬浮图片」用的就是这一条。

启动器里搜索关键词后列出插件命令
搜一个「编」字,出来的全是编码助手暴露的命令。装一个插件等于多一串可以直接搜的功能,而不是多一个要点开的图标。

剪贴板自动匹配

唤出主窗口的那一刻,客户端会看一眼剪贴板:内容对上了某个插件声明的规则,就直接把它推到最前面,连关键字都不用敲。声明规则时给一个匹配类型(json / regex / url / timestamp / color / image),官方四个插件一共声明了下面这些:

  • Unicode 转义regex
    匹配包含 \uXXXX 形式的转义序列示例\u4e2d\u6587行为填入搜索框,提示 Unicode 解码 · 来自「编码助手」
  • HTML 实体regex
    匹配包含 &#...; 或 &amp; / &lt; / &gt; 等实体示例&lt;div&gt;hello&lt;/div&gt;行为填入搜索框,提示 HTML 实体解码 · 来自「编码助手」
  • URL 编码regex
    匹配包含 %XX 百分号编码示例%E4%B8%AD%E6%96%87行为填入搜索框,提示 URL 解码 · 来自「编码助手」
  • Base64regex
    匹配长度 ≥ 8 且为 4 的倍数的 Base64 文本示例aGVsbG8=行为填入搜索框,提示 Base64 解码 · 来自「编码助手」
  • JSON 对象 / 数组json
    匹配以 { 或 [ 开头,且可被 JSON.parse 解析示例{"id":1,"name":"demo"}行为唤出后填入搜索并提示打开 JSON · 来自「JSON」
  • URL Paramsregex
    匹配完整 URL 查询参数,或 key=value&key2=value2 参数串示例https://example.com?id=1&tag=a&tag=b行为唤出后填入并提示打开 JSON 转换 · 来自「JSON」
  • 剪贴板图片image
    匹配剪贴板中的图片内容(截图 / 复制的图片)示例截图后唤出主窗口行为悬浮显示图片 · 来自「悬浮图片」
插件详情里的剪贴板自动识别规则列表
规则不是藏在代码里的:每条的匹配条件、示例和触发后的行为都摊在插件详情页上,装之前就知道它会在什么时候动。
Build your own

自己写一个插件

插件就是一个 Vue 3 组件,用 Vite 打成远程 ESM 包。宿主会先把 Vue 挂到全局再动态 import 你的入口,所以不要把 Vue 打进包里——打进去会出现两份运行时。

JSON 插件运行中的界面
插件运行时的样子。最上面那条标题栏由宿主渲染(返回、分离成独立窗口、关闭都在里面),插件只负责它下面的区域,不用自己画窗口控件。

宿主提供什么

运行时

宿主注入 window.Vue,用 defineAsyncComponent 挂载你的入口,20 秒没加载完算超时。标题栏、独立窗口、深浅色主题都由宿主接管。

进入参数

挂载时拿到四样东西:插件自己的配置、触发时输入框里的文本、触发方式(关键字 / 正则 / 长文本 / 图片),以及一组宿主 API。

宿主 API

近 20 个方法:读写剪贴板、系统通知、隐藏主窗口、分离成独立窗口、屏幕取色、打开外部链接、本地键值存储、查询当前是否深色、进入与退出事件回调。

权限

要用敏感能力得先声明,一共四项:读剪贴板、写剪贴板、访问网络、文件对话框。白名单以外的值上传时直接被拒;声明了什么,用户在商店详情里就看得到什么。

从零到上架

  1. 1生成脚手架用仓库里的 create-plugin 起一个 Vue 3 + Vite 工程,装好依赖后 pnpm dev 起本地服务。
  2. 2在客户端里调客户端「开发者专区」选中你的构建目录,宿主会给它一个临时入口地址,改完刷新就能看到效果。
  3. 3上传插件包校验通过后托管在服务端,入口地址带上版本号,用户装的永远是确定的那一版。
  4. 4送审发布草稿 → 送审 → 管理员发布。上传新版本会回到草稿态,但已发布的旧版本继续可用,用户不会突然没得装。

打包限制

这些是服务端硬校验的,超了直接拒收——插件是要发到每个用户机器上跑的远程代码,包越小越可控。

20文件数上限
512 KB单文件上限
2 MB整包上限
3 层目录深度上限
11 种扩展名白名单
不可覆盖已发布的版本号
Ready when you are

装上客户端,四个插件已经在里面

先用官方插件跑一遍,再决定要不要写自己的那一个。

立即下载 →