--- summary: "让代理选择插件主题或创建个人 OpenClaw 主题" title: "主题" sidebarTitle: "主题" read_when: - "您希望代理更改您的 OpenClaw 主题" - "您想要创建一个自定义主题并在一次调用中应用它" - "您需要主题目录和配置文件选择合同" --- `theme` 工具可让代理列出、检查、选择和创建 OpenClaw 外观主题。设置和代理使用相同的内置、插件和个人主题目录。主题描述解释了它们的调色板、排版和特征,以便代理可以从请求中选择主题,例如“使其看起来像外星飞船” 主题品牌是装饰性的,适用于 Control UI,而不是 CLI 或本机应用程序。它不会重写技术命令文本、包路径、身份验证协议或法律和版权声明。在加载个人资料和主题目录之前,匿名冷登录无法使用经过身份验证的人员的主题;在此之前,只有现有的本地记住的吉祥物后备可用。这些字段不添加网关配置选项或配置迁移。 该工具可在编码和消息传递配置文件以及 `group:ui` 中使用。它不需要连接的浏览器。个人变更需要可信的参与者资料。 CRT和Phosphor使用中性端子标记、点工作指示器,并且没有Lobsterdex。它们保留 OpenClaw 名称和帮助链接。其他内置主题,包括 Claw,保留了现有的吉祥物和品牌。隐藏 Lobsterdex 不会删除浏览器的集合或保存的图标首选项。 ## 选择主题 请代理列出可用的主题或为您选择一个。 `list` 包括当前选择,因此选择主题通常需要两次调用: ```json { "action": "list" } ``` ```json { "action": "set", "id": "space-pack/xenovessel", "mode": "dark" } ``` 使用 `list` 返回的 ID。插件 ID 为 `/`;个人主题使用`user/`。 ## 操作 | 操作 | 输入 | 结果 | | -------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | `list` | 无 | 可用的主题、描述、支持的模式、来源和当前选择。 | | `get` | 可选`id` | 当前选择和请求的主题,包括其可编辑定义(如果可用)。如果没有 `id`,则检查当前主题。 | | `set` | `id` and/or `mode` | 保存配置文件覆盖并返回结果选择。 | | `import` | `id`、`definition`;可选 `apply`、`mode` | 保存个人主题。 `apply: true` 在同一调用中选择它。 | 每个操作都接受可选的 `user`,即来自 Control UI 消息对话上下文的人员验证的 `requester_profile.id`。当多人转向时,需要`user`;智能体选择询问的人或不清楚的情况询问他们。只能选择回合的所有者或接受的参与者。读取,包括`list`和`get`中的当前选择,使用该人的个人资料;更改仅保存到该配置文件。如果他们的访问权限发生了变化,他们必须再次询问。 `mode` 是 `system`、`light` 或 `dark`。 `set` 接受 `id` 或 `mode` 的 `null`,以清除该配置文件覆盖并继承网关设置。仅设置一个字段会在兼容时保留其他覆盖。如果先前的显式模式无法呈现它,则选择或应用单模式主题也会选择其支持的模式。明确请求的不兼容模式被拒绝; `system` 遵循可用调色板: ```json { "action": "set", "id": null, "mode": null } ``` `set`和`import`持久化成功后返回`application: "saved"`。响应已经包含结果状态;不需要额外的 `get`。保存并不断言特定浏览器已呈现主题。 返回的`current.mode`是保存的首选项。 `current.effectiveMode` 在无需浏览器即可确定时报告呈现的变体;有两个调色板和 `system` 模式,由设备决定。插件重新加载可以更改可用的变体,而无需重写任何人保存的首选项。 ## 创建并应用个人主题 `import` 接受最多 64 个字符的小写段,使用字母、数字、连字符和下划线。重新导入相同的 slug 会更新该个人主题。 `apply` 默认为 `false`。 定义需要名称、简短描述和至少一个完整的 `light` 或 `dark` 调色板。每个调色板使用如下所示的语义颜色,并且可能包括 `font-sans` 和 `font-mono`。使用 CSS 颜色值,例如十六进制、`rgb()`、`hsl()` 或 `oklch()`。字体系列描述本地可用的字体;定义无法加载外部样式表或资源。 定义还可以提供这些可选的表示字段,由内置、插件和个人主题共享: - `mascot`:`"claw"`(默认)或`"none"`。 `"none"` 默认为中性提示标记,并隐藏常驻龙虾和来访龙虾陌生人。当 Lobster 访问启用时,普通生物仍然可以跨越作曲家壁架;主题不会改变该切换。 - `brandName`:1-80 个可打印字符的显示名称,在保存前进行修剪。省略它以保留“OpenClaw”。这是外观文本,而不是对代理身份或产品配置的更改。 - `brandIcon`:`"claw"` 或中性 `"mark"`。省略如下`mascot`:爪为`"claw"`,标记为`"none"`。插件主题还可以选择声明的图标艺术品 ID。 - `workingIndicator`:`"claw"`、`"dots"`、`"brand"`(所选品牌图标)或`"none"`。省略使用爪作为爪吉祥物,点作为没有吉祥物。此选择与长期等待短语无关。 - `lobsterdex` 和 `communityLinks`:控制各自导航条目的布尔值。两者都默认为 `true`,独立于 `mascot`。隐藏条目不会删除发现或更改访问权限。 - `workingPhrases`:最多 24 个文字状态短语,每个被修剪为 1-24 个字符,修剪后没有控制字符或重复。这些创作的字符串不会被翻译。省略该字段以使用默认的异想天开的词汇,或将其设置为 `[]` 以隐藏长时间等待的短语。 - `critters`:内置 `"penguin"` 和 `"fedora"` 目录中最多 8 个唯一 ID。当启用 Lobster 访问时,这些会将偶尔的访问者添加到普通作曲家壁架流量中。省略该字段或使用`[]`不添加;未知 ID 和重复项将被拒绝。 - `avatarHat`:`"fedora"`、`"crown"`、`"santa"`、`"party"` 或 `"pumpkin"` 为特工头像添加偶尔的装饰帽子。对于没有主题提供的头像帽子,请省略该字段。 使用一致的 CSS 分隔符:`rgb(20 30 40 / 50%)` 或 `rgba(20, 30, 40, 0.5)`。现代函数(例如 `oklch()`)在不透明度之前使用组件和 `/` 之间的空格。字体列表使用逗号分隔的姓氏;引用包含标点符号或以数字开头的名称,例如 `"123 Font", monospace`。还要引用包含 CSS 关键字的名称,例如 `"Foo serif"`。在保存主题之前,格式错误的颜色和不平衡的字体引号将被拒绝。 此示例在一次调用中创建并激活深色主题: ```json { "action": "import", "id": "xenovessel", "apply": true, "mode": "dark", "definition": { "name": "Xenovessel", "description": "Indigo spacecraft surfaces, lime controls, cyan highlights, and monospace typography.", "mascot": "none", "brandName": "Mission Control", "brandIcon": "mark", "workingIndicator": "dots", "lobsterdex": false, "communityLinks": false, "workingPhrases": ["Navigating", "Calibrating", "Scanning"], "critters": ["penguin", "fedora"], "avatarHat": "fedora", "dark": { "background": "#090818", "foreground": "#e8f2ff", "card": "#12112b", "card-foreground": "#e8f2ff", "popover": "#171533", "popover-foreground": "#e8f2ff", "primary": "#c7ff3d", "primary-foreground": "#172300", "secondary": "#28234a", "secondary-foreground": "#e8f2ff", "muted": "#211e39", "muted-foreground": "#aca6cc", "accent": "#4ce9ef", "accent-foreground": "#042b30", "destructive": "#ff698b", "destructive-foreground": "#290711", "border": "#40385e", "input": "#40385e", "ring": "#c7ff3d", "font-sans": "ui-monospace, monospace", "font-mono": "ui-monospace, monospace" } } } ``` 名称限制为 80 个字符,描述限制为 320 个字符,规范化定义限制为 4096 UTF-8 字节。网关在保存定义之前验证定义。个人主题不需要安装插件或在其他地方发布定义。 ## 插件主题和热重载 插件通过其清单以声明方式贡献主题定义。个人主题仅使用内置品牌图标、帽子和小动物目录 ID;插件主题还可以引用在 [ 插件清单 ](/plugins/manifest/surfaces#themes) 中声明的自己的 SVG 艺术品 ID,并且它们的清单可以声明浅色和深色画布背景。定义从不包含图稿标记或外部 URL。当插件启用、禁用或重新加载时,共享目录会更新;不需要重新启动网关。代理继续使用相同的 `theme` 工具,而不是为每个插件接收新工具。 如果选定的插件主题不可用,结果将包括 `current.requestedId`,而 `current.id` 标识可以呈现的后备。重新启用插件或选择其他主题。列出目录不执行插件主题代码。 ## 相关内容 - [插件主题声明](/plugins/manifest/surfaces#themes) - [管理插件](/plugins/manage-plugins) - [控制 UI](/web/control-ui) - [筛选工具](/tools/screen)