目录结构
init 创建的新包采用这个结构。宿主仍兼容早期的 liveboard/ 格式,更新旧包时不必迁移。插件清单 plugin.json
.minimax-plugin/plugin.json 是插件身份、元数据、图标以及 Skill、MCP、App 的唯一来源。Mini App 不会重新解释或清空这些字段。.minimax-plugin/plugin.json
name是小写机器名,最长 80 个字符,以字母开头,可以用数字和._-分隔。它就是 Mini App 的pluginId。version使用 SemVer。description、author和每条exampleQueries都不能为空。icon指向包内的 PNG、JPEG 或 WebP。init会提供默认图标。apps、mcpServers、skills保持普通插件的含义;没有的能力写空数组。
声明入口 package.json
package.json
package.json 只需这一段扩展。宿主不读取或执行 packageManager、lockfile、build 脚本、依赖等工程元数据。Mini App 声明 miniapp.json
miniapp/miniapp.json
artifacts.client和artifacts.node都必须有。它们决定宿主计算摘要、接纳和发布的范围,可以是源码目录,不要求是编译产物,两者也可以重叠。runtime.entry是 Node 入口,后缀为.js、.mjs或.cjs,必须落在 Node 载荷里。lifecycle只有on-demand:启用和扫描插件都不会启动服务。surface.path是 Node 服务提供的页面地址。hostConnectorAccess和agentAccess都是显式授权,不写就没有。仅声明运行时需要的权限。
agentAccess: ["session.read"],调用宿主工具需 toolAccess: ["call"],使用麦克风需 deviceAccess: ["microphone"];按实际需要组合声明,用户可在插件详情逐项关闭这些权限。摄像头和系统通知从 v3.1.9 起正式支持,分别通过 deviceAccess: ["camera"]、deviceAccess: ["notifications"] 声明。使用这两项能力时,将 engines.mcode 设为 >=3.1.9 或更高版本,完整说明见设备权限。使用较新的接口时,在这份 miniapp/miniapp.json 中声明最低宿主版本,例如 "engines": { "mcode": ">=3.1.5" }。版本门禁和 capabilities.has(name) 的兼容边界见版本与能力探测。载荷规则
- 宿主不安装依赖、不执行构建。包内应提供能直接运行的文件,第三方运行时依赖需打包或复制到载荷目录。优先使用 Node 内置模块和浏览器 API。
node_modules是构建状态,不会随包发布,也不能放在声明的载荷里。- 使用可移植的相对路径:不能用绝对路径、
..、反斜杠或符号链接,也不能指向包外。 - 除
node_modules外,载荷里的每个文件都会进入摘要。日志、缓存、临时文件等无需发布的内容,应在发布前删除。