跳转到内容

plugin.json 清单

plugin.json 是插件的唯一事实源,前后端扫描共用同一份清单。

字段必填说明
id是插件 id,全局唯一、kebab-case,必须等于目录名
name是插件分组显示名(侧栏分组标题)
description否插件说明
group否显式分组名;缺省按 order 归入默认分组
order否排序权重,缺省 100;分组序取组内最小 order
keywords否关键词数组,供全局搜索命中
legacyMigrations否旧全局版本 → 新本地版本的迁移桥接映射

一个插件可声明多个工具项,各自独立导航、独立启停、独立设置 tab:

字段必填说明
id是工具 id,全局唯一,路由 /tool/:id
name是工具显示名
description否一句话描述
icon是lucide 图标名(如 Rocket、Table)
entry是页面入口,相对插件目录且含 frontend/ 前缀,如 frontend/views/Tool.vue
keepAlive否默认 true;设为 false 退出缓存,切回重置

声明设置面板入口:

{
"settings": {
"entry": "frontend/settings/Settings.vue"
}
}
{
"id": "hello-world",
"name": "示例插件",
"description": "演示插件开发全链路:Rust 命令、SQLite、日志、HTTP、布局体系",
"group": "示例",
"keywords": ["demo", "示例"],
"order": 1,
"legacyMigrations": { "1": 1, "2": 2 },
"tools": [
{
"id": "hello-world",
"name": "示例工具",
"description": "Rust 命令调用、日志管道与 SQLite notes 读写",
"icon": "Rocket",
"entry": "frontend/views/Tool.vue",
"keepAlive": true
}
],
"settings": { "entry": "frontend/settings/Settings.vue" }
}