Vyline DOCS

插件与主题

这里只记录当前 runtime 实际可用的功能。

Plugin SDK

import { definePlugin } from "@vyline/plugin-sdk";

export default definePlugin({
  id: "my-plugin",
  name: "My Plugin",
  version: "0.1.0",
  permissions: ["messages:read"],
  activate(ctx) {
    ctx.messages.on("message", (message) => {
      ctx.logger.info(`received: ${message.id}`);
    });
  },
  deactivate() {},
});

data/plugins/<pluginId>/ 中放置 manifest.jsonindex.tsindex.js,再从设置或 API 按账号启用。Bun 可直接加载 TypeScript,因此 plugin 本身不强制要求单独 build。

当前 runtime 可用权限

权限公开功能
messages:readctx.messages.on("message", ...)
settings:readctx.settings.get(...)
settings:writectx.settings.set(...)

SDK 类型中还存在为未来预留的 permission 名称。类型里有 permission 字符串,不代表 runtime 已实现对应 capability。不要把发送、通知、media、storage、UI 扩展视为当前已公开的 runtime API。

plugin 异常会在 activate/handler 边界被捕获。启用状态与设置按账号保存。但 plugin 仍作为本机代码在同一 host 上执行,因此不要安装不可信 plugin。

Themes

Theme 不只是 accent color。代表性 token 包括:

id, name, accent, accentContrast,
bg, surface, surface2, sidebar,
text, textDim, border,
msgIn, msgOut, msgInText, msgOutText,
radius, chatBg, pattern

Vyline/packages/themes/src/index.tsTHEME_PRESETS 中添加 preset。主程序直接读取 @vyline/themes,因此只添加 preset 时不需要修改 Frontend 状态管理或 Backend。

按页面、设置或命令搜索