Aster 的插件清单仓库。WebUI 的「插件市场」页读取本仓库的 index.json 展示可用插件。
.
├── index.json 插件清单(WebUI 读取这个文件)
├── plugins/ 插件源码(每个插件一个子目录)
│ └── <插件名>/
├── schema.json 清单格式说明(JSON Schema)
└── templates/ 插件模板,复制即可开始写新插件
{
"version": 1,
"updated": "2026-09-17",
"plugins": [
{
"name": "echo",
"repo": "https://github.com/xlinxt/aster-plugin-echo.git",
"desc": "复读机:把收到的内容原样发回",
"author": "xlinxt",
"tags": ["工具", "示例"],
"version": "0.1.0"
}
]
}| 字段 | 必填 | 说明 |
|---|---|---|
name |
是 | 插件名,与仓库目录名一致 |
repo |
是 | 插件仓库地址(可 clone) |
desc |
是 | 一句话说明,显示在卡片上 |
author |
是 | 作者 |
tags |
否 | 分类标签,WebUI 用它做筛选 |
version |
否 | 插件版本 |
- 写插件:从
templates/复制一份,或参考plugins/里的示例。 - 发布仓库:把插件推到一个公开 Git 仓库。
- 提交清单:在本仓库
index.json的plugins数组里追加一条,然后提 PR。
要求:
- 插件仓库根目录要有
Cargo.toml,crate 名与name一致 - 插件须提供
pub fn plugin() -> aster::Plugin作为入口 README.md说明命令、权限和配置项- 不引入与本框架冲突的全局状态
Aster 目前是编译期加载:插件作为独立 crate,克隆到 Aster 项目的 plugins/ 目录后,在
src/plugin/mod.rs 或 App 组装处注册,然后重新 cargo build。
WebUI 的插件市场提供的是「复制安装命令」,不做运行时热加载——因为 Rust 无法安全地 把任意动态库接进已编译的二进制里。运行时加载在路线图上,但会走单独的机制。
清单与模板以 MIT 提供。各插件遵循其自身仓库的许可。