皮肤与主题

皮肤控制 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_labelUI 标签和标记#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_bgTUI 状态/使用量栏的背景色#1a1a2e
voice_status_bg语音模式状态徽章的背景色#1a1a2e
selection_bgTUI 鼠标选择高亮器的背景色。未设置时回退到 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[左, 右] 对列表旋转器周围的装饰性括号[["⟪⚔", "⚔⟫"], ["⟪▲", "▲⟫"]]

当旋转器值为空时(如 defaultmono 中),使用 display.py 中的硬编码默认值。

品牌(branding:

整个 CLI 界面中使用的文本字符串。

描述默认值
agent_name横幅标题和状态显示中显示的名称Hermes Agent
welcomeCLI 启动时显示欢迎消息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 Mod 皮肤编辑器

它的功能:

  • 列出所有内置和自定义皮肤
  • 在可视化编辑器中打开任何皮肤,包含所有 Hermes 皮肤字段(颜色、旋转器、品牌、工具前缀、工具表情符号)
  • 从文本提示生成 banner_logo 文本艺术
  • 将上传的图片(PNG、JPG、GIF、WEBP)转换为 banner_hero ASCII 艺术,支持多种渲染风格(盲文、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

使用方法

  1. 启动应用(通过 Pinokio 或终端)。
  2. 打开 Skin Studio
  3. 选择要编辑的内置或自定义皮肤。
  4. 从文本生成徽标和/或上传图片作为英雄艺术。选择渲染风格和宽度。
  5. 编辑颜色、旋转器、品牌和其他字段。
  6. 点击 Save 将皮肤 YAML 写入 ~/.hermes/skins/
  7. 点击 Activate 将其设置为当前皮肤(更新 config.yaml 中的 display.skin)。

Hermes Mod 尊重 HERMES_HOME 环境变量,因此也适用于配置文件

操作说明

  • 内置皮肤从 hermes_cli/skin_engine.py 加载。
  • 未知皮肤自动回退到 default
  • /skin 立即更新当前会话的活跃 CLI 主题。
  • ~/.hermes/skins/ 中的用户皮肤优先于同名内置皮肤。
  • 通过 /skin 进行的皮肤更改仅限当前会话。要使皮肤成为永久默认,请在 config.yaml 中设置。
  • banner_logobanner_hero 字段支持 Rich 控制台标记(例如 [bold #FF0000]text[/]),用于彩色 ASCII 艺术。