Skip to content

开源 · MIT · @whatevertools/*

效率化软件的
插件系统

给你的 Electron 应用、网站和自己的平台加上插件生态:动态安装、权限、hook、签名打包一应俱全。
一套插件代码,三种产物,随便跑在哪。

npm i -D @whatevertools/cli

兼容现有的 uTools 插件(plugin.json + preload),不用改代码。

01

一套插件,三种产物

同一份插件代码:发布到启动器平台,打成 Electron 独立应用(含签名安装包),或者打成静态网页。插件用 targets 声明自己适合哪些平台。

打包与签名 →
02

给你的应用加插件生态

Electron 应用一行 runApp,网站一个 createWebHost,就有了插件市场级的能力:动态安装、权限询问、入口与快捷键、hook 拦截、MCP 工具。

接入宿主 →
03

插件包一键集成

兼容安装模式:加了 SDK 的平台可以动态安装插件包(兼容 upx 格式),数量、白名单都能配。固定打包模式:一个或几个插件直接打成一个二进制或一个网页。

插件包 →
main.ts
import { runApp } from '@whatevertools/electron'

runApp({
  mode: 'launcher',
  plugins: ['./plugins/translate', './downloads/ocr.upx'],
  compat: [{ type: 'utools' }],          // 兼容现有插件格式
  install: { enabled: true, max: 20 },   // 用户还能自己装插件包
  policy: { plugins: { ocr: { 'fs.read': ['~/Pictures'] } } },
  providers: { ai: { complete: callMyModel } },
})

该有的都有

访问器级 hook

注入给插件的每个函数和属性都能拦截 get / set / apply / construct;入口、窗口、权限、安装也都有 hook 点。

Chrome 式权限

默认询问,按插件、按路径或域名单独授权。「始终允许 / 仅本次 / 禁止」,连续拒绝自动转禁止。

版本与身份注入

底座版本、宿主版本、伪装平台名和插件版本都能注入,旧插件看到的还是它熟悉的平台。

适配器分层

Canvas 版 sharp、文件对话框与下载、虚拟文件系统、本地 bridge……每个兼容实现都是可替换的独立包。

签名、公证、CI

electron-builder 出 dmg / nsis / AppImage,mac 公证、Windows Azure 签名,凭据只走环境变量,附 GitHub Actions 模板。

Vite 插件

vite build 直接产出三端;vite dev 在普通浏览器里模拟插件环境,直接调界面。

109 个 API 支持度透明

每个 API 在 Electron 和网页上是原生、模拟还是不支持,一张表说清楚,运行时还能 supports() 查询。

为 AI Agent 准备

附带 Agent skill 和 llms.txt,让 Claude 之类的 Agent 直接帮你写插件、移植和打包。

两个真实插件,两种形态

同一份插件代码,各自打成最适合它的形态。

让 AI Agent 帮你写插件

官网和 npm 包都带了 Agent skill:怎么移植、哪个 API 在哪个平台能用、怎么打包签名,Agent 读完就能干活。

给 AI Agent →
$ npx whatevertools skill
已安装 skill:.claude/skills/whatevertools

$ curl https://…/llms.txt

MIT License