一套插件,三种产物
同一份插件代码:发布到启动器平台,打成 Electron 独立应用(含签名安装包),或者打成静态网页。插件用 targets 声明自己适合哪些平台。
同一份插件代码:发布到启动器平台,打成 Electron 独立应用(含签名安装包),或者打成静态网页。插件用 targets 声明自己适合哪些平台。
Electron 应用一行 runApp,网站一个 createWebHost,就有了插件市场级的能力:动态安装、权限询问、入口与快捷键、hook 拦截、MCP 工具。
兼容安装模式:加了 SDK 的平台可以动态安装插件包(兼容 upx 格式),数量、白名单都能配。固定打包模式:一个或几个插件直接打成一个二进制或一个网页。
插件包 →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 } },
})注入给插件的每个函数和属性都能拦截 get / set / apply / construct;入口、窗口、权限、安装也都有 hook 点。
默认询问,按插件、按路径或域名单独授权。「始终允许 / 仅本次 / 禁止」,连续拒绝自动转禁止。
底座版本、宿主版本、伪装平台名和插件版本都能注入,旧插件看到的还是它熟悉的平台。
Canvas 版 sharp、文件对话框与下载、虚拟文件系统、本地 bridge……每个兼容实现都是可替换的独立包。
electron-builder 出 dmg / nsis / AppImage,mac 公证、Windows Azure 签名,凭据只走环境变量,附 GitHub Actions 模板。
vite build 直接产出三端;vite dev 在普通浏览器里模拟插件环境,直接调界面。
每个 API 在 Electron 和网页上是原生、模拟还是不支持,一张表说清楚,运行时还能 supports() 查询。
附带 Agent skill 和 llms.txt,让 Claude 之类的 Agent 直接帮你写插件、移植和打包。
同一份插件代码,各自打成最适合它的形态。
$ npx whatevertools skill 已安装 skill:.claude/skills/whatevertools $ curl https://…/llms.txt