适用于:插件包格式 v1(
manifestVersion: 1)、运行时协议 v1、@uniflow/plugin-sdk1.x、UniFlow 桌面端 1.3.0 及以后。
UniFlow 插件是一个 .uniplugin 文件:用户在侧边栏的插件商店里一键获取(或在「已安装 › 从文件添加」、把文件拖进窗口)即可装上,
立即生效、不用重启、也不用等应用更新。插件能做三件事:
- 给 UniMind 加工具 —— 插件声明的命令会出现在 UniMind 的工具清单里(「帮我把这章做成闪卡」「这周有什么要交」);
- 有自己的面板 —— 以标签页打开的界面,与应用同一套设计语言,深浅色自动跟随;
- 在后台定期做事 —— 例如每 6 小时刷新一次日历订阅。
官方插件(闪卡、考试规划、日历同步)与第三方插件用的是完全相同的格式、SDK 和运行时,没有任何私有通道 ——
它们的源码(仓库 plugins/ 目录)就是最好的示范工程。
目录
| 文档 | 内容 | |
|---|---|---|
| 1 | 快速开始 | 10 分钟写出第一个插件,在应用里跑起来 |
| 2 | 插件包格式与 manifest | .uniplugin 里有什么、plugin.json 每个字段、校验规则与上限 |
| 3 | 权限 | 12 项权限各给了什么、风险等级、怎么选最小权限 |
| 4 | 命令 | read / write / navigate、describe、确认卡片、撤销、错误、给模型的说明怎么写 |
| 5 | 上下文 API | ctx 上每个方法的签名、行为与上限 |
| 6 | 存储 | 云端文档存储、本机存储、配额、数据迁移 |
| 7 | 面板 | 面板 SDK、React、Tailwind 预设、主题、嵌入模式、沙箱里不能做什么 |
| 8 | 国际化 | 文案文件、插值、复数 |
| 9 | 后台任务 | background 的语义与注意事项 |
| 10 | 测试 | @uniflow/plugin-sdk/testing 迷你宿主 |
| 11 | 调试与开发者模式 | 加载开发中的插件、热重载、看日志 |
| 12 | 打包、分发与更新 | pack、版本号、更新与降级、官方认证 |
| 13 | 安全模型与审核规范 | 沙箱边界、必须遵守的规则、审核清单 |
| 14 | 设计规范 | 面板与文案的质量标准 |
| 15 | 官方插件导读 | 闪卡 / 考试规划 / 日历同步:值得借鉴的设计 |
| 16 | 限制与常见问题 | 已知限制、FAQ、API 变更记录 |
一张图看懂运行方式
┌──────────────────────── UniFlow 桌面端(渲染进程)────────────────────────┐
│ │
│ UniMind ──工具调用──┐ 插件库(安装 / 开关 / 导出 / 移除) │
│ ▼ │
│ 命令执行器:参数校验 → (模型发起的写命令)确认卡片 → 执行 → 撤销栈 │
│ │ │
│ ▼ 按 manifest 权限、按命令 kind 裁剪出的 PluginCtx │
│ ┌─────────────────────────────┐ ┌──────────────────────────────┐ │
│ │ 沙箱 iframe(opaque origin) │ │ 面板 iframe(opaque origin) │ │
│ │ └ Web Worker:你的 main.js │ │ 你的 panel.html │ │
│ │ ctx.xxx() ──RPC──▶ 宿主 │ │ run('action') ──RPC──▶ 宿主 │ │
│ └─────────────────────────────┘ └──────────────────────────────┘ │
│ CSP:禁止一切网络请求、外部脚本与资源;只能经 ctx / run 与应用打交道 │
└───────────────────────────────────────────────────────────────────────────┘