一键导入
plugin-generator
生成新的内置插件。当用户说"创建插件"、"新增插件"、"生成插件"并提供API接口地址和插件名称时触发。用户会说明输出类型(image/text)和API返回格式。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
生成新的内置插件。当用户说"创建插件"、"新增插件"、"生成插件"并提供API接口地址和插件名称时触发。用户会说明输出类型(image/text)和API返回格式。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
更新 CHANGELOG.md 并同步版本号到所有配置文件。自动提取从上一个 tag 到当前 HEAD 的所有 commit,按类型分类整理成中文格式的版本说明。需要传入版本号参数,会同时更新 package.json、Cargo.toml、tauri.conf.json 中的版本号。当用户说"更新 changelog"、"生成版本说明"、"准备发布"、"写 changelog"、"更新版本"并指定版本号时触发。
使用极趣云平台(Zectrix)开放 API 的指南。当用户需要调用 Zectrix API 管理设备、待办事项、推送内容到墨水屏设备,或编写与 Zectrix 云平台交互的脚本时, 使用此 skill。触发场景包括:用户提到 "Zectrix API"、"极趣云"、"墨水屏推送"、 "设备推送"、API 集成、curl 命令调用 Zectrix 接口、或需要在代码中调用 Zectrix 设备/待办/显示相关接口。
基于 SOC 职业分类
| name | plugin-generator |
| description | 生成新的内置插件。当用户说"创建插件"、"新增插件"、"生成插件"并提供API接口地址和插件名称时触发。用户会说明输出类型(image/text)和API返回格式。 |
根据用户提供的 API 接口地址、插件名称、输出类型和返回格式,生成新的内置插件代码并自动注册到 src-tauri/src/builtin_plugins.rs。
插件代码在 QuickJS 环境中执行,这是一个轻量级 JavaScript 引擎:
fetchJson, fetchBase64, postJson 等函数| 函数 | 用途 |
|---|---|
fetchJson(url) | GET 请求,返回 JSON 对象 |
fetchJsonWithHeaders(url, headers) | GET 请求,带自定义 Headers |
fetchText(url) | GET 请求,返回文本 |
fetchBase64(url) | GET 图片,返回 base64 Data URL |
fetchBase64WithHeaders(url, headers) | GET 图片带 Headers |
postJson(url, bodyStr) | POST JSON,body 需为 JSON 字符串 |
postJsonWithHeaders(url, bodyStr, headers) | POST JSON 带 Headers |
generateQrCode(text) | 生成二维码 PNG |
sleep(ms) | 同步等待 |
config | 用户配置对象 |
用户会提供以下信息:
image 或 text{"message": "图片URL", "status": "success"}图片插件需要:
fetchBase64 下载图片转成 base64{ type: "image", imageDataUrl: "...", title: "..." }const data = await fetchJson("<API_URL>");
const imageDataUrl = await fetchBase64(data.<IMAGE_URL_FIELD>);
return { type: "image", imageDataUrl: imageDataUrl, title: "<PLUGIN_NAME>" };
文本插件需要:
{ type: "text", text: "...", title: "..." }const data = await fetchJson("<API_URL>");
return { type: "text", text: data.<TEXT_FIELD>, title: "<PLUGIN_NAME>" };
如果需要渲染文本为图片再推送:
const data = await fetchJson("<API_URL>");
return { type: "textImage", text: data.<TEXT_FIELD>, title: "<PLUGIN_NAME>" };
生成插件 ID - 根据插件名称生成英文 ID
dog-randomweather-today确定插件分类 - 接受用户指定的分类,或根据插件类型自动推断:
"AI""图片""工具""文学""编程"生成插件描述 - 根据插件功能生成简短描述
生成插件代码 - 根据输出类型和返回格式生成 JS 代码
fetchJson + fetchBase64fetchJson更新 builtin_plugins.rs - 在 list_builtin_plugins() 函数中添加新的 BuiltinPlugin
在 src-tauri/src/builtin_plugins.rs 的 list_builtin_plugins() 函数的 vec! 中添加:
BuiltinPlugin {
id: "<PLUGIN_ID>".to_string(),
name: "<插件名称>".to_string(),
description: "<插件描述>".to_string(),
category: "<分类>".to_string(),
code: r#"const data = await fetchJson("<API_URL>");
const imageDataUrl = await fetchBase64(data.<IMAGE_URL_FIELD>);
return { type: "image", imageDataUrl: imageDataUrl, title: "<插件名称>" };"#
.to_string(),
..Default::default()
},
src-tauri/src/builtin_plugins.rs 文件list_builtin_plugins() 的 vec! 中添加新的插件项cargo build --manifest-path src-tauri/Cargo.toml 验证编译用户输入:
生成结果:
dog-randomconst data = await fetchJson("https://dog.ceo/api/breeds/image/random");
const imageDataUrl = await fetchBase64(data.message);
return { type: "image", imageDataUrl: imageDataUrl, title: "随机显示狗狗" };