Skip to main content
UniFlow 开发者

为 UniFlow 开发插件

用 TypeScript 和 UniFlow 插件 SDK,给 UniMind 加上新工具、做自己的面板、在后台定期做事。打包成一个 .uniplugin,审核通过即上架插件商店 —— 学生一键获取,装上立即生效。

$ npx uniflow-plugin init my-plugin

src/main.ts
import { definePlugin, PluginCommand } from '@uniflow/plugin-sdk'

const countDue: PluginCommand<{ days?: number }> = {
  action: 'count_due',
  description: 'Count assignments due in the next N days.',
  parameters: {
    type: 'object',
    properties: { days: { type: 'integer' } },
  },
  async run(args, ctx) {
    const list = await ctx.assignments!.list()
    const until = ctx.now().getTime() + (args.days ?? 7) * 86_400_000
    const due = list.filter((a) => Date.parse(a.dueDate) <= until)
    return { count: due.length }
  },
}

export default definePlugin({ commands: [countDue] })
UniMind
接下来一周我有几份作业要交?
duecount.count_due
已完成 · 只读命令,直接调用
接下来 7 天有 3 份作业要交,最早的是周三的实验报告。

插件能做的三件事

官方插件与第三方插件用的是完全相同的格式、SDK 和运行时,没有任何私有通道。

帮我把第 3 章做成闪卡
新建牌组「第 3 章」
闪卡 · 24 张卡片
确认取消
已记入撤销记录

给 UniMind 加工具

插件声明的命令直接进入 UniMind 的工具清单。只读命令模型可以直接调用;会改数据的命令先弹确认卡片,用户点了确认才执行,而且可以撤销。

闪卡UniMind
什么是机会成本?
点击翻面
再来一次记住了

有自己的面板

以标签页打开的界面,React 或原生 TypeScript 都行。用与应用相同的设计令牌和 Tailwind 预设,深浅色自动跟随。

刷新日历订阅
每 6 小时
刚刚 · 新增 2 个日程
6 小时前 · 没有变化
12 小时前 · 更新 1 个日程

在后台定期做事

声明一个后台命令,插件启用期间由应用按间隔(至少 30 分钟)代为执行 —— 比如每 6 小时刷新一次日历订阅。

三步上手

从想法到上架

一个命令生成项目,保存即热重载,打包后在控制台提交。

01

生成项目

脚手架生成 plugin.json、命令、面板、中英文文案和测试。纯 TypeScript 与 React + Tailwind 两种模板可选。

$ npx uniflow-plugin init my-timer$ cd my-timer && npm install
02

边写边试

每次保存自动构建。在 UniFlow 侧边栏「插件 › 开发者 › 加载开发中的插件」选中 dist/,改代码即热重载,命令立刻出现在 UniMind 里。

$ npm run dev # 保存即重新构建$ npm test
03

打包提交

在开发者控制台上传包、填好商店页、配上 banner,提交审核。通过后自动上架,所有用户都能在侧边栏「插件」里找到。

$ npm run pack# → my-timer-1.0.0.uniplugin

安全是默认值

插件能碰到的一切都经过应用,用户始终知道它能做什么。

沙箱隔离

代码运行在独立源的 iframe 与 Web Worker 里,CSP 禁止一切网络请求和外部资源,只能经 ctx 与应用打交道。

最小权限

12 项权限按需声明,没声明的能力在 ctx 上根本不存在。安装时权限翻译成人话、按风险标色。

用户说了算

模型发起的写操作都要用户在确认卡片上点确认,卡片如实描述将要发生的事,每一步都能撤销。

人工审核

每个版本上架前都由 UniFlow 团队审核:新增的权限、给 UniMind 的命令说明、确认卡片是否说实话。

每个版本的上架流程

从提交到用户收到更新,每一步都有记录。

安全模型与审核规范
  1. 提交 .uniplugin01
  2. 自动校验(与安装同一套规则)02
  3. 人工审核03
  4. 上架插件商店04
  5. 用户一键更新05

今天就写你的第一个插件

插件商店刚刚开放 —— 第一批上架的插件里,可以有你的一个。