皮肤与主题
皮肤控制 Hermes CLI 的视觉呈现:横幅颜色、旋转器图标和动词、回复框标签、品牌文本以及工具活动前缀。
对话风格和视觉风格是分开的概念:
- 个性改变代理的语调和措辞。
- 皮肤改变 CLI 的外观。
更换皮肤
/skin # 显示当前皮肤并列出可用皮肤
/skin ares # 切换到内置皮肤
/skin mytheme # 切换到来自 ~/.hermes/skins/mytheme.yaml 的自定义皮肤或者在 ~/.hermes/config.yaml 中设置默认皮肤:
display:
skin: default内置皮肤
| 皮肤 | 描述 | 代理品牌 | 视觉特征 |
|---|---|---|---|
default | 经典 Hermes——金色与可爱 | Hermes Agent | 暖金色边框,玉米丝色文本,旋转器中的可爱表情。熟悉的蛇杖横幅。简洁而 inviting。 |
ares | 战争之神主题——深红与青铜色 | Ares Agent | 深红色边框配青铜色点缀。激进的旋转器动词(“forging”、“marching”、“tempering steel”)。自定义剑盾 ASCII 图案横幅。 |
mono | 单色——简洁灰度 | Hermes Agent | 全灰色——无彩色。边框为 #555555,文本为 #c9d1d9。适用于极简终端设置或屏幕录制。 |
slate | 冷蓝色——面向开发者 | Hermes Agent | 皇家蓝边框(#4169e1),柔和蓝色文本。冷静而专业。无自定义旋转器——使用默认表情。 |
daylight | 浅色主题,适用于亮色终端,深色文本配冷蓝色点缀 | Hermes Agent | 专为白色或亮色终端设计。深石板色文本配蓝色边框,浅色状态表面,在浅色终端配置中保持可读的亮色补全菜单。 |
warm-lightmode | 暖棕色/金色文本,适用于浅色终端背景 | Hermes Agent | 适用于浅色终端的暖羊皮纸色调。深棕色文本配鞍棕色点缀,奶油色状态表面。比 cool daylight 主题更暖色的替代方案。 |
poseidon | 海洋之神主题——深蓝与海沫绿 | Poseidon Agent | 深蓝到海沫绿渐变。海洋主题旋转器(“charting currents”、“sounding the depth”)。三叉戟 ASCII 图案横幅。 |
sisyphus | 西西弗斯主题——朴素灰度与持久性 | Sisyphus Agent | 浅灰色配 stark 对比。巨石主题旋转器(“pushing uphill”、“resetting the boulder”、“enduring the loop”)。巨石与山 ASCII 图案横幅。 |
charizard | 火山主题——焦橙色与余烬 | Charizard Agent | 暖焦橙色到余烬渐变。火焰主题旋转器(“banking into the draft”、“measuring burn”)。龙形剪影 ASCII 图案横幅。 |
可配置键的完整列表
颜色(colors:)
控制整个 CLI 中的所有颜色值。值为十六进制颜色字符串。
| 键 | 描述 | 默认值(default 皮肤) |
|---|---|---|
banner_border | 启动横幅的面板边框 | #CD7F32(青铜色) |
banner_title | 横幅中的标题文本颜色 | #FFD700(金色) |
banner_accent | 横幅中的部分标题(可用工具等) | #FFBF00(琥珀色) |
banner_dim | 横幅中的弱化文本(分隔符、次要标签) | #B8860B(暗金菊色) |
banner_text | 横幅中的正文文本(工具名、技能名) | #FFF8DC(玉米丝色) |
ui_accent | 通用 UI 强调色(高亮、活跃元素) | #FFBF00 |
ui_label | UI 标签和标记 | #4dd0e1(青色) |
ui_ok | 成功指示器(对勾、完成) | #4caf50(绿色) |
ui_error | 错误指示器(失败、阻止) | #ef5350(红色) |
ui_warn | 警告指示器(注意、批准提示) | #ffa726(橙色) |
prompt | 交互式提示文本颜色 | #FFF8DC |
input_rule | 输入区域上方的水平分割线 | #CD7F32 |
response_border | 代理回复框的边框(ANSI 转义) | #FFD700 |
session_label | 会话标签颜色 | #DAA520 |
session_border | 会话 ID 弱化边框颜色 | #8B8682 |
status_bar_bg | TUI 状态/使用量栏的背景色 | #1a1a2e |
voice_status_bg | 语音模式状态徽章的背景色 | #1a1a2e |
selection_bg | TUI 鼠标选择高亮器的背景色。未设置时回退到 completion_menu_current_bg。 | #333355 |
completion_menu_bg | 补全菜单列表的背景色 | #1a1a2e |
completion_menu_current_bg | 活跃补全行的背景色 | #333355 |
completion_menu_meta_bg | 补全元数据列的背景色 | #1a1a2e |
completion_menu_meta_current_bg | 活跃补全元数据列的背景色 | #333355 |
旋转器(spinner:)
控制等待 API 响应时显示的动画旋转器。
| 键 | 类型 | 描述 | 示例 |
|---|---|---|---|
waiting_faces | 字符串列表 | 等待 API 响应时循环显示的表情 | ["(⚔)", "(⛨)", "(▲)"] |
thinking_faces | 字符串列表 | 模型推理期间循环显示的表情 | ["(⚔)", "(⌁)", "(<>)"] |
thinking_verbs | 字符串列表 | 旋转器消息中显示的动词 | ["forging", "plotting", "hammering plans"] |
wings | [左, 右] 对列表 | 旋转器周围的装饰性括号 | [["⟪⚔", "⚔⟫"], ["⟪▲", "▲⟫"]] |
当旋转器值为空时(如 default 和 mono 中),使用 display.py 中的硬编码默认值。
品牌(branding:)
整个 CLI 界面中使用的文本字符串。
| 键 | 描述 | 默认值 |
|---|---|---|
agent_name | 横幅标题和状态显示中显示的名称 | Hermes Agent |
welcome | CLI 启动时显示欢迎消息 | Welcome to Hermes Agent! Type your message or /help for commands. |
goodbye | 退出时显示的消息 | Goodbye! ⚕ |
response_label | 回复框标题上的标签 | ⚕ Hermes |
prompt_symbol | 用户输入提示前的符号(裸标记,渲染器会添加尾随空格) | ❯ |
help_header | /help 命令输出的标题文本 | (^_^)? Available Commands |
其他顶级键
| 键 | 类型 | 描述 | 默认值 |
|---|---|---|---|
tool_prefix | 字符串 | CLI 中工具输出行前的前缀字符 | ┊ |
tool_emojis | 字典 | 每个工具的旋转器和进度的表情符号覆盖({tool_name: emoji}) | {} |
banner_logo | 字符串 | Rich 标记的 ASCII 图案徽标(替换默认的 HERMES_AGENT 横幅) | "" |
banner_hero | 字符串 | Rich 标记的英雄艺术图(替换默认的蛇杖艺术图) | "" |
自定义皮肤
在 ~/.hermes/skins/ 下创建 YAML 文件。用户皮肤从内置的 default 皮肤继承缺失的值,因此您只需指定要更改的键。
完整自定义皮肤 YAML 模板
# ~/.hermes/skins/mytheme.yaml
# 完整皮肤模板——显示所有键。删除不需要的键;
# 缺失值自动从 'default' 皮肤继承。
name: mytheme
description: 我的自定义主题
colors:
banner_border: "#CD7F32"
banner_title: "#FFD700"
banner_accent: "#FFBF00"
banner_dim: "#B8860B"
banner_text: "#FFF8DC"
ui_accent: "#FFBF00"
ui_label: "#4dd0e1"
ui_ok: "#4caf50"
ui_error: "#ef5350"
ui_warn: "#ffa726"
prompt: "#FFF8DC"
input_rule: "#CD7F32"
response_border: "#FFD700"
session_label: "#DAA520"
session_border: "#8B8682"
status_bar_bg: "#1a1a2e"
voice_status_bg: "#1a1a2e"
selection_bg: "#333355"
completion_menu_bg: "#1a1a2e"
completion_menu_current_bg: "#333355"
completion_menu_meta_bg: "#1a1a2e"
completion_menu_meta_current_bg: "#333355"
spinner:
waiting_faces:
- "(⚔)"
- "(⛨)"
- "(▲)"
thinking_faces:
- "(⚔)"
- "(⌁)"
- "(<>"
thinking_verbs:
- "processing"
- "analyzing"
- "computing"
- "evaluating"
wings:
- ["⟪⚡", "⚡⟫"]
- ["⟫●", "●⟫"]
branding:
agent_name: "My Agent"
welcome: "Welcome to My Agent! Type your message or /help for commands."
goodbye: "See you later! ⚡"
response_label: " ⚡ My Agent "
prompt_symbol: "⚡"
help_header: "(⚡) Available Commands"
tool_prefix: "┊"
# 每个工具的表情符号覆盖(可选)
tool_emojis:
terminal: "⚔"
web_search: "🔮"
read_file: "📄"
# 自定义 ASCII 图案横幅(可选,支持 Rich 标记)
# banner_logo: |
# [bold #FFD700] MY AGENT [/]
# banner_hero: |
# [#FFD700] Custom art here [/]最小自定义皮肤示例
由于所有内容都从 default 继承,最小皮肤只需更改不同的部分:
name: cyberpunk
description: 霓虹终端主题
colors:
banner_border: "#FF00FF"
banner_title: "#00FFFF"
banner_accent: "#FF1493"
spinner:
thinking_verbs: ["jacking in", "decrypting", "uploading"]
wings:
- ["⟨⚡", "⚡⟩"]
branding:
agent_name: "Cyber Agent"
response_label: " ⚡ Cyber "
tool_prefix: "▏"Hermes Mod — 可视化皮肤编辑器
Hermes Mod 是一个社区构建的 Web UI,用于可视化创建和管理皮肤。无需手动编写 YAML,您可以使用点按式编辑器并实时预览。

它的功能:
- 列出所有内置和自定义皮肤
- 在可视化编辑器中打开任何皮肤,包含所有 Hermes 皮肤字段(颜色、旋转器、品牌、工具前缀、工具表情符号)
- 从文本提示生成
banner_logo文本艺术 - 将上传的图片(PNG、JPG、GIF、WEBP)转换为
banner_heroASCII 艺术,支持多种渲染风格(盲文、ASCII 渐变、块、点) - 直接保存到
~/.hermes/skins/ - 通过更新
~/.hermes/config.yaml激活皮肤 - 显示生成的 YAML 和实时预览
安装
选项 1 — Pinokio(一键安装):
在 pinokio.computer 上找到它并一键安装。
选项 2 — npx(从终端最快):
npx -y hermes-mod选项 3 — 手动:
git clone https://github.com/cocktailpeanut/hermes-mod.git
cd hermes-mod/app
npm install
npm start使用方法
- 启动应用(通过 Pinokio 或终端)。
- 打开 Skin Studio。
- 选择要编辑的内置或自定义皮肤。
- 从文本生成徽标和/或上传图片作为英雄艺术。选择渲染风格和宽度。
- 编辑颜色、旋转器、品牌和其他字段。
- 点击 Save 将皮肤 YAML 写入
~/.hermes/skins/。 - 点击 Activate 将其设置为当前皮肤(更新
config.yaml中的display.skin)。
Hermes Mod 尊重 HERMES_HOME 环境变量,因此也适用于配置文件。
操作说明
- 内置皮肤从
hermes_cli/skin_engine.py加载。 - 未知皮肤自动回退到
default。 /skin立即更新当前会话的活跃 CLI 主题。~/.hermes/skins/中的用户皮肤优先于同名内置皮肤。- 通过
/skin进行的皮肤更改仅限当前会话。要使皮肤成为永久默认,请在config.yaml中设置。 banner_logo和banner_hero字段支持 Rich 控制台标记(例如[bold #FF0000]text[/]),用于彩色 ASCII 艺术。