Skip to main content
Browse the docs

The developer docs are currently available in Chinese only. The SDK, the CLI and every code sample work the same in any language.

UniFlow 插件开发者文档

适用于:插件包格式 v1(manifestVersion: 1)、运行时协议 v1、@uniflow/plugin-sdk 1.x、UniFlow 桌面端 1.3.0 及以后。

UniFlow 插件是一个 .uniplugin 文件:用户在侧边栏的插件商店里一键获取(或在「已安装 › 从文件添加」、把文件拖进窗口)即可装上, 立即生效、不用重启、也不用等应用更新。插件能做三件事:

  1. 给 UniMind 加工具 —— 插件声明的命令会出现在 UniMind 的工具清单里(「帮我把这章做成闪卡」「这周有什么要交」);
  2. 有自己的面板 —— 以标签页打开的界面,与应用同一套设计语言,深浅色自动跟随;
  3. 在后台定期做事 —— 例如每 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 与应用打交道     │
└───────────────────────────────────────────────────────────────────────────┘