Pular para o conteúdo principal

Documentação oficial desta página · v0.20.6

Skins e Temas

Skins controlam a apresentação visual da CLI do Hermes: cores do banner, carinhas e verbos do spinner, rótulos da caixa de resposta, texto de marca e o prefixo de atividade das ferramentas.

Estilo de conversa e estilo visual são conceitos separados:

  • Personalidade muda o tom e as palavras do agente.
  • Skin muda a aparência da CLI.

Trocar de skin​

/skin # mostra a skin atual e lista as skins disponíveis
/skin ares # troca para uma skin embutida
/skin meutema # troca para uma skin própria em ~/.hermes/skins/meutema.yaml

Ou defina a skin padrão em ~/.hermes/config.yaml:

display:
skin: default

Skins embutidas​

SkinDescriçãoMarca do agenteCaráter visual
defaultHermes clássico — dourado e kawaiiHermes AgentBordas em dourado quente, texto cor de palha, carinhas kawaii nos spinners. O banner familiar do caduceu. Limpo e acolhedor.
aresTema do deus da guerra — carmesim e bronzeAres AgentBordas carmesim profundo com detalhes em bronze. Verbos de spinner agressivos ("forjando", "marchando", "temperando o aço"). Banner em ASCII art próprio, de espada e escudo.
monoMonocromático — escala de cinza limpaHermes AgentSó cinzas — sem cor. As bordas são #555555, o texto é #c9d1d9. Ideal para terminais minimalistas ou gravações de tela.
slateAzul frio — voltado a quem programaHermes AgentBordas em azul royal (#4169e1), texto em azul suave. Calmo e profissional. Sem spinner próprio — usa as carinhas padrão.
daylightTema claro para terminais luminosos, com texto escuro e detalhes em azul frioHermes AgentFeito para terminais brancos ou muito claros. Texto em ardósia escura com bordas azuis, superfícies de status pálidas e um menu de autocompletar claro, que continua legível em perfis de terminal claros.
warm-lightmodeTexto marrom/dourado quente para fundos de terminal clarosHermes AgentTons de pergaminho quente para terminais claros. Texto marrom escuro com detalhes em marrom-sela, superfícies de status cor de creme. Uma alternativa terrosa ao tema daylight, mais frio.
poseidonTema do deus dos mares — azul profundo e verde-espumaPoseidon AgentGradiente de azul profundo a verde-espuma. Spinners com tema de oceano ("traçando correntes", "sondando a profundidade"). Banner em ASCII art de tridente.
sisyphusTema de Sísifo — escala de cinza austera e persistenteSisyphus AgentCinzas claros com contraste duro. Spinners com tema de pedra ("empurrando morro acima", "recolocando a pedra", "suportando o laço"). Banner em ASCII art de pedra e morro.
charizardTema vulcânico — laranja queimado e brasaCharizard AgentGradiente quente de laranja queimado a brasa. Spinners com tema de fogo ("pegando a corrente de ar", "medindo a queima"). Banner em ASCII art com silhueta de dragão.

Lista completa de chaves configuráveis​

Cores (colors:)​

Controla todos os valores de cor da CLI. Os valores são strings de cor em hexadecimal.

ChaveDescriçãoPadrão (skin default)
banner_borderBorda do painel em volta do banner de abertura#CD7F32 (bronze)
banner_titleCor do texto do título no banner#FFD700 (ouro)
banner_accentCabeçalhos de seção do banner (Available Tools etc.)#FFBF00 (âmbar)
banner_dimTexto discreto do banner (separadores, rótulos secundários)#B8860B (goldenrod escuro)
banner_textTexto corrido do banner (nomes de ferramenta, nomes de skill)#FFF8DC (cornsilk)
ui_accentCor de destaque geral da interface (realces, elementos ativos)#FFBF00
ui_labelRótulos e etiquetas da interface#DAA520 (goldenrod)
ui_okIndicadores de sucesso (marcas de confirmação, conclusão)#4caf50 (verde)
ui_errorIndicadores de erro (falhas, bloqueios)#ef5350 (vermelho)
ui_warnIndicadores de aviso (cuidado, pedidos de aprovação)#ffa726 (laranja)
promptCor do texto do prompt interativo#FFF8DC
input_ruleLinha horizontal acima da área de digitação#CD7F32
response_borderBorda em volta da caixa de resposta do agente (escape ANSI)#FFD700
session_labelCor do rótulo de sessão#DAA520
session_borderCor da borda discreta do ID de sessão#8B8682
status_bar_bgCor de fundo da barra de status / uso da TUI#1a1a2e
voice_status_bgCor de fundo do selo de status do modo de voz#1a1a2e
selection_bgCor de fundo do realce de seleção com mouse na TUI. Cai para completion_menu_current_bg quando não é definida.#3a3a55
completion_menu_bgCor de fundo da lista do menu de autocompletar#1a1a2e
completion_menu_current_bgCor de fundo da linha ativa do autocompletar#333355
completion_menu_meta_bgCor de fundo da coluna de metadados do autocompletar#1a1a2e
completion_menu_meta_current_bgCor de fundo da coluna de metadados na linha ativa#333355

Spinner (spinner:)​

Controla o spinner animado exibido enquanto a resposta da API não chega.

ChaveTipoDescriçãoExemplo
waiting_faceslista de stringsCarinhas alternadas enquanto se espera a resposta da API["(⚔)", "(⛨)", "(▲)"]
thinking_faceslista de stringsCarinhas alternadas durante o raciocínio do modelo["(⚔)", "(⌁)", "(<>)"]
thinking_verbslista de stringsVerbos exibidos nas mensagens do spinner["forjando", "tramando", "martelando planos"]
wingslista de pares [esquerda, direita]Colchetes decorativos em volta do spinner[["⟪⚔", "⚔⟫"], ["⟪▲", "▲⟫"]]

Quando os valores do spinner estão vazios (como em default e mono), valem os padrões fixos no código de display.py.

Marca (branding:)​

Textos usados pela interface da CLI.

ChaveDescriçãoPadrão
agent_nameNome exibido no título do banner e no statusHermes Agent
welcomeMensagem de boas-vindas na abertura da CLIWelcome to Hermes Agent! Type your message or /help for commands.
goodbyeMensagem exibida ao sairGoodbye! ⚕
response_labelRótulo no cabeçalho da caixa de resposta⚕ Hermes
prompt_symbolSímbolo antes do prompt de digitação (token puro; os renderizadores acrescentam o espaço à direita)❯
help_headerTexto de cabeçalho da saída do comando /help(^_^)? Available Commands

Outras chaves de primeiro nível​

ChaveTipoDescriçãoPadrão
tool_prefixstringCaractere colocado antes das linhas de saída de ferramenta na CLI┊
tool_emojisdicionárioEmojis por ferramenta, para spinners e progresso ({tool_name: emoji}){}
banner_logostringLogo em ASCII art com marcação Rich (substitui o banner HERMES_AGENT padrão)""
banner_herostringArte de destaque com marcação Rich (substitui a arte padrão do caduceu)""

Skins próprias​

Crie arquivos YAML em ~/.hermes/skins/. As skins do usuário herdam da skin embutida default os valores que faltam, então você só precisa declarar as chaves que quer mudar.

Modelo completo de YAML de skin própria​

# ~/.hermes/skins/meutema.yaml
# Modelo completo de skin — todas as chaves aparecem. Apague as que não precisar;
# os valores que faltam são herdados automaticamente da skin 'default'.

name: meutema
description: Meu tema próprio

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:
- "processando"
- "analisando"
- "calculando"
- "avaliando"
wings:
- ["⟪⚡", "⚡⟫"]
- ["⟪●", "●⟫"]

branding:
agent_name: "Meu Agente"
welcome: "Bem-vindo ao Meu Agente! Digite sua mensagem ou /help para ver os comandos."
goodbye: "Até mais! ⚡"
response_label: " ⚡ Meu Agente "
prompt_symbol: "⚡"
help_header: "(⚡) Comandos disponíveis"

tool_prefix: "┊"

# Emojis por ferramenta (opcional)
tool_emojis:
terminal: "⚔"
web_search: "🔮"
read_file: "📄"

# Banners próprios em ASCII art (opcional, aceita marcação Rich)
# banner_logo: |
# [bold #FFD700] MEU AGENTE [/]
# banner_hero: |
# [#FFD700] Arte própria aqui [/]

Exemplo mínimo de skin própria​

Como tudo é herdado de default, uma skin mínima só precisa mudar o que é diferente:

name: cyberpunk
description: Tema de terminal neon

colors:
banner_border: "#FF00FF"
banner_title: "#00FFFF"
banner_accent: "#FF1493"

spinner:
thinking_verbs: ["conectando", "descriptografando", "enviando"]
wings:
- ["⟨⚡", "⚡⟩"]

branding:
agent_name: "Cyber Agent"
response_label: " ⚡ Cyber "

tool_prefix: "▏"

Hermes Mod — editor visual de skins​

O Hermes Mod é uma interface web feita pela comunidade para criar e gerenciar skins visualmente. Em vez de escrever YAML na mão, você ganha um editor de apontar e clicar com pré-visualização ao vivo.

Editor de skins do Hermes Mod

O que ele faz:

  • Lista todas as skins embutidas e próprias
  • Abre qualquer skin num editor visual com todos os campos de skin do Hermes (cores, spinner, marca, prefixo de ferramenta, emojis de ferramenta)
  • Gera a arte de texto de banner_logo a partir de um prompt de texto
  • Converte imagens enviadas (PNG, JPG, GIF, WEBP) em ASCII art para banner_hero, com vários estilos de renderização (braille, rampa ASCII, blocos, pontos)
  • Salva direto em ~/.hermes/skins/
  • Ativa uma skin atualizando o ~/.hermes/config.yaml
  • Mostra o YAML gerado e uma pré-visualização ao vivo

Instalação​

Opção 1 — Pinokio (1 clique):

Encontre o projeto em pinokio.computer e instale com um clique.

Opção 2 — npx (o caminho mais rápido pelo terminal):

npx -y hermes-mod

Opção 3 — manual:

git clone https://github.com/cocktailpeanut/hermes-mod.git
cd hermes-mod/app
npm install
npm start

Uso​

  1. Inicie o aplicativo (pelo Pinokio ou pelo terminal).
  2. Abra o Skin Studio.
  3. Escolha uma skin embutida ou própria para editar.
  4. Gere um logo a partir de texto e/ou envie uma imagem para a arte de destaque. Escolha um estilo de renderização e uma largura.
  5. Edite cores, spinner, marca e os demais campos.
  6. Clique em Save para gravar o YAML da skin em ~/.hermes/skins/.
  7. Clique em Activate para deixá-la como skin atual (isso atualiza display.skin no config.yaml).

O Hermes Mod respeita a variável de ambiente HERMES_HOME, então funciona também com perfis.

Notas operacionais​

  • As skins embutidas são carregadas de hermes_cli/skin_engine.py.
  • Skins desconhecidas caem automaticamente para default.
  • O /skin atualiza o tema ativo da CLI na hora, para a sessão atual.
  • Skins do usuário em ~/.hermes/skins/ têm precedência sobre skins embutidas de mesmo nome.
  • Trocas de skin pelo /skin valem só para a sessão. Para deixar uma skin como padrão permanente, defina-a no config.yaml.
  • Os campos banner_logo e banner_hero aceitam marcação de console do Rich (por exemplo, [bold #FF0000]texto[/]) para ASCII art colorida.