Hermes Agent Skin系统详解:自定义CLI外观与交互体验(2026最新)

维护咨询 大模型部署 问题解决 技能定制 大模型训练

站长交流微信: aixbwz

Hermes Agent不只是功能强大,它的CLI界面也可以完全自定义——换颜色、换字体、换图标、换提示符号。Skin系统让每个用户的终端看起来都不一样。

这个系统是完全数据驱动的,不需要改代码,只需要写一个YAML配置文件。

## Skin系统是什么

Hermes的CLI外观由Skin引擎控制。Skin是一个YAML文件,定义了界面的所有视觉元素:

– 颜色方案(边框、标题、正文、强调色)
– 加载动画(spinner的图案和文字)
– 品牌文字(Agent名称、欢迎语、提示符)
– 工具输出前缀
– 每个工具的emoji图标

内置4个Skin:default(默认金棕色)、ares(红铜战争风格)、mono(灰度单色)、slate(冷蓝开发者风格)。

## Skin的YAML结构

所有字段都是可选的,缺失的值会自动从default skin继承。

# ~/.hermes/skins/mytheme.yaml
name: mytheme
description: 我的自定义主题

# 颜色:hex值,用于Rich markup
colors:
  banner_border: "#CD7F32"      # 面板边框颜色
  banner_title: "#FFD700"       # 面板标题颜色
  banner_accent: "#FFBF00"      # 章节标题颜色
  banner_dim: "#B8860B"         # 暗淡文字(分隔符、标签)
  banner_text: "#FFF8DC"        # 正文颜色(工具名、skill名)
  ui_accent: "#FFBF00"         # 通用UI强调色
  ui_label: "#4dd0e1"          # UI标签色

# 品牌文字
branding:
  agent_name: "Hermes Agent"          # 横幅标题、状态显示
  welcome: "Welcome message"          # 启动时显示
  goodbye: "Goodbye! ⚕"              # 退出时显示
  response_label: " ⚕ Hermes "       # 响应框标题
  prompt_symbol: "❯ "                # 输入提示符号
  help_header: "(^_^)? Commands"      # /help标题文字

# 工具输出前缀(默认: ┊)
tool_prefix: "┊"

# 工具emoji:覆盖任何工具的默认emoji
tool_emojis:
  terminal: "⚔"
  web_search: "🔮"
  read_file: "📄"
  write_file: "✏️"
  browser_navigate: "🌐"
  delegate_task: "🤖"
  execute_code: "⚡"

## 安装和使用Skin

方式一:使用内置Skin

/skin list          # 查看所有可用Skin
/skin slate          # 切换到slate主题
/skin ares           # 切换到ares主题
/skin default        # 切回默认主题

方式二:安装自定义Skin

mkdir -p ~/.hermes/skins/
cp mytheme.yaml ~/.hermes/skins/
/skin list           # 现在能看到mytheme了
/skin mytheme        # 切换到它

方式三:通过config.yaml设置默认Skin

# config.yaml
display:
  skin: slate        # 启动时默认使用slate

## Skin的工作原理

从代码层面看,Skin系统在`hermes_cli/skin_engine.py`里实现:

# Skin配置在CLI启动时读取
skin = get_active_skin()

# 颜色可以通过skin对象访问
print(skin.colors["banner_title"])    # "#FFD700"
print(skin.get_branding("agent_name"))  # "Hermes Agent"

# 运行时切换
set_active_skin("ares")              # 切换到内置Skin
set_active_skin("mytheme")           # 切换到用户Skin

所有颜色值都支持Rich的hex颜色语法。Banner面板、响应框、spinner动画全部由Skin数据驱动,不写死颜色代码。

## 常用场景

场景一:深夜使用,换暗色主题

# ~/.hermes/skins/dark.yaml
name: dark
description: 深夜护眼主题
colors:
  banner_border: "#2d2d2d"
  banner_title: "#888888"
  banner_text: "#aaaaaa"
branding:
  prompt_symbol: "◉ "

场景二:企业环境,专业低调风格

name: corporate
description: 企业专业风格
colors:
  banner_border: "#1565C0"
  banner_title: "#0D47A1"
  banner_accent: "#1976D2"
branding:
  agent_name: "企业助手"
  response_label: " ◆ 企业 "

场景三:自定义每个工具的emoji

tool_emojis:
  terminal: "🔧"
  web_search: "🔍"
  read_file: "📄"
  write_file: "✏️"
  browser_navigate: "🌐"
  delegate_task: "🤖"
  execute_code: "⚡"

## 自定义工具前缀

tool_prefix: " → "   # 箭头符号
tool_prefix: " │ "    # 竖线
tool_prefix: "▸ "     # 三角箭头

## 常见问题

Q:Skin会影响AI的回答内容吗?

A:不会。Skin只改变CLI的视觉外观,AI的行为和回答完全不受影响。

Q:修改Skin需要重启Hermes吗?

A:不需要。/skin命令是运行时切换,立即生效。

Q:用户自定义Skin升级时被覆盖吗?

A:不会。内置Skin升级时可能重置,但~/.hermes/skins/下的自定义Skin不会被影响。

Q:可以给不同Profile用不同Skin吗?

A:可以。每个Profile有独立的config.yaml,给不同Profile设置不同的display.skin即可。

## 相关文章

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

七天热门