Documentação oficial desta página · v0.20.6
Comandos da CLI
Esta página cobre os comandos de terminal que você roda no seu shell.
Para os comandos de barra usados dentro do chat, veja a Referência de comandos de barra.
Ponto de entrada global
hermes [global-options] <command> [subcommand/options]
Opções globais
| Opção | Descrição |
|---|---|
--version, -V | Mostra a versão e sai. |
--profile <name>, -p <name> | Escolhe qual perfil do Hermes usar nesta invocação. Sobrepõe o padrão fixo definido por hermes profile use. |
--resume <session>, -r <session> | Retoma uma sessão anterior por ID ou título. A palavra-chave latest retoma a sessão mais recente (no escopo do espaço de trabalho, mesma busca do -c). |
--continue [name], -c [name] | Retoma a sessão mais recente, ou a mais recente cujo título bata com o nome dado. |
--in <dir> | Entra em <dir> antes de iniciar ou retomar. Restringe as buscas de --resume latest / -c ao espaço de trabalho daquele diretório e mantém a sessão ali (pula a restauração do cwd registrado). |
--worktree, -w | Começa em um git worktree isolado, para fluxos com agentes em paralelo. |
--yolo | Ignora as confirmações de comandos perigosos. |
--pass-session-id | Inclui o ID da sessão no prompt de sistema do agente. |
--ignore-user-config | Ignora o ~/.hermes/config.yaml e volta aos padrões embutidos. As credenciais do .env continuam sendo carregadas. |
--ignore-rules | Pula a injeção automática de AGENTS.md, SOUL.md, .cursorrules, memória e skills pré-carregadas. |
--tui | Abre a TUI em vez da CLI clássica. Equivale a HERMES_TUI=1. Sempre ganha de display.interface. |
--cli | Força o REPL clássico em prompt_toolkit. Use para sobrepor display.interface: tui em uma invocação só. |
--dev | Com --tui: roda os fontes TypeScript direto via tsx em vez do bundle pré-compilado (para quem contribui com a TUI). |
Comandos de primeiro nível
| Comando | Para que serve |
|---|---|
hermes chat | Conversa interativa ou de tiro único com o agente. |
hermes model | Escolhe interativamente o provedor e o modelo padrão. |
hermes moa | Configura presets nomeados de Mixture of Agents, selecionáveis no seletor de modelos. |
hermes fallback | Gerencia os provedores de reserva usados quando o modelo principal dá erro. |
hermes gateway | Roda ou gerencia o serviço de gateway de mensagens. |
hermes proxy | Proxy local compatível com a API da OpenAI que anexa credenciais OAuth do provedor. Veja Proxy de assinatura. |
hermes egress | Firewall de injeção de credenciais na saída, para sandboxes de terminal remotos (iron-proxy). Desligado por padrão. Veja Proxy de saída. |
hermes lsp | Gerencia a integração com o Language Server Protocol (diagnóstico semântico para write_file/patch). |
hermes setup | Assistente interativo de configuração, total ou por parte. |
hermes whatsapp | Configura e pareia a ponte com o WhatsApp. |
hermes whatsapp-cloud | Configura o adaptador oficial da WhatsApp Business Cloud API da Meta (exige conta Business e webhook público). Diferente do hermes whatsapp (ponte Baileys para conta pessoal). |
hermes slack | Utilitários do Slack (hoje: gerar o manifesto do app com cada comando como barra nativa). |
hermes auth | Gerencia credenciais — adicionar, listar, remover, resetar, status, logout. Cuida dos fluxos OAuth de Codex/Nous/Anthropic. |
hermes login / logout | Obsoleto — use hermes auth. |
hermes send | Envia uma mensagem de tiro único para uma plataforma de mensagens configurada (Telegram, Discord, Slack, Signal, SMS, …). Útil em scripts de shell, cron, hooks de CI e daemons de monitoramento — sem laço de agente, sem LLM. |
hermes peer | Registra gateways Hermes pares em outras máquinas e manda DM para os Bot Chats canônicos dos agentes deles (hermes peer dm <peer>[/<agent>] "…"). É o transporte por trás das mensagens bot-a-bot entre máquinas. |
hermes secrets | Gerencia fontes externas de segredos (hoje, o Bitwarden Secrets Manager) para puxar chaves de API na inicialização do processo, em vez de lê-las do ~/.hermes/.env. |
hermes migrate | Diagnostica e (opcionalmente) reescreve o config.yaml para substituir referências a modelos aposentados ou opções obsoletas (por exemplo, migrate xai). |
hermes status | Mostra o status do agente, da autenticação e das plataformas. |
hermes cron | Inspeciona e dispara o agendador cron. |
hermes kanban | Quadro de colaboração multiperfil (tarefas, links, despachante). |
hermes project | Gerencia espaços de trabalho nomeados com várias pastas (projetos). Ancora o agrupamento de sessões no desktop e, quando ligado a um quadro kanban, dá às tarefas uma convenção determinística de worktree + branch. O estado é por perfil. |
hermes webhook | Gerencia assinaturas dinâmicas de webhook para ativação orientada a eventos. |
hermes hooks | Inspeciona, aprova ou remove hooks de script de shell declarados no config.yaml. |
hermes doctor | Diagnostica problemas de configuração e de dependências. |
hermes security audit | Auditoria de cadeia de suprimentos sob demanda (OSV.dev) para a venv, os requisitos dos plugins e os servidores MCP fixados. |
hermes approvals | Ferramentas de aprovação — extrai propostas de allowlist do histórico de aprovações. |
hermes dump | Resumo da instalação pronto para copiar e colar, para suporte e depuração. |
hermes prompt-size | Mostra a divisão em bytes do prompt de sistema + esquemas de ferramentas (índice de skills, memória, perfil). Roda offline. |
hermes debug | Ferramentas de depuração — envia logs e informações do sistema para o suporte. |
hermes backup | Faz backup do diretório home do Hermes em um arquivo zip. |
hermes checkpoints | Inspeciona / poda / limpa o ~/.hermes/checkpoints/ (o armazenamento sombra usado pelo /rollback). Sem argumentos, mostra um panorama de status. |
hermes import | Restaura um backup do Hermes a partir de um arquivo zip. |
hermes logs | Visualiza, acompanha e filtra os arquivos de log do agente, do gateway e de erros. |
hermes config | Mostra, edita, migra e consulta os arquivos de configuração. |
hermes skin | Lista, troca e ajusta os skins de exibição. |
hermes console | Abre o console seguro de comandos do Hermes. |
hermes pairing | Aprova ou revoga códigos de pareamento de mensagens. |
hermes skills | Navega, instala, publica, audita e configura skills. |
hermes bundles | Agrupa várias skills sob um único comando de barra /<name>. Veja Pacotes de skills. |
hermes curator | Manutenção de skills em segundo plano — status, run, pause, pin. Veja Curador. |
hermes journey (apelidos learning, memory-graph) | Linha do tempo das skills aprendidas + memórias ao longo do tempo. |
hermes memory | Configura o provedor externo de memória. Subcomandos específicos de cada provedor (por exemplo, hermes honcho) se registram sozinhos quando o provedor está ativo. |
hermes acp | Roda o Hermes como servidor ACP para integração com editores. |
hermes mcp | Gerencia configurações de servidores MCP e roda o Hermes como servidor MCP. |
hermes plugins | Gerencia plugins do Hermes Agent (instalar, ativar, desativar, remover). |
hermes portal | Status do Nous Portal, link da assinatura e roteamento do Tool Gateway. Veja Tool Gateway. |
hermes tools | Configura quais ferramentas ficam ativas por plataforma. |
hermes computer-use | Instala ou verifica o backend de Computer Use (cua-driver) no macOS/Windows/Linux. |
hermes pets | Navega, instala e escolhe pets animados do petdex, exibidos na CLI, na TUI e no app de desktop. Subcomandos: list, install, select, show, off, scale, remove, doctor. |
hermes sessions | Navega, exporta, poda, renomeia e apaga sessões. |
hermes insights | Mostra análises de tokens, custo e atividade. |
hermes claw | Utilitários de migração do OpenClaw. |
hermes import-agent | Importa uma instalação do Claude Code (~/.claude) ou da Codex CLI (~/.codex). |
hermes dashboard | Abre o painel web para gerenciar configuração, chaves de API e sessões. |
hermes serve | Sobe o servidor de backend do Hermes (headless; é o que move o app de desktop e os backends remotos). |
hermes desktop (apelido gui) | Compila e abre o app nativo de desktop em Electron. |
hermes profile | Gerencia perfis — várias instâncias isoladas do Hermes. |
hermes completion | Imprime os scripts de autocompletar do shell (bash/zsh/fish). |
hermes --version | Mostra as informações de versão. |
hermes update | Puxa o código mais recente e reinstala as dependências. --check só mostra o que viria, sem instalar; --backup tira um snapshot do HERMES_HOME antes do pull. |
hermes uninstall | Remove o Hermes do sistema. |
hermes chat
hermes chat [options]
Opções comuns:
| Opção | Descrição |
|---|---|
-q, --query "..." | Prompt de tiro único, não interativo. |
--query-file PATH | Lê o prompt de tiro único de um arquivo (- = stdin). Nada é interpretado pelo shell, então aspas, $(...) e crases chegam literalmente — use isso para corpos de mensagem programáticos ou não confiáveis (as DMs de colegas no Bot Mode usam esta opção). Mutuamente exclusivo com -q. |
-m, --model <model> | Sobrepõe o modelo nesta execução. |
-t, --toolsets <csv> | Ativa um conjunto de toolsets separados por vírgula. |
--provider <provider> | Força um provedor: auto, openrouter, nous, openai-codex, copilot-acp, copilot, anthropic, gemini, huggingface, novita (apelidos novita-ai, novitaai), openai-api, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth, kilocode, xiaomi, arcee, gmi, upstage (apelido solar), alibaba, alibaba-coding-plan (apelido alibaba_coding), deepseek, nvidia, ollama-cloud, xai (apelido grok), xai-oauth (apelido grok-oauth), qwen-oauth, bedrock, opencode-zen, opencode-go, opencode-free (apelidos free, opencode_free; sem chave), commandcode, commandcode-anthropic, ai-gateway, azure-foundry, lmstudio, stepfun, tencent-tokenhub (apelidos tencent, tokenhub). |
-s, --skills <name> | Pré-carrega uma ou mais skills na sessão (pode repetir ou separar por vírgula). |
-v, --verbose | Saída detalhada. |
-Q, --quiet | Modo programático: esconde banner, spinner e prévias de ferramentas. |
--image <path> | Anexa uma imagem local a uma consulta única. |
--resume <session> / --continue [name] | Retoma uma sessão direto do chat. |
--worktree | Cria um git worktree isolado para esta execução. |
--checkpoints | Ativa checkpoints do sistema de arquivos antes de mudanças destrutivas. |
--yolo | Pula as confirmações de aprovação. |
--pass-session-id | Passa o ID da sessão para dentro do prompt de sistema. |
--ignore-user-config | Ignora o ~/.hermes/config.yaml e usa os padrões embutidos. As credenciais do .env continuam sendo carregadas. Útil para execuções isoladas em CI, relatórios de bug reproduzíveis e integrações de terceiros. |
--ignore-rules | Pula a injeção automática de AGENTS.md, SOUL.md, .cursorrules, memória persistente e skills pré-carregadas. Combine com --ignore-user-config para uma execução totalmente isolada. |
--safe-mode | Modo de investigação: desliga TODAS as personalizações — configuração do usuário, injeção de regras/memória, plugins, hooks de shell e servidores MCP (implica --ignore-user-config e --ignore-rules). Use para descobrir se o problema vem da sua instalação ou do Hermes em si. |
--source <tag> | Marcação de origem da sessão, para filtros (padrão: cli). Use tool em integrações de terceiros que não devem aparecer nas listas de sessão do usuário. |
--max-turns <N> | Máximo de iterações de chamada de ferramenta por turno de conversa (padrão: 500, ou agent.max_turns na configuração). |
Exemplos:
hermes
hermes chat -q "Resuma os PRs mais recentes"
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills
hermes chat --quiet -q "Devolva apenas JSON"
hermes chat --worktree -q "Revise este repositório e abra um PR"
hermes chat --ignore-user-config --ignore-rules -q "Reproduza sem a minha instalação pessoal"
hermes chat --safe-mode -q "Esse bug é meu ou do Hermes?"
hermes -z <prompt> — tiro único para scripts
Para quem chama de forma programática (scripts de shell, CI, cron, processos pai que enviam um prompt por pipe), o hermes -z é o ponto de entrada de tiro único mais puro: um prompt entra, o texto da resposta final sai, e mais nada em stdout ou stderr. Sem banner, sem spinner, sem prévias de ferramenta, sem linha Session: — só a resposta final do agente em texto puro.
hermes -z "Qual é a capital da França?"
# → Paris.
# Scripts pai conseguem capturar a resposta de forma limpa:
answer=$(hermes -z "resuma isto" < /caminho/do/arquivo.txt)
Sobreposições por execução (sem alterar o ~/.hermes/config.yaml):
| Flag | Variável de ambiente equivalente | Para que serve |
|---|---|---|
-m / --model <model> | HERMES_INFERENCE_MODEL | Sobrepõe o modelo nesta execução |
--provider <provider> | (nenhuma) | Sobrepõe o provedor nesta execução |
--usage-file <path> | (nenhuma) | Escreve um relatório de uso em JSON após a execução (veja abaixo) |
hermes -z "…" --provider openrouter --model openai/gpt-5.5
# ou:
HERMES_INFERENCE_MODEL=anthropic/claude-sonnet-4.6 hermes -z "…"
Mesmo agente, mesmas ferramentas, mesmas skills — apenas sem nenhuma camada interativa ou cosmética. Se você também precisa da saída das ferramentas na transcrição, use hermes chat -q; o -z existe explicitamente para o caso "só quero a resposta final".
--usage-file — relatório de uso em JSON para pipelines
hermes -z "…" --usage-file /caminho/report.json grava, depois da execução, um relatório de uso legível por máquina: estimated_cost_usd, input_tokens / output_tokens / cache_read_tokens / cache_write_tokens / reasoning_tokens / total_tokens, api_calls, model, provider, session_id, service_tier e os indicadores completed / failed. O relatório é escrito mesmo quando a execução falha, então pipelines em lote sempre conseguem contabilizar o gasto. Não tem efeito fora de -z/--oneshot, e uma falha ao gravar o relatório nunca mascara o resultado da própria execução.
hermes -z "resuma este repositório" --usage-file /tmp/usage.json
jq .estimated_cost_usd /tmp/usage.json
hermes model
Seletor interativo de provedor + modelo. Este é o comando para adicionar novos provedores, configurar chaves de API e rodar fluxos OAuth. Rode do seu terminal — não de dentro de uma sessão de chat ativa do Hermes.
hermes model
Use quando você quiser:
- adicionar um novo provedor (OpenRouter, Anthropic, Copilot, DeepSeek, personalizado etc.)
- entrar em provedores com OAuth (Anthropic, Copilot, Codex, Nous Portal)
- inserir ou atualizar chaves de API
- escolher de listas de modelos específicas de cada provedor
- configurar um endpoint personalizado ou auto-hospedado
- salvar o novo padrão na configuração
hermes model (rodado no seu terminal, fora de qualquer sessão do Hermes) é o assistente completo de configuração de provedores. Ele adiciona provedores, roda fluxos OAuth, pede chaves de API e configura endpoints.
/model (digitado dentro de uma sessão de chat ativa) só consegue alternar entre provedores e modelos que você já configurou. Não adiciona provedor novo, não roda OAuth e não pede chave de API.
Se você precisa adicionar um provedor novo: saia da sessão do Hermes primeiro (Ctrl+C ou /quit) e rode hermes model no prompt do terminal.
Comando de barra /model (no meio da sessão)
Alterne entre modelos já configurados sem sair da sessão:
/model # Mostra o modelo atual e as opções disponíveis
/model claude-sonnet-4 # Troca de modelo (detecta o provedor sozinho)
/model zai:glm-5 # Troca provedor e modelo
/model custom:qwen-2.5 # Usa um modelo no seu endpoint personalizado
/model custom # Detecta o modelo do endpoint personalizado
/model custom:local:qwen-2.5 # Usa um provedor personalizado nomeado
/model openrouter:anthropic/claude-sonnet-4 # Volta para a nuvem
Por padrão, mudanças feitas com /model valem só para a sessão atual. Acrescente --global para gravar a mudança no config.yaml (ou defina model.persist_switch_by_default: true para que toda troca fique gravada):
/model claude-sonnet-4 --global # Troca e salva como novo padrão
Se você só configurou a OpenRouter, o /model só vai mostrar modelos dela. Para adicionar outro provedor (Anthropic, DeepSeek, Copilot etc.), saia da sessão e rode hermes model no terminal.
Numa troca com --global, as mudanças de provedor e de base URL são gravadas no config.yaml junto com o modelo. Ao sair de um endpoint personalizado, a base URL antiga é limpa para não vazar para outros provedores.
hermes gateway
hermes gateway <subcommand>
Subcomandos:
| Subcomando | Descrição |
|---|---|
run | Roda o gateway em primeiro plano. Recomendado para WSL, Docker e Termux. |
start | Sobe o serviço de segundo plano instalado no systemd/launchd. |
stop | Para o serviço (ou o processo em primeiro plano). |
restart | Reinicia o serviço. |
status | Mostra o status do serviço. |
list | Lista todos os perfis e se o gateway de cada um está rodando (com PID, quando disponível). Prático quando você roda vários perfis lado a lado e quer um panorama único. |
install | Instala como serviço de segundo plano no systemd (Linux) ou launchd (macOS). |
uninstall | Remove o serviço instalado. |
setup | Configuração interativa das plataformas de mensagem. |
migrate-legacy | Remove unidades hermes.service antigas, herdadas de instalações anteriores à renomeação. Unidades de perfil (hermes-gateway-<profile>.service) e serviços não relacionados nunca são tocados. Flags: --dry-run, -y/--yes. |
enroll | Experimental: inscreve este gateway em um conector de relay e salva as credenciais de relay para plataformas apoiadas por conector. Veja Hermes Relay. |
Opções:
| Opção | Descrição |
|---|---|
--all | Em start / restart / stop: age sobre o gateway de todos os perfis, não só o do HERMES_HOME ativo. Útil se você roda vários perfis lado a lado e quer reiniciar todos depois de um hermes update. |
--no-supervise | No run: dentro da imagem Docker com s6-overlay, dispensa a supervisão automática e usa a semântica de primeiro plano anterior ao s6 — o gateway roda como processo principal do contêiner, sem reinício automático. Não faz nada fora da imagem s6. Equivale a definir HERMES_GATEWAY_NO_SUPERVISE=1. |
--external-supervisor | No run: declara que um gerenciador de processos fornecido por um wrapper é o dono do gateway em primeiro plano. Use quando sudo, env -i ou outro wrapper remove o marcador de ambiente nativo do launchd/systemd. Reinícios pedidos no chat e atualizações saem de volta para esse gerenciador em vez de criar um substituto desanexado. |
O --external-supervisor é um contrato de política de reinício: um reinício pedido no
chat ou uma atualização com reinício de serviço sai com status 75, então o
supervisor do wrapper precisa relançar o gateway depois dessa saída não-zero. No
systemd, use Restart=on-failure ou Restart=always e não inclua 75 em
RestartPreventExitStatus; no launchd, configure KeepAlive para relançar depois
de saídas malsucedidas. Sem essa política, um reinício solicitado deixa o gateway
parado.
O hermes gateway enroll aceita --token, --connector-url, --gateway-id e --wake-url. Ele troca o token de inscrição com o conector e grava no .env do perfil ativo os valores resultantes de GATEWAY_RELAY_ID, GATEWAY_RELAY_SECRET, GATEWAY_RELAY_DELIVERY_KEY, o opcional GATEWAY_RELAY_URL e (quando --wake-url é passado) GATEWAY_RELAY_WAKE_URL.
Use hermes gateway run em vez de hermes gateway start — o suporte a systemd no WSL é instável. Envolva em tmux para dar persistência: tmux new -s hermes 'hermes gateway run'. Veja o FAQ do WSL para detalhes.
hermes lsp
hermes lsp <subcommand>
Gerencia a integração com o Language Server Protocol. O LSP roda
servidores de linguagem de verdade (pyright, gopls, rust-analyzer, …) em
segundo plano e alimenta os diagnósticos deles na checagem pós-escrita
usada por write_file e patch. Fica condicionado à detecção de um
espaço de trabalho git — o LSP só roda quando o cwd ou o arquivo editado
está dentro de um worktree git.
Subcomandos:
| Subcomando | Descrição |
|---|---|
status | Mostra o estado do serviço, os servidores configurados e o status de instalação. |
list | Imprime o registro de servidores suportados. Passe --installed-only para pular os ausentes. |
install <id> | Instala imediatamente o binário de um servidor. |
install-all | Instala todos os servidores que têm receita de instalação automática. |
restart | Derruba os clientes em execução para que a próxima edição os suba de novo. |
which <id> | Imprime o caminho resolvido do binário de um servidor. |
Veja LSP — diagnóstico semântico para o guia completo, as linguagens suportadas e as opções de configuração.
hermes setup
hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure] [--portal]
Caminho mais fácil: hermes setup --portal — faz OAuth no Nous Portal e adere ao Tool Gateway de uma vez só.
Primeira execução: abre o assistente de primeira vez.
Usuário que já configurou: cai direto no assistente completo de reconfiguração — cada pergunta mostra o valor atual como padrão; aperte Enter para manter ou digite um valor novo. Sem menu.
Pule direto para uma seção em vez do assistente inteiro:
| Seção | Descrição |
|---|---|
model | Configuração de provedor e modelo. |
terminal | Configuração do backend de terminal e do sandbox. |
gateway | Configuração das plataformas de mensagem. |
tools | Ativa/desativa ferramentas por plataforma. |
agent | Ajustes de comportamento do agente. |
Opções:
| Opção | Descrição |
|---|---|
--quick | Em execuções de quem já configurou: só pergunta o que está faltando ou não definido. Pula o que você já tem configurado. |
--non-interactive | Usa padrões e valores de ambiente, sem perguntas. |
--reset | Volta a configuração aos padrões antes de começar. |
--reconfigure | Apelido de compatibilidade — hoje um hermes setup puro numa instalação existente já faz isso por padrão. |
--portal | Configuração do Nous Portal em um passo: login por OAuth, Nous como provedor de inferência e adesão ao Tool Gateway. Pula o resto do assistente. |
hermes portal
hermes portal [status|open|tools]
Inspeciona a autenticação do Nous Portal, o roteamento do Tool Gateway e abre a página de assinatura. Sem subcomando, roda status.
| Subcomando | Descrição |
|---|---|
status (padrão) | Estado da autenticação do Portal + resumo do roteamento do Tool Gateway por ferramenta. Também é o que aparece quando nenhum subcomando é dado. |
open | Abre portal.nousresearch.com/manage-subscription no seu navegador padrão. |
tools | Lista todos os parceiros do Tool Gateway (Firecrawl, FAL, OpenAI TTS, Browser Use, Modal) e quais estão roteados via Nous. |
Para configurar o gateway em si, veja Tool Gateway. Para o caminho de configuração em um passo, veja o hermes setup --portal acima.
hermes whatsapp
hermes whatsapp
Roda o fluxo de pareamento e configuração do WhatsApp, incluindo escolha de modo e pareamento por QR Code.
hermes slack
hermes slack manifest # imprime o manifesto em stdout
hermes slack manifest --write # grava em ~/.hermes/slack-manifest.json
hermes slack manifest --long-description-file AGENTS.md --write
hermes slack manifest --slashes-only # só o array features.slash_commands
Gera um manifesto de app do Slack que registra cada comando do gateway do
COMMAND_REGISTRY (/btw, /stop, /model, …) como comando de barra
nativo do Slack — igualando a paridade com Discord e Telegram. Cole a
saída na configuração do seu app em
https://api.slack.com/apps → seu app →
Features → App Manifest → Edit, e depois Save. O Slack pede
reinstalação se escopos ou comandos de barra mudaram.
| Flag | Padrão | Para que serve |
|---|---|---|
--write [PATH] | stdout | Grava em um arquivo em vez de stdout. --write puro grava em $HERMES_HOME/slack-manifest.json. |
--name NAME | Hermes | Nome de exibição do bot no Slack. |
--description DESC | texto padrão | Descrição do bot mostrada no diretório de apps do Slack. |
--long-description TEXT | não definido | Define display_information.long_description direto na linha de comando (175 a 4.000 caracteres). Incompatível com --slashes-only. |
--long-description-file PATH | não definido | Lê a descrição longa de um arquivo de texto UTF-8, preservando o conteúdo exatamente. Mutuamente exclusivo com --long-description e incompatível com --slashes-only. |
--slashes-only | desligado | Emite só features.slash_commands, para você juntar a um manifesto mantido à mão. |
Rode hermes slack manifest --write de novo depois de um hermes update para
pegar os comandos novos.
hermes send
hermes send --to <target> "texto da mensagem"
hermes send --to <target> --file <path>
echo "mensagem" | hermes send --to <target>
hermes send --list [platform]
Envia uma mensagem de tiro único para uma plataforma de mensagens configurada, sem subir agente nem laço de gateway. Reaproveita as credenciais já configuradas do gateway (~/.hermes/.env + ~/.hermes/config.yaml), então scripts de operação, cron, hooks de CI e daemons de monitoramento conseguem publicar atualizações de status sem reimplementar o cliente REST de cada plataforma.
Para plataformas com token de bot (Telegram, Discord, Slack, Signal, SMS, WhatsApp-CloudAPI) não é preciso ter um gateway rodando — o hermes send fala direto com o endpoint REST da plataforma. Plataformas de plugin que precisam de um adaptador persistente continuam exigindo um gateway ativo.
| Opção | Descrição |
|---|---|
-t, --to <TARGET> | Destino da entrega. Formatos: platform (usa o canal principal), platform:chat_id, platform:chat_id:thread_id ou platform:#channel-name. Exemplos: telegram, telegram:-1001234567890, discord:#ops, slack:C0123ABCD, signal:+15551234567. |
-f, --file <PATH> | Lê o corpo da mensagem de PATH (só arquivos de texto — logs, relatórios, markdown). Passe - para forçar a leitura de stdin. Para enviar uma imagem ou outro arquivo binário, use MEDIA:<path> (veja abaixo). |
-s, --subject <LINE> | Coloca uma linha de assunto/cabeçalho antes do corpo da mensagem. |
-l, --list [platform] | Lista os destinos configurados em todas as plataformas (ou só na plataforma indicada). |
-q, --quiet | Não imprime nada em stdout no sucesso — útil em scripts (confie só no código de saída). |
--json | Emite o resultado em JSON bruto em vez da saída legível. |
Se nem o argumento posicional message nem --file forem passados, o hermes send lê de stdin quando ele não é um TTY. Códigos de saída: 0 no sucesso, 1 em falha de entrega/backend, 2 em erro de uso.
Enviando imagens e outras mídias
O --file serve só para corpos de texto. Para entregar uma imagem, documento, vídeo ou áudio como anexo nativo da plataforma, referencie o arquivo dentro do texto da mensagem com a diretiva MEDIA:<local_path>:
hermes send --to telegram "MEDIA:/tmp/screenshot.png"
hermes send --to telegram "Gráfico da build de hoje MEDIA:/tmp/chart.png" # com legenda
hermes send --to discord:#ops "MEDIA:/tmp/report.pdf"
Por padrão, arquivos de imagem são enviados como fotos (plataformas como o Telegram recomprimem essas imagens). Acrescente [[as_document]] à mensagem para entregá-las como anexo de arquivo sem compressão:
hermes send --to telegram "[[as_document]] MEDIA:/tmp/screenshot.png"
Exemplos:
hermes send --to telegram "deploy concluído"
echo "RAM 92%" | hermes send --to telegram:-1001234567890
hermes send --to discord:#ops --file /tmp/report.md
hermes send --to slack:#eng --subject "[CI]" --file build.log
hermes send --list # todas as plataformas
hermes send --list telegram # filtra por plataforma
hermes peer
hermes peer add <name> --url http://host:port --key <API_SERVER_KEY>
hermes peer list
hermes peer dm <peer>[/<agent>] "mensagem"
hermes peer remove <name>
DMs bot-a-bot entre máquinas. Registre outro gateway Hermes (qualquer máquina
rodando a plataforma api_server) como um par, e depois mande mensagem para os
agentes dele: o hermes peer dm resolve a sessão canônica de Bot Chat do
agente remoto pelo servidor de API do par, roda um turno de agente lá e imprime a
resposta em stdout — o gêmeo entre máquinas do comando local de mensagem entre
bots hermes -p <bot> chat --in ~ -c "Bot Chat" ….
<peer> sozinho mira no agente principal do gateway par;
<peer>/<agent> mira em um perfil nomeado de um par multiplexado (roteado pelo
espelho /p/<profile>/ dele).
| Subcomando | Descrição |
|---|---|
add <name> --url <URL> [--key <KEY>] [--note TEXT] | Registra ou atualiza um par. A URL vai para o config.yaml (bot_peers); a chave é guardada como HERMES_PEER_<NAME>_KEY no ~/.hermes/.env. |
list | Lista os pares e se cada um tem chave configurada. |
dm <peer>[/<agent>] [message] | Manda mensagem para o Bot Chat canônico do agente par e imprime a resposta (--json para saída legível por máquina; a mensagem pode vir de stdin). |
remove <name> | Remove um par do registro (a entrada de chave no .env fica onde está). |
Quando há pelo menos um par registrado, o protocolo de mensagens do Bot Mode
(agent.bot_mode_protocol) ensinado a todo Bot Chat canônico já inclui a lista de
pares e o padrão do hermes peer dm, então os agentes descobrem colegas em outras
máquinas sem edição de SOUL. Veja
Bot Mode.
Códigos de saída: 0 no sucesso, 1 em falha de entrega/par, 2 em erro de uso.
hermes secrets
hermes secrets bitwarden <subcommand>
hermes secrets bw <subcommand> # apelido curto
Puxa chaves de API de um gerenciador externo de segredos na inicialização do processo, em vez de guardá-las no ~/.hermes/.env. Hoje suporta o Bitwarden Secrets Manager. Veja o guia completo: integração com o Bitwarden.
Subcomandos de bitwarden (apelido bw):
| Subcomando | Descrição |
|---|---|
setup | Assistente interativo: instala o binário bws fixado, guarda um token de acesso e escolhe um projeto. Aceita --project-id, --access-token e --server-url para uso não interativo. |
status | Mostra a configuração atual, o caminho/versão do binário e o status de validação do token. |
token | Rotaciona o token de acesso: valida o novo token no Bitwarden antes de guardá-lo no .env (um token recusado não muda nada). Aceita --access-token para uso não interativo e --no-verify para pular a checagem. |
sync | Busca os segredos agora e informa o que mudou. Acrescente --apply para de fato exportar os segredos para o ambiente do shell atual (o padrão é simulação). |
install | Baixa e verifica o binário bws fixado. --force baixa de novo mesmo se já existir uma cópia gerenciada. |
disable | Desliga a integração com o Bitwarden. |
hermes migrate
hermes migrate <type>
Diagnostica e (opcionalmente) reescreve o config.yaml ativo para substituir referências a modelos aposentados ou opções obsoletas. Um backup datado do config.yaml original é feito antes de qualquer reescrita (pule com --no-backup).
| Subcomando | Descrição |
|---|---|
xai | Varre o config.yaml em busca de referências a modelos da xAI marcados para aposentadoria em 15 de maio de 2026 e (com --apply) reescreve tudo no lugar para os substitutos oficiais, conforme o guia de migração da xAI. Por padrão é simulação. |
Flags comuns dos subcomandos de migração:
| Flag | Descrição |
|---|---|
--apply | Reescreve o config.yaml no lugar (padrão: simulação, sem gravar nada). |
--no-backup | Pula o backup datado do config.yaml ao aplicar. |
Não confunda com o
hermes claw migrate(importação de tiro único da configuração do OpenClaw para o Hermes) — ohermes migrateé o comando de primeiro nível para reescrever configuração.
hermes proxy
hermes proxy <subcommand>
Roda um servidor HTTP local compatível com a API da OpenAI que encaminha requisições para um provedor autenticado por OAuth (por exemplo, Nous Portal, xAI). Aplicativos externos podem apontar para o proxy com qualquer bearer token; o proxy anexa suas credenciais OAuth reais na saída. Veja Proxy de assinatura para o guia completo.
| Subcomando | Descrição |
|---|---|
start | Roda o proxy em primeiro plano. Flags: --provider <nous|xai> (padrão nous), --host <addr> (padrão 127.0.0.1; use 0.0.0.0 para expor na rede local), --port <int> (padrão 8645). |
status | Mostra quais destinos de proxy estão prontos (credenciais presentes, OAuth válido). |
providers | Lista os provedores de destino disponíveis para o proxy. |
hermes security
hermes security <subcommand>
Varredura de vulnerabilidades sob demanda contra o OSV.dev. Cobre a venv do Hermes (distribuições PyPI instaladas), as dependências Python declaradas por plugins em ~/.hermes/plugins/ e os servidores MCP npx/uvx fixados no config.yaml. NÃO varre pacotes instalados globalmente nem extensões de editor ou navegador.
| Subcomando | Descrição |
|---|---|
audit | Roda uma auditoria de cadeia de suprimentos de tiro único. |
Flags do audit:
| Flag | Padrão | Descrição |
|---|---|---|
--json | desligado | Emite JSON legível por máquina em vez de texto legível por pessoa. |
--fail-on <level> | critical | Sai com código não-zero quando algum achado atinge esta severidade (low, moderate, high, critical). |
--skip-venv | desligado | Pula a varredura da venv Python do Hermes. |
--skip-plugins | desligado | Pula a varredura dos arquivos de requisitos dos plugins. |
--skip-mcp | desligado | Pula a varredura dos servidores MCP fixados no config.yaml. |
hermes login / hermes logout (obsoletos)
O hermes login foi removido. Use hermes auth para gerenciar credenciais OAuth, hermes model para escolher um provedor, ou hermes setup para a configuração interativa completa.
hermes auth
Gerencia pools de credenciais para rotação de chaves do mesmo provedor. Veja Pools de credenciais para a documentação completa.
hermes auth # Assistente interativo
hermes auth list # Mostra todos os pools
hermes auth list openrouter # Mostra um provedor específico
hermes auth add openrouter --api-key sk-or-v1-xxx # Adiciona chave de API
hermes auth add anthropic --type oauth # Adiciona credencial OAuth
hermes auth remove openrouter 2 # Remove pelo índice
hermes auth reset openrouter # Limpa os períodos de espera
hermes auth status anthropic # Mostra o status de autenticação de um provedor
hermes auth logout anthropic # Sai e apaga o estado de autenticação guardado
hermes auth spotify # Autentica o Hermes no Spotify via PKCE
Subcomandos: add, list, remove, reset, status, logout, spotify. Sem subcomando, abre o assistente interativo de gerenciamento.
hermes status
hermes status [--all] [--deep]
| Opção | Descrição |
|---|---|
--all | Mostra todos os detalhes em um formato censurado, pronto para compartilhar. |
--deep | Roda checagens mais profundas, que podem demorar. |
hermes cron
hermes cron <list|create|edit|pause|resume|run|remove|status|tick>
| Subcomando | Descrição |
|---|---|
list | Mostra as tarefas agendadas. |
create / add | Cria uma tarefa agendada a partir de um prompt, opcionalmente anexando uma ou mais skills com --skill repetido. Aceita fixar o esforço de raciocínio por tarefa com --reasoning-effort <none|minimal|low|medium|high|xhigh|max|ultra>. |
edit | Atualiza o agendamento, o prompt, o nome, a entrega, a contagem de repetições ou as skills anexadas de uma tarefa. Aceita --clear-skills, --add-skill e --remove-skill, além de --reasoning-effort (string vazia remove a fixação). |
pause | Pausa uma tarefa sem apagá-la. |
resume | Retoma uma tarefa pausada e calcula a próxima execução futura. |
run | Dispara uma tarefa no próximo tique do agendador. |
remove | Apaga uma tarefa agendada. |
status | Verifica se o agendador cron está rodando. |
tick | Roda as tarefas vencidas uma vez e sai. |
O gatilho do cron é plugável pela chave de configuração cron.provider. Vazio
(o padrão) usa o ticker embutido, no próprio processo. Defina como chronos (o
provedor gerenciado pelo NAS para gateways hospedados com escala a zero) —
configurado pelas chaves cron.chronos.* (portal_url, callback_url,
expected_audience, nas_jwks_url) — ou aponte um provedor personalizado em
plugins/cron/<name>/ ou $HERMES_HOME/plugins/<name>/. Um provedor desconhecido
ou indisponível cai de volta no embutido, então o cron nunca fica sem gatilho. Veja o
documento de cron por dentro.
hermes kanban
hermes kanban [--board <slug>] <action> [options]
Quadro de colaboração multiperfil e multiprojeto. Cada instalação pode hospedar vários quadros (um por projeto, repositório ou domínio); cada quadro é uma fila autônoma, com seu próprio banco SQLite e escopo de despachante. Instalações novas começam com um quadro chamado default, cujo banco é ~/.hermes/kanban.db por compatibilidade; quadros adicionais ficam em ~/.hermes/kanban/boards/<slug>/kanban.db. O despachante embutido no gateway varre todos os quadros a cada tique.
Flags globais (valem para todas as ações abaixo):
| Flag | Para que serve |
|---|---|
--board <slug> | Opera em um quadro específico. Por padrão, usa o quadro atual (definido por hermes kanban boards switch, pela variável de ambiente HERMES_KANBAN_BOARD ou por default). |
Esta é a superfície para pessoas e scripts. Os agentes trabalhadores criados pelo despachante operam o quadro por um toolset dedicado kanban_* (kanban_show, kanban_complete, kanban_request_review, kanban_request_changes, kanban_block, kanban_create, kanban_link, kanban_comment, kanban_heartbeat; perfis orquestradores também ganham kanban_list e kanban_unblock) em vez de chamar hermes kanban pelo shell. Os trabalhadores têm HERMES_KANBAN_BOARD fixado no ambiente, então fisicamente não conseguem enxergar outros quadros.
| Ação | Para que serve |
|---|---|
init | Cria o kanban.db se não existir. Idempotente. |
boards list / boards ls | Lista todos os quadros com contagem de tarefas. --json, --all (inclui arquivados). |
boards create <slug> | Cria um quadro novo. Flags: --name, --description, --icon, --color, --switch (deixa ativo). O slug é kebab-case, convertido para minúsculas automaticamente. |
boards switch <slug> / boards use | Grava <slug> como quadro ativo (escreve em ~/.hermes/kanban/current). |
boards show / boards current | Imprime o nome, o caminho do banco e a contagem de tarefas do quadro ativo. |
boards rename <slug> "<name>" | Muda o nome de exibição de um quadro. O slug é imutável. |
boards rm <slug> | Arquiva (padrão) ou apaga de vez um quadro. --delete pula o arquivamento. Quadros arquivados vão para boards/_archived/<slug>-<ts>/. Recusado para o default. |
create "<title>" | Cria uma tarefa no quadro ativo. Flags: --body, --assignee, --parent (repetível), --workspace scratch|worktree|dir:<path>, --tenant, --priority, --triage, --idempotency-key, --max-runtime, --max-retries, --skill (repetível). |
list / ls | Lista as tarefas do quadro ativo. Filtre com --mine, --assignee, --status, --tenant, --archived, --json. |
show <id> | Mostra uma tarefa com comentários e eventos. --json para saída de máquina. |
assign <id> <profile> | Atribui ou reatribui. Use none para desatribuir. Recusado enquanto a tarefa estiver rodando. |
link <parent> <child> | Adiciona uma dependência. Detecta ciclos. As duas tarefas precisam estar no mesmo quadro. |
unlink <parent> <child> | Remove uma dependência. |
claim <id> | Reivindica atomicamente uma tarefa pronta. Imprime o caminho do espaço de trabalho resolvido. |
comment <id> "<text>" | Acrescenta um comentário. O próximo trabalhador que reivindicar a tarefa o lê como parte da resposta do kanban_show(). |
complete <id> | Marca a tarefa como concluída. Flags: --result, --summary, --metadata. |
block <id> "<reason>" | Marca a tarefa como bloqueada, à espera de uma pessoa. Também acrescenta o motivo como comentário. |
request-review <id> | Move a tarefa para review com passagem de bastão para o revisor — NÃO é um bloqueio. Flags: --summary, --metadata, --reviewer (reatribui antes de despachar a revisão). |
request-changes <id> <reason> | Veredito do revisor numa revisão em andamento: encerra a tentativa de revisão e devolve a tarefa para quem a implementou. |
reopen-review <id>... | Devolve tarefa(s) em revisão para ajustes (review → ready/todo). Flag: --reason (acrescentado como comentário). |
schedule <id> "<reason>" | Estaciona trabalho de espera ou acompanhamento em scheduled, para que não apareça como bloqueio humano. |
unblock <id> | Devolve uma tarefa bloqueada à fase de origem (review ou ready), ou a todo enquanto houver dependências em aberto. |
archive <id> | Esconde da listagem padrão. O gc remove os espaços de trabalho temporários. |
tail <id> | Acompanha o fluxo de eventos de uma tarefa. |
dispatch | Uma passada do despachante no quadro ativo. Flags: --dry-run, --max N, --failure-limit N, --json. |
context <id> | Imprime todo o contexto que um trabalhador veria (título + corpo + resultados das tarefas-pai + comentários). |
specify <id> / specify --all | Transforma uma tarefa da coluna de triagem em uma especificação concreta (título + corpo com objetivo, abordagem e critérios de aceitação) usando o LLM auxiliar, e depois promove para todo. Flags: --tenant (restringe o --all a um inquilino), --author, --json. Configure o modelo em auxiliary.triage_specifier no config.yaml. |
decompose <id> / decompose --all | Abre uma tarefa da coluna de triagem em um grafo de tarefas-filhas roteadas para perfis especialistas pela descrição. Se o LLM concluir que a tarefa não ganha nada com a divisão, cai na promoção de tarefa única no estilo do specify. Mesmas flags do specify. Configure o modelo decompositor em auxiliary.kanban_decomposer no config.yaml; a kanban.orchestrator_profile só controla quem fica dono da tarefa raiz/de orquestração depois da divisão. Também roda automaticamente a cada tique do despachante quando kanban.auto_decompose: true (o padrão). Veja Orquestração automática x manual. |
gc | Remove os espaços de trabalho temporários de tarefas arquivadas. |
Exemplos:
# Cria um segundo quadro e coloca uma tarefa nele sem trocar de quadro ativo.
hermes kanban boards create atm10-server --name "ATM10 Server" --icon 🎮
hermes kanban --board atm10-server create "Reiniciar o servidor" --assignee ops
# Troca o quadro ativo para as chamadas seguintes.
hermes kanban boards switch atm10-server
hermes kanban list # mostra as tarefas do atm10-server
# Arquiva um quadro (recuperável) ou apaga de vez.
hermes kanban boards rm atm10-server
hermes kanban boards rm atm10-server --delete
Ordem de resolução do quadro (da maior precedência para a menor): flag --board <slug> → variável de ambiente HERMES_KANBAN_BOARD → arquivo ~/.hermes/kanban/current → default.
Todas as ações também existem como comando de barra no gateway (/kanban …), com a mesma superfície de argumentos — inclusive os subcomandos boards e a flag --board.
Para o desenho completo — comparação com Cline Kanban / Paperclip / NanoClaw / Gemini Enterprise, oito padrões de colaboração, quatro histórias de usuário, prova de correção de concorrência — veja docs/hermes-kanban-v1-spec.pdf no repositório ou o guia do Kanban.
hermes egress
Firewall de injeção de credenciais na saída, para sandboxes de terminal remotos. Envolve o daemon iron-proxy — um proxy que intercepta TLS e troca tokens opacos de proxy pelas credenciais reais de API na fronteira da rede, de modo que os sandboxes nunca guardam chaves de verdade. Desligado por padrão; veja a página completa do Proxy de saída para instalação e arquitetura.
hermes egress install # baixa o binário fixado do iron-proxy
hermes egress install --force # rebaixa mesmo se já estiver instalado
hermes egress setup # assistente interativo: CA, mapeamentos, configuração
hermes egress setup --tunnel-port N # muda a porta do túnel (padrão 9090)
hermes egress setup --from-bitwarden # usa o Bitwarden Secrets Manager como fonte de credenciais
hermes egress setup --no-bitwarden # volta explicitamente para credenciais em variáveis de ambiente
hermes egress setup --rotate-tokens # gera tokens de proxy novos (o padrão preserva os existentes)
hermes egress start # sobe o daemon gerenciado do proxy
hermes egress stop # SIGTERM (depois SIGKILL após 5s de tolerância)
hermes egress restart # para (se estiver rodando) e sobe — necessário quando segredos mudam
hermes egress reload # recarrega o conjunto de regras a quente (sem reinício, sem
# conexões perdidas) pela API de gerência no loopback
hermes egress status # binário + configuração + pid + escuta + mapeamentos
hermes egress status --show-tokens # imprime os tokens de proxy por inteiro (padrão: censurados)
hermes egress disable # muda proxy.enabled para false (não para um proxy em execução)
hermes egress config # imprime o caminho do proxy.yaml para inspeção
Fluxos comuns
# Primeira configuração
export OPENROUTER_API_KEY=…
hermes egress setup && hermes egress start
hermes config set terminal.backend docker # se ainda não estiver
# Trocando a fonte de credenciais depois do fato
hermes egress setup --from-bitwarden # ambiente → bitwarden
hermes egress setup --no-bitwarden # bitwarden → ambiente
# (só `setup`, sem nenhuma das duas flags, preserva o modo atual)
# Rotacionando todos os tokens (por exemplo, após suspeita de vazamento)
hermes egress setup --rotate-tokens # o setup se oferece para reiniciar o daemon em execução
# (sandboxes em execução ainda guardam os tokens antigos; reinicie-os também)
# Adicionando um novo destino
# Edite ~/.hermes/config.yaml proxy.extra_allowed_hosts: [api.exemplo.com]
hermes egress setup
hermes egress restart # aplica em um comando só (stop + start)
Atalhos de diagnóstico
hermes egress status # estado atual em uma tela
cat ~/.hermes/proxy/proxy.yaml # a configuração renderizada do iron-proxy
tail -20 ~/.hermes/proxy/iron-proxy.log # diagnóstico no nível do daemon
tail -f ~/.hermes/proxy/iron-proxy.log | jq # daemon + log por requisição (JSON por linha; a v0.39 junta os dois fluxos)
Os modos de falha comuns e como se recuperar deles estão em Proxy de saída → Solução de problemas.
hermes project
hermes project <create|list|show|add-folder|remove-folder|rename|set-primary|use|archive|restore|bind-board>
Projetos são espaços de trabalho com nome que podem abranger várias pastas e repositórios. Eles ancoram o agrupamento de sessões no desktop e, quando ligados a um quadro kanban, dão às tarefas uma convenção determinística de worktree + branch. O estado é por perfil.
| Subcomando | Descrição |
|---|---|
create | Cria um projeto novo. |
list (apelido ls) | Lista os projetos. |
show | Mostra os detalhes de um projeto. |
add-folder | Adiciona uma pasta/repositório ao projeto. |
remove-folder | Remove uma pasta do projeto. |
rename | Renomeia um projeto. |
set-primary | Define a pasta principal. |
use | Define o projeto ativo. |
archive | Arquiva um projeto (recuperável). |
restore | Restaura um projeto arquivado. |
bind-board | Liga um quadro kanban a este projeto. |
hermes webhook
hermes webhook <subscribe|list|remove|test>
Gerencia assinaturas dinâmicas de webhook para ativação do agente orientada a eventos. Exige que a plataforma de webhook esteja ativada na configuração — se não estiver, imprime as instruções de configuração.
| Subcomando | Descrição |
|---|---|
subscribe / add | Cria uma rota de webhook. Devolve a URL e o segredo HMAC para você configurar no seu serviço. |
list / ls | Mostra todas as assinaturas criadas pelo agente. |
remove / rm | Apaga uma assinatura dinâmica. Rotas estáticas do config.yaml não são afetadas. |
test | Envia um POST de teste para verificar se uma assinatura está funcionando. |
hermes webhook subscribe
hermes webhook subscribe <name> [options]
| Opção | Descrição |
|---|---|
--prompt | Modelo de prompt com referências ao payload em {dot.notation}. |
--events | Tipos de evento aceitos, separados por vírgula (por exemplo, issues,pull_request). Vazio = todos. |
--description | Descrição legível por pessoas. |
--skills | Nomes de skills a carregar na execução do agente, separados por vírgula. |
--deliver | Destino de entrega: log (padrão), telegram, discord, slack, github_comment. |
--deliver-chat-id | ID do chat/canal de destino para entrega entre plataformas. |
--secret | Segredo HMAC personalizado. Gerado automaticamente se omitido. |
--deliver-only | Pula o agente — entrega o --prompt renderizado como mensagem literal. Custo zero de LLM, entrega em menos de um segundo. Exige que --deliver seja um destino real (não log). |
--script | Script de filtro/transformação em ~/.hermes/scripts/. O payload do webhook chega como JSON no stdin; o JSON impresso no stdout substitui o payload, e stdout vazio, [SILENT] ou código de saída não-zero fazem o webhook ser ignorado. Veja Filtros e transformações por script. |
As assinaturas são gravadas em ~/.hermes/webhook_subscriptions.json e recarregadas a quente pelo adaptador de webhook, sem reiniciar o gateway.
hermes doctor
hermes doctor [--fix]
| Opção | Descrição |
|---|---|
--fix | Tenta reparos automáticos onde for possível. |
hermes dump
hermes dump [--show-keys]
Imprime um resumo compacto, em texto puro, de toda a sua instalação do Hermes. Feito para ser colado no Discord, em issues do GitHub ou no Telegram quando você pede ajuda — sem cores ANSI, sem formatação especial, só dados.
| Opção | Descrição |
|---|---|
--show-keys | Mostra prefixos censurados das chaves de API (primeiros e últimos 4 caracteres) em vez de apenas set/not set. |
O que ele inclui
| Seção | Detalhes |
|---|---|
| Cabeçalho | Versão do Hermes, data de lançamento, hash do commit git |
| Ambiente | Sistema operacional, versão do Python, versão do SDK da OpenAI |
| Identidade | Nome do perfil ativo, caminho do HERMES_HOME |
| Modelo | Modelo e provedor padrão configurados |
| Terminal | Tipo de backend (local, docker, ssh etc.) |
| Chaves de API | Checagem de presença das 22 chaves de provedores/ferramentas |
| Recursos | Toolsets ativos, quantidade de servidores MCP, provedor de memória |
| Serviços | Status do gateway, plataformas de mensagem configuradas |
| Carga de trabalho | Contagem de tarefas de cron, quantidade de skills instaladas |
| Ajustes de configuração | Quaisquer valores de configuração diferentes do padrão |
Exemplo de saída
--- hermes dump ---
version: 0.8.0 (2026.4.8) [af4abd2f]
os: Linux 6.14.0-37-generic x86_64
python: 3.11.14
openai_sdk: 2.24.0
profile: default
hermes_home: ~/.hermes
model: anthropic/claude-opus-4.6
provider: openrouter
terminal: local
api_keys:
openrouter set
openai not set
anthropic set
nous not set
firecrawl set
...
features:
toolsets: all
mcp_servers: 0
memory_provider: built-in
gateway: running (systemd)
platforms: telegram, discord
cron_jobs: 3 active / 5 total
skills: 42
config_overrides:
agent.max_turns: 250
compression.threshold: 0.85
display.streaming: True
--- end dump ---
Quando usar
- Ao reportar um bug no GitHub — cole o dump na sua issue
- Ao pedir ajuda no Discord — compartilhe dentro de um bloco de código
- Ao comparar a sua instalação com a de outra pessoa
- Como conferência rápida quando algo não funciona
O hermes dump foi feito especificamente para compartilhar. Para diagnóstico interativo, use hermes doctor. Para um panorama visual, use hermes status.
hermes debug
hermes debug share [options]
Envia um relatório de depuração (informações do sistema + logs recentes) para um serviço de paste e devolve uma URL compartilhável. Útil para pedidos rápidos de suporte — inclui tudo que quem for ajudar precisa para diagnosticar o problema.
| Opção | Descrição |
|---|---|
--lines <N> | Quantidade de linhas de log incluídas por arquivo (padrão: 200). |
--expire <days> | Validade do paste em dias (padrão: 7). |
--nous | Envia para o armazenamento interno de diagnóstico da Nous em vez de um serviço público de paste. Use quando o suporte da Nous pedir um pacote privado de diagnóstico. |
--local | Imprime o relatório localmente em vez de enviar. |
--no-redact | Desliga a censura de segredos no envio. Por padrão, os envios são censurados. |
O relatório inclui informações do sistema (SO, versão do Python, versão do Hermes), os logs recentes do agente, do gateway, do painel/GUI e do desktop (limite de 512 KB por arquivo), e o status censurado das chaves de API. Por padrão, os envios são censurados, então segredos não vão junto.
Os envios padrão usam serviços públicos de paste, tentados nesta ordem: paste.rs, dpaste.com. O --nous envia o mesmo pacote de depuração para o armazenamento privado de diagnóstico da Nous; o link de visualização devolvido é para o time da Nous e se apaga sozinho depois de 14 dias.
Exemplos
hermes debug share # Envia o relatório e imprime a URL
hermes debug share --lines 500 # Inclui mais linhas de log
hermes debug share --expire 30 # Mantém o paste por 30 dias
hermes debug share --nous # Envia um pacote privado de diagnóstico para o suporte da Nous
hermes debug share --local # Imprime o relatório no terminal (sem envio)
hermes backup
hermes backup [options]
Cria um arquivo zip com a sua configuração, skills, sessões e dados do Hermes. O backup não inclui o código do hermes-agent em si, e não aninha artefatos de backups anteriores (backups/, state-snapshots/) — cada um deles já contém a sua própria cópia do state.db.
| Opção | Descrição |
|---|---|
-o, --output <path> | Caminho de saída do zip (padrão: ~/hermes-backup-<timestamp>.zip). |
-q, --quick | Snapshot rápido: só os arquivos críticos de estado (config.yaml, state.db, .env, autenticação, tarefas de cron). Bem mais rápido que um backup completo. |
-l, --label <name> | Rótulo do snapshot (só usado com --quick). |
O backup usa a API backup() do SQLite para copiar com segurança, então funciona direito mesmo com o Hermes rodando (seguro em modo WAL).
O que fica de fora do zip:
*.db-wal,*.db-shm,*.db-journal— os arquivos laterais de WAL, memória compartilhada e journal do SQLite. O arquivo*.dbjá recebeu um snapshot consistente viasqlite3.backup(); levar junto os laterais ao vivo faria uma restauração enxergar um estado meio commitado.checkpoints/— caches de trajetória por sessão. São indexados por hash e regerados a cada sessão; de todo jeito não migrariam bem para outra instalação.- O código do
hermes-agentem si (este é um backup de dados do usuário, não um snapshot do repositório).
Exemplos
hermes backup # Backup completo em ~/hermes-backup-*.zip
hermes backup -o /tmp/hermes.zip # Backup completo em um caminho específico
hermes backup --quick # Snapshot rápido, só do estado
hermes backup --quick --label "pre-upgrade" # Snapshot rápido com rótulo
hermes checkpoints
hermes checkpoints [COMMAND]
Inspeciona e gerencia o repositório git sombra em ~/.hermes/checkpoints/ — a camada de armazenamento por trás do comando /rollback usado dentro da sessão. Seguro de rodar a qualquer momento; não exige que o agente esteja rodando.
| Subcomando | Descrição |
|---|---|
status (padrão) | Mostra o tamanho total, a quantidade de projetos e o detalhamento por projeto. Um hermes checkpoints puro é equivalente. |
list | Apelido de status. |
prune | Força uma varredura de limpeza — apaga projetos órfãos e obsoletos, roda o GC do repositório e aplica o limite de tamanho. Ignora o marcador de idempotência de 24h. |
clear | Apaga toda a base de checkpoints. Irreversível; pede confirmação, a menos que se use -f. |
clear-legacy | Apaga só os arquivos legacy-<timestamp>/ produzidos pela migração v1→v2. |
Opções
| Opção | Subcomando | Descrição |
|---|---|---|
--limit N | status, list | Máximo de projetos a listar (padrão 20). |
--retention-days N | prune | Descarta projetos cujo last_touch é mais antigo que N dias (padrão 7). |
--max-size-mb N | prune | Depois da passada de órfãos/obsoletos, descarta o commit mais antigo de cada projeto até o repositório caber em N MB (padrão 500). |
--keep-orphans | prune | Não apaga projetos cujo diretório de trabalho não existe mais. |
-f, --force | clear, clear-legacy | Pula a confirmação. |
Exemplos
hermes checkpoints # panorama de status
hermes checkpoints prune --retention-days 3 # limpeza agressiva
hermes checkpoints prune --max-size-mb 200 # aperta o limite de tamanho uma vez
hermes checkpoints clear-legacy -f # descarta os diretórios de arquivo da v1
hermes checkpoints clear -f # apaga tudo
Veja Checkpoints e /rollback para a arquitetura completa e os comandos usados dentro da sessão.
hermes import
hermes import <zipfile> [options]
Restaura um backup do Hermes criado anteriormente no seu diretório home do Hermes. Todos os arquivos do arquivo compactado sobrescrevem os existentes no seu home do Hermes; o --force só pula a confirmação que aparece quando o destino já tem uma instalação do Hermes.
| Opção | Descrição |
|---|---|
-f, --force | Pula a confirmação de instalação existente. |
Pare o gateway antes de importar, para evitar conflito com processos em execução.
Exemplos
hermes import ~/hermes-backup-20260423.zip # Pergunta antes de sobrescrever a configuração existente
hermes import ~/hermes-backup-20260423.zip --force # Sobrescreve sem perguntar
hermes logs
hermes logs [log_name] [options]
Visualiza, acompanha e filtra os arquivos de log do Hermes. Todos os logs ficam em ~/.hermes/logs/ (ou <profile>/logs/ em perfis não padrão).
Arquivos de log
| Nome | Arquivo | O que registra |
|---|---|---|
agent (padrão) | agent.log | Toda a atividade do agente — chamadas de API, despacho de ferramentas, ciclo de vida das sessões (INFO e acima) |
errors | errors.log | Só avisos e erros — um subconjunto filtrado do agent.log |
gateway | gateway.log | Atividade do gateway de mensagens — conexões de plataforma, despacho de mensagens, eventos de webhook |
gui | gui.log | Eventos do painel, do gateway da TUI, da ponte PTY e de websocket |
desktop | desktop.log | App de desktop em Electron — inicialização, saída da subida do backend e tracebacks recentes do Python |
Opções
| Opção | Descrição |
|---|---|
log_name | Qual log ver: agent (padrão), errors, gateway, ou list para mostrar os arquivos disponíveis com seus tamanhos. |
-n, --lines <N> | Quantidade de linhas a mostrar (padrão: 50). |
-f, --follow | Acompanha o log em tempo real, como tail -f. Aperte Ctrl+C para parar. |
--level <LEVEL> | Nível mínimo a mostrar: DEBUG, INFO, WARNING, ERROR, CRITICAL. |
--session <ID> | Filtra linhas que contenham um trecho de ID de sessão. |
--since <TIME> | Mostra linhas a partir de um tempo relativo: 30m, 1h, 2d etc. Aceita s (segundos), m (minutos), h (horas), d (dias). |
--component <NAME> | Filtra por componente: gateway, agent, tools, cli, cron. |
Exemplos
# Vê as últimas 50 linhas do agent.log (padrão)
hermes logs
# Acompanha o agent.log em tempo real
hermes logs -f
# Vê as últimas 100 linhas do gateway.log
hermes logs gateway -n 100
# Mostra só avisos e erros da última hora
hermes logs --level WARNING --since 1h
# Filtra por uma sessão específica
hermes logs --session abc123
# Acompanha o errors.log a partir de 30 minutos atrás
hermes logs errors --since 30m -f
# Lista todos os arquivos de log com seus tamanhos
hermes logs list
Filtragem
Os filtros podem ser combinados. Com vários filtros ativos, uma linha de log precisa passar por todos eles para aparecer:
# Linhas WARNING ou acima das últimas 2 horas contendo a sessão "tg-12345"
hermes logs --level WARNING --since 2h --session tg-12345
Linhas sem carimbo de tempo reconhecível são incluídas quando o --since está ativo (podem ser continuações de uma entrada de log de várias linhas). Linhas sem nível detectável são incluídas quando o --level está ativo.
Rotação de logs
O Hermes usa o RotatingFileHandler do Python. Logs antigos são rotacionados automaticamente — procure por agent.log.1, agent.log.2 etc. O subcomando hermes logs list mostra todos os arquivos de log, inclusive os rotacionados.
hermes prompt-size
hermes prompt-size [--platform <name>] [--json]
Informa o orçamento fixo de prompt de uma sessão nova — o que é enviado em toda chamada de API antes de qualquer conteúdo de conversa. Útil quando um adaptador ou proxy adiante tem um orçamento de prompt menor que a janela de contexto do modelo, ou quando você quer ver qual bloco (índice de skills, memória, perfil) domina.
Ele monta o mesmo prompt de sistema que o agente montaria e o decompõe:
- Total do prompt de sistema — o prompt montado completo (identidade, orientações, índice de skills, arquivos de contexto, memória, perfil, carimbo de tempo).
- Índice de skills — o bloco
<available_skills>. Costuma ser o maior bloco quando há muitas skills instaladas. - Memória e perfil do usuário — os snapshots do seu
MEMORY.md/USER.md. - Camadas do prompt — estável / contexto / volátil, na mesma divisão que o Hermes usa para deixar o prompt amigável a cache.
- Esquemas de ferramentas — o JSON de todas as ferramentas ativas (a outra metade da carga fixa por chamada).
Roda totalmente offline — sem chamada de API, funciona sem nenhuma credencial configurada.
# Detalhamento legível para a plataforma CLI (padrão)
hermes prompt-size
# Simula o prompt de uma plataforma de mensagens (outra dica de plataforma)
hermes prompt-size --platform telegram
# Saída legível por máquina, para scripts
hermes prompt-size --json
O índice de skills e os esquemas de ferramentas crescem conforme a quantidade de
skills e ferramentas que você tem ativas. Para encolher o prompt, desative toolsets
que não usa (hermes tools) ou desinstale skills desnecessárias (hermes skills).
Arquivos de contexto (AGENTS.md, .cursorrules) no diretório atual também contam no total.
hermes config
hermes config <subcommand>
Subcomandos:
| Subcomando | Descrição |
|---|---|
show | Mostra os valores atuais da configuração. |
edit | Abre o config.yaml no seu editor. |
get <key> [--json] | Imprime um valor de configuração pela chave com pontos (por exemplo, hermes config get model.default). --json emite saída legível por máquina. |
set <key> <value> | Define um valor de configuração. |
unset <key> | Remove uma chave de configuração, voltando ao padrão embutido. |
path | Imprime o caminho do arquivo de configuração. |
env-path | Imprime o caminho do arquivo .env. |
check | Procura configuração faltando ou desatualizada. |
migrate | Adiciona interativamente as opções recém-introduzidas. |
hermes pairing
hermes pairing <list|approve|revoke|clear-pending>
| Subcomando | Descrição |
|---|---|
list | Mostra os usuários pendentes e aprovados. |
approve <platform> <code> | Aprova um código de pareamento. |
revoke <platform> <user-id> | Revoga o acesso de um usuário. |
clear-pending | Limpa os códigos de pareamento pendentes. |
hermes skills
hermes skills <subcommand>
Subcomandos:
| Subcomando | Descrição |
|---|---|
browse | Navegador paginado dos registros de skills. |
search | Busca nos registros de skills. |
install | Instala uma skill. |
inspect | Espia uma skill sem instalar. |
list | Lista as skills instaladas. |
check | Verifica se as skills instaladas do hub têm atualização upstream. |
update | Reinstala as skills do hub que têm mudanças upstream disponíveis. |
audit | Re-analisa as skills instaladas do hub. |
uninstall | Remove uma skill instalada pelo hub. |
reset | Destrava uma skill embutida marcada como user_modified, limpando a entrada dela no manifesto. Com --restore, também substitui a cópia do usuário pela versão embutida. |
opt-out | Impede que skills embutidas sejam semeadas no perfil ativo. Escreve um marcador .no-bundled-skills, e assim o instalador, o hermes update e qualquer sincronização pulam a semeadura. Seguro por padrão — nada em disco é tocado. Com --remove, também apaga as skills embutidas já presentes que estiverem sem modificação (skills editadas pelo usuário, instaladas do hub e escritas à mão nunca são removidas; mostra uma prévia e pede confirmação, --yes pula). |
opt-in | Desfaz o opt-out removendo o marcador .no-bundled-skills, para que as skills embutidas voltem a ser semeadas no próximo hermes update. Com --sync, semeia na hora. |
publish | Publica uma skill em um registro. |
snapshot | Exporta/importa configurações de skills. |
tap | Gerencia fontes personalizadas de skills. |
config | Configuração interativa de ativar/desativar skills por plataforma. |
Exemplos comuns:
hermes skills browse
hermes skills browse --source official
hermes skills search react --source skills-sh
hermes skills search https://mintlify.com/docs --source well-known
hermes skills inspect official/security/1password
hermes skills inspect skills-sh/vercel-labs/json-render/json-render-react
hermes skills install official/migration/openclaw-migration
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills install https://sharethis.chat/SKILL.md # URL direta (+ arquivos de apoio referenciados)
hermes skills install https://example.com/SKILL.md --name my-skill # Define o nome quando o frontmatter não tem um
hermes skills check
hermes skills update
hermes skills config
hermes skills reset google-workspace
hermes skills reset google-workspace --restore --yes
hermes skills opt-out # para de semear skills embutidas no futuro (nada é apagado)
hermes skills opt-out --remove --yes # também apaga as skills embutidas SEM MODIFICAÇÃO
hermes skills opt-in --sync # desfaz: remove o marcador e semeia agora
Observações:
- O
--forceconsegue passar por bloqueios de política não perigosos em skills de terceiros ou da comunidade. - O
--forcenão passa por um veredito de varreduradangerous. --source skills-shbusca no diretório públicoskills.sh.--source well-knownpermite apontar o Hermes para um site que expõe/.well-known/skills/index.json.--source browse-shbusca no catálogo do browse.sh, com mais de 200 skills de automação de navegador específicas por site. Os identificadores têm a formabrowse-sh/airbnb.com/search-listings-ddgioa.- Passar uma URL
http(s)://…/*.mdinstala oSKILL.mdmais os arquivos explicitamente referenciados emreferences/,templates/,scripts/,assets/eexamples/. Quando o frontmatter não temname:e o slug da URL não é um identificador válido, um terminal interativo pede um nome; superfícies não interativas (/skills installdentro da TUI, plataformas de gateway) exigem--name <x>no lugar disso.
hermes bundles
hermes bundles <subcommand>
Pacotes de skills agrupam várias skills sob um único comando de barra /<bundle-name>. Invocar o pacote carrega todas as skills referenciadas em uma única mensagem de usuário combinada. Armazenamento: ~/.hermes/skill-bundles/<slug>.yaml. Veja Pacotes de skills para o esquema YAML e o comportamento.
Subcomandos:
| Subcomando | Descrição |
|---|---|
list | Lista os pacotes instalados (padrão quando nenhum subcomando é dado) |
show <name> | Mostra o nome, a descrição, as skills e o caminho do arquivo de um pacote |
create <name> | Cria um pacote novo. Passe --skill <id> (repetível) ou omita para entrada interativa. --description, --instruction e --force estão disponíveis. |
delete <name> | Remove o arquivo de um pacote |
reload | Re-varre o ~/.hermes/skill-bundles/ e informa os pacotes adicionados/removidos |
Exemplos:
hermes bundles create backend-dev \
--skill github-code-review \
--skill test-driven-development \
--skill github-pr-workflow \
-d "Trabalho de backend"
hermes bundles list
hermes bundles show backend-dev
hermes bundles delete backend-dev
Numa sessão de chat, /bundles lista os pacotes instalados e /<bundle-name> carrega um deles.
hermes curator
hermes curator <subcommand>
O curador é uma tarefa de segundo plano, movida pelo modelo auxiliar, que revisa periodicamente as skills criadas pelo agente, poda as obsoletas, junta as que se sobrepõem e arquiva as que não servem mais. Skills embutidas e instaladas pelo hub nunca são tocadas. Os arquivamentos são recuperáveis; nunca há exclusão automática.
| Subcomando | Descrição |
|---|---|
status | Mostra o status do curador e as estatísticas de skills |
run | Dispara uma revisão agora (bloqueia até a passada do LLM terminar) |
run --background | Inicia a passada do LLM em uma thread de segundo plano e retorna na hora |
run --dry-run | Só prévia — produz o relatório de revisão sem alterar nada |
backup | Tira um snapshot manual em tar.gz de ~/.hermes/skills/ (o curador também tira um snapshot automático antes de cada execução real) |
rollback | Restaura ~/.hermes/skills/ a partir de um snapshot (por padrão, o mais recente) |
rollback --list | Lista os snapshots disponíveis |
rollback --id <ts> | Restaura um snapshot específico pelo id |
rollback -y | Pula a confirmação |
pause | Pausa o curador até você retomar |
resume | Retoma um curador pausado |
pin <skill> | Fixa uma skill para que o curador nunca a transicione automaticamente |
unpin <skill> | Desafixa uma skill |
restore <skill> | Restaura uma skill arquivada |
archive <skill> | Arquiva uma skill manualmente |
prune | Poda manualmente as skills que o curador normalmente limparia |
list-archived | Lista as skills arquivadas (recuperáveis com restore) |
Numa instalação nova, a primeira passada agendada é adiada por um interval_hours inteiro (7 dias, por padrão) — o gateway não vai curar de imediato no primeiro tique depois de um hermes update. Use hermes curator run --dry-run para ver a prévia antes disso.
Veja Curador para comportamento e configuração.
hermes moa
Configura presets nomeados de Mixture of Agents. Os presets aparecem como modelos selecionáveis sob um provedor Mixture of Agents em todos os seletores de modelo; /moa <prompt> roda um prompt pelo preset padrão.
hermes moa list
hermes moa configure [name]
hermes moa delete <name>
O hermes moa configure reaproveita o seletor provedor → modelo do Hermes para cada modelo de referência e para o agregador. Um preset é uma configuração de modo de execução, não um modelo ou provedor principal.
hermes fallback
hermes fallback <subcommand>
Gerencia a cadeia de provedores de reserva. Os provedores de reserva são tentados na ordem quando o modelo principal falha com erro de limite de taxa, sobrecarga ou conexão.
| Subcomando | Descrição |
|---|---|
list (apelido: ls) | Mostra a cadeia de reserva atual (padrão quando não há subcomando) |
add | Escolhe um provedor + modelo (o mesmo seletor do hermes model) e adiciona ao fim da cadeia |
remove (apelido: rm) | Escolhe uma entrada para apagar da cadeia |
clear | Remove todas as entradas de reserva |
Veja Provedores de reserva.
hermes hooks
hermes hooks <subcommand>
Inspeciona os hooks de script de shell declarados em ~/.hermes/config.yaml, testa-os contra payloads sintéticos e gerencia a allowlist de consentimento de primeiro uso em ~/.hermes/shell-hooks-allowlist.json.
| Subcomando | Descrição |
|---|---|
list (apelido: ls) | Lista os hooks configurados com matcher, timeout e status de consentimento |
test <event> | Dispara todos os hooks que casam com <event> contra um payload sintético |
revoke (apelidos: remove, rm) | Remove as entradas de allowlist de um comando (vale a partir do próximo reinício) |
doctor | Confere cada hook configurado: bit de execução, allowlist, desvio de mtime, validade do JSON e tempo de uma execução sintética |
Veja Hooks para as assinaturas de evento e os formatos de payload.
hermes memory
hermes memory <subcommand>
Configura e gerencia plugins de provedor externo de memória. Provedores disponíveis: honcho, openviking, mem0, hindsight, holographic, retaindb, byterover, supermemory. Só um provedor externo pode estar ativo por vez. A memória embutida (MEMORY.md/USER.md) está sempre ativa.
Subcomandos:
| Subcomando | Descrição |
|---|---|
setup | Seleção e configuração interativas do provedor. |
status | Mostra a configuração atual do provedor de memória. |
off | Desliga o provedor externo (fica só o embutido). |
Quando um provedor externo de memória está ativo, ele pode registrar o próprio comando de primeiro nível hermes <provider> para gerenciamento específico (por exemplo, hermes honcho quando o Honcho está ativo). Provedores inativos não expõem os subcomandos deles. Rode hermes --help para ver o que está ligado no momento.
hermes acp
hermes acp
Sobe o Hermes como servidor ACP (Agent Client Protocol) por stdio, para integração com editores.
Pontos de entrada relacionados:
hermes-acp
python -m acp_adapter
Instale o suporte antes:
cd ~/.hermes/hermes-agent && uv pip install -e '.[acp]'
Veja Integração ACP com editores e ACP por dentro.
hermes mcp
hermes mcp <subcommand>
Gerencia as configurações de servidores MCP (Model Context Protocol) e roda o Hermes como servidor MCP.
| Subcomando | Descrição |
|---|---|
(nenhum) ou picker | Seletor interativo de catálogo — navegue pelos MCPs aprovados pela Nous e instale/ative/desative. |
catalog | Lista os MCPs aprovados pela Nous (texto puro, script-friendly). |
install <name> | Instala uma entrada do catálogo (por exemplo, hermes mcp install n8n). |
serve [-v|--verbose] | Roda o Hermes como servidor MCP — expõe as conversas para outros agentes. |
add <name> [--url URL] [--command CMD] [--auth oauth|header] [--args ...] | Adiciona um servidor MCP personalizado com descoberta automática de ferramentas. O --args repassa o restante do argv para o comando stdio, então deixe-o por último. |
remove <name> (apelido: rm) | Remove um servidor MCP da configuração. |
list (apelido: ls) | Lista os servidores MCP configurados. |
test <name> | Testa a conexão com um servidor MCP. |
configure <name> (apelido: config) | Alterna a seleção de ferramentas de um servidor. |
login <name> | Força a reautenticação de um servidor MCP baseado em OAuth. |
Veja Referência de configuração MCP, Usar MCP com o Hermes e Modo servidor MCP.
hermes plugins
hermes plugins [subcommand]
Gerenciamento unificado de plugins — plugins gerais, provedores de memória e motores de contexto em um só lugar. Rodar hermes plugins sem subcomando abre uma tela interativa composta, com duas seções:
- Plugins gerais — caixas de seleção múltipla para ativar/desativar plugins instalados
- Plugins de provedor — configuração de escolha única para Provedor de Memória e Motor de Contexto. Aperte ENTER numa categoria para abrir um seletor de opção única.
| Subcomando | Descrição |
|---|---|
| (nenhum) | Interface interativa composta — alternância de plugins gerais + configuração dos plugins de provedor. |
install <identifier> [--force] [--ref COMMIT_SHA] | Instala um plugin a partir de uma URL Git, de owner/repo ou de um nome do índice. Nomes simples (sem barra) são resolvidos pelo índice comunitário de plugins para owner/repo mais o commit fixado no índice; nomes ambíguos listam os candidatos e saem. O --ref aceita apenas um SHA de commit completo, de 40 caracteres, instala exatamente aquela revisão imutável e sobrepõe qualquer fixação do índice. |
search [term] [--json] [--capability CAP] [--refresh] | Busca no índice comunitário de plugins (casamento aproximado por nome/descrição/tags; omita term para navegar). Baixado de plugins.index_url (padrão: o índice de plugins da NousResearch), guardado em cache em ~/.hermes/cache/ por 24h, caindo para o cache velho e depois para a semente embutida quando não há rede. Estar indexado ≠ ter sido auditado — a inclusão é só uma revisão de metadados. |
update <name> | Puxa as mudanças mais recentes de um plugin instalado sem fixação. Plugins fixados precisam ser reinstalados com --force --ref <new-commit> para mudar. |
remove <name> (apelidos: rm, uninstall) | Remove um plugin instalado. |
enable <name> | Ativa um plugin desativado. |
disable <name> | Desativa um plugin sem removê-lo. |
list (apelido: ls) | Lista os plugins instalados com o status de ativado/desativado. |
doctor [path-or-id] [--ci] | Valida um plugin nativo pelo parser de manifesto, pelo carregador e pelo caminho de registro reais. O --ci sai com 1 quando há erros. |
pack install <path-or-url> [--force] | Instala um pacote de plugins (hermes-pack.yaml) — um conjunto declarativo de plugins, cada um fixado em um SHA de commit exato de 40 caracteres. Mostra uma tela de revisão obrigatória (cada plugin, sua origem, o ref fixado e as capacidades declaradas), pede uma confirmação para o conteúdo do pacote e então roda instalações fixadas comuns. As capacidades declaradas de cada plugin ainda passam pelo consentimento normal, um a um — um pacote nunca concede em bloco. Falhas parciais são reportadas por plugin; sai com código não-zero quando algum plugin falha. Só interativo (não há --yes). |
pack export [--enabled-only] [--name NAME] | Emite em stdout um YAML de pacote a partir da instalação atual: repositório + SHA exato de cada plugin instalado por git, mais a configuração não secreta e higienizada de plugins.entries. Plugins só locais (sem procedência git) aparecem como comentários de aviso, nunca como entradas instaláveis. Segredos, concessões de capacidade e travas allow_* são sempre removidos. |
pack show <path-or-url> | Simulação: analisa, valida e exibe um pacote sem instalar nada. |
As escolhas de plugin de provedor são salvas no config.yaml:
memory.provider— provedor de memória ativo (vazio = só o embutido)context.engine— motor de contexto ativo ("compressor"= o padrão embutido)
A lista de plugins gerais desativados fica no config.yaml, sob plugins.disabled.
Instalações por git registram apenas a origem canônica, a revisão exata instalada e
o status de fixação no arquivo lateral plugins/.install-metadata.json, local ao perfil.
Ele não contém configuração de plugin, valores de ambiente, segredos nem concessões de capacidade.
Veja Plugins e Construir um plugin do Hermes.
hermes tools
hermes tools [--summary]
| Opção | Descrição |
|---|---|
--summary | Imprime o resumo atual de ferramentas ativas e sai. |
Sem --summary, o comando abre a interface interativa de configuração de ferramentas por plataforma.
hermes computer-use
hermes computer-use <subcommand>
Subcomandos:
| Subcomando | Descrição |
|---|---|
install | Roda o instalador oficial do cua-driver (macOS, Windows e Linux). |
install --upgrade | Roda o instalador de novo mesmo que o cua-driver já esteja no PATH. O script oficial sempre puxa a versão mais recente, então isso faz uma atualização no lugar. |
status | Imprime se o cua-driver está no $PATH e qual versão está instalada. |
doctor [--include CHECK] [--skip CHECK] [--json] | Roda o relatório de saúde do cua-driver e mostra as checagens de plataforma dele. |
permissions status [--json] | Informa as permissões de Acessibilidade e Gravação de Tela do macOS. |
permissions grant | Pede ao macOS que conceda Acessibilidade e Gravação de Tela ao Cua Driver. |
O hermes computer-use install é o ponto de entrada estável para instalar o
binário cua-driver, usado pelo toolset
computer_use. Ele roda o mesmo instalador oficial que o hermes tools
chama quando você ativa o Computer Use pela primeira vez, então é seguro
usá-lo para refazer a instalação se o botão do toolset não a disparou
(por exemplo, em instalações de quem já tinha o Hermes configurado).
Se o cua-driver já estiver presente, o Hermes confere a versão e o manifesto
de runtime dele. Uma instalação 0.20.0 ou mais nova, compatível, é mantida. Uma
instalação padrão antiga ou incompleta é reparada com o instalador oficial atual.
O Hermes nunca substitui um binário personalizado escolhido por
HERMES_CUA_DRIVER_CMD; atualize esse binário direto ou remova a sobreposição.
O hermes computer-use status avisa quando o reparo é necessário.
O toolset embutido computer_use é a integração recomendada do Hermes.
Registrar as ferramentas MCP cruas do Cua é uma alternativa para quando você
precisa do vocabulário de baixo nível dele. O cua-driver skills install
detecta o Hermes e linka o pacote de skills do Cua no diretório de skills do
Hermes automaticamente.
Modo de permissão, aprovação do manifesto de capacidades e a concessão de perfil
existente pertencem à subida do runtime. Em modo restrito, o Hermes passa as flags
canônicas do Cua --capability-manifest e --approve-capability-manifest. Cada
transporte MCP tem uma sessão de ciclo de vida privada dentro do seu runtime. Nomes
públicos de sessão apenas rotulam o cursor e o estado da sessão; eles não são donos
do runtime nem o compartilham.
O hermes update roda de novo o instalador oficial no fim da atualização se o
cua-driver estiver no PATH, então a maioria das pessoas não vai precisar chamar
o --upgrade na mão. Use quando o projeto original lançar uma correção que você
quer agora, sem esperar a próxima atualização do Hermes.
hermes pets
hermes pets <list|install|select|show|off|scale|remove|doctor>
O Petdex é uma galeria pública de pets animados em sprite para agentes de código. Instale um e o Hermes o mostra reagindo à atividade do agente na CLI, na TUI e no app de desktop.
| Subcomando | Descrição |
|---|---|
list | Navega pela galeria do petdex. |
install | Instala um pet da galeria. |
select | Define o pet ativo (escreve em display.pet.*). |
show | Anima o pet ativo no terminal. |
off | Desliga a exibição do pet. |
scale | Redimensiona o pet em todo lugar (display.pet.scale). |
remove | Apaga um pet instalado. |
doctor | Confere a instalação do pet + o suporte a gráficos do terminal. |
Você também pode gerar um pet novo em folha a partir de uma descrição em texto com o comando de barra /hatch. Veja Pets.
hermes sessions
hermes sessions <subcommand>
Subcomandos:
| Subcomando | Descrição |
|---|---|
list | Lista as sessões recentes. |
browse | Seletor interativo de sessões, com busca e retomada. Cada linha mostra uma marca de status do ciclo de vida (done / intr / err / empty, derivada da mensagem final da sessão) e a contagem de mensagens. Aperte d numa linha destacada (com o filtro de busca vazio) para apagar aquela sessão após um s/N de confirmação; com um filtro ativo, o d digita na busca. |
export <output> [--session-id ID] | Exporta sessões para JSONL. |
delete <session-id> | Apaga uma sessão. |
prune | Apaga as sessões que casam com os filtros: limites de tempo --older-than/--newer-than/--before/--after (durações como 5h/2d, dias puros ou carimbos ISO); atributos --source, --title, --model, --provider, --branch, --end-reason, --user, --chat-id, --chat-type, --cwd; limites numéricos --min/--max-messages, --min/--max-tokens, --min/--max-cost, --min/--max-tool-calls; além de --include-archived, --dry-run, --yes. Padrão: mais antigas que 90 dias. |
archive | Arquiva em lote (esconde, sem apagar) as sessões que casam com os mesmos filtros do prune. Exige pelo menos um filtro. |
stats | Mostra estatísticas do armazenamento de sessões. |
rename <session-id> <title> | Define ou muda o título de uma sessão. |
optimize | Recupera espaço em disco: junta os segmentos do índice FTS5 + VACUUM. Não destrutivo — nenhum dado de sessão muda. |
optimize-storage | Migra o índice de busca em texto completo para o layout compacto de conteúdo externo da v23; em bancos grandes, isso recupera uma boa fatia do state.db. |
repair | Repara um esquema malformado do state.db (por exemplo, table messages_fts already exists) para que sessões escondidas voltem a aparecer; um backup é feito antes. |
repair-routing | Reconecta conversas do gateway presas em linhas de sessão que perderam a identidade de roteamento (um chat que "volta no tempo" depois de um reinício). Simulação por padrão; --apply executa as adoções (pare o gateway antes); --max-gap-seconds N ajusta a janela de contiguidade. Só casos inequívocos são reparados. Veja Sessões → Reparar sessões de gateway presas. |
recover | Recuperação offline e não destrutiva de um state.db danificado para um banco limpo separado. |
retitle-skills | Regera os títulos de sessões abertas com um /skill, usando o que a pessoa de fato digitou; lista as mudanças, a menos que --apply seja passado. |
hermes insights
hermes insights [--days N] [--source platform]
| Opção | Descrição |
|---|---|
--days <n> | Analisa os últimos n dias (padrão: 30). |
--source <platform> | Filtra pela origem, como cli, telegram ou discord. |
hermes claw
hermes claw migrate [options]
Migra a sua instalação do OpenClaw para o Hermes. Lê de ~/.openclaw (ou de um caminho personalizado) e escreve em ~/.hermes. Detecta automaticamente nomes antigos de diretório (~/.clawdbot, ~/.moltbot) e de arquivo de configuração (clawdbot.json, moltbot.json).
| Opção | Descrição |
|---|---|
--dry-run | Mostra o que seria migrado sem gravar nada. |
--preset <name> | Preset de migração: full (todas as opções compatíveis) ou user-data (exclui a configuração de infraestrutura). Nenhum dos dois importa segredos — passe --migrate-secrets explicitamente. |
--overwrite | Sobrescreve arquivos do Hermes já existentes em caso de conflito (padrão: recusar a aplicação quando o plano tem conflitos). |
--migrate-secrets | Inclui as chaves de API na migração. Obrigatório mesmo com --preset full. |
--no-backup | Pula o snapshot zip de ~/.hermes/ feito antes da migração (por padrão, um único arquivo de ponto de restauração é gravado em ~/.hermes/backups/pre-migration-*.zip antes de aplicar; restaurável com hermes import). |
--source <path> | Diretório personalizado do OpenClaw (padrão: ~/.openclaw). |
--workspace-target <path> | Diretório de destino das instruções de espaço de trabalho (AGENTS.md). |
--skill-conflict <mode> | Como tratar colisão de nomes de skill: skip (padrão), overwrite ou rename. |
--yes | Pula a confirmação. |
O que é migrado
A migração cobre mais de 30 categorias, entre persona, memória, skills, provedores de modelo, plataformas de mensagem, comportamento do agente, políticas de sessão, servidores MCP, TTS e mais. Os itens são importados diretamente para os equivalentes do Hermes ou arquivados para revisão manual.
Importados diretamente: SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills (4 diretórios de origem), modelo padrão, provedores personalizados, servidores MCP, tokens e allowlists das plataformas de mensagem (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), padrões do agente (esforço de raciocínio, compressão, atraso humano, fuso horário, sandbox), políticas de reinício de sessão, regras de aprovação, configuração de TTS, ajustes de navegador, ajustes de ferramentas, timeout de execução, allowlist de comandos, configuração do gateway e chaves de API de 3 fontes.
Arquivados para revisão manual: tarefas de cron, plugins, hooks/webhooks, backend de memória (QMD), configuração do registro de skills, interface/identidade, logging, instalação multiagente, vínculos de canal, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.
A resolução das chaves de API consulta três fontes, em ordem de prioridade: valores de configuração → ~/.openclaw/.env → auth-profiles.json. Todos os campos de token aceitam strings simples, modelos de variável de ambiente (${VAR}) e objetos SecretRef.
Para o mapeamento completo das chaves de configuração, os detalhes de tratamento de SecretRef e a lista de verificação pós-migração, veja o guia completo de migração.
Exemplos
# Mostra o que seria migrado
hermes claw migrate --dry-run
# Migração completa (todas as opções compatíveis, sem segredos)
hermes claw migrate --preset full
# Migração completa incluindo as chaves de API
hermes claw migrate --preset full --migrate-secrets
# Migra só os dados do usuário (sem segredos), sobrescrevendo conflitos
hermes claw migrate --preset user-data --overwrite
# Migra de um caminho personalizado do OpenClaw
hermes claw migrate --source /home/user/old-openclaw
hermes import-agent
hermes import-agent [claude-code|codex] [options]
Importa uma instalação do Claude Code (~/.claude) ou da Codex CLI da OpenAI (~/.codex) para o Hermes. Mapeia as instruções de CLAUDE.md/AGENTS.md para entradas de memória, as regras de permissão Bash(...) para command_allowlist/approvals.deny, os servidores MCP para mcp_servers no config.yaml, e os diretórios de skill para ~/.hermes/skills/. Sempre mostra uma prévia antes de aplicar; chaves de API e credenciais nunca são importadas.
| Opção | Descrição |
|---|---|
agent | claude-code ou codex (padrão: detecção automática). |
--source <path> | Diretório de origem personalizado (padrão: ~/.claude ou ~/.codex). |
--dry-run | Só prévia — não grava nada. |
--overwrite | Substitui servidores MCP / skills em conflito (padrão: pular). |
--yes, -y | Pula as confirmações. |
Veja o guia de importação para as tabelas completas de mapeamento.
hermes serve
hermes serve [options]
Sobe o servidor de backend do Hermes — o gateway JSON-RPC/WebSocket ao qual o app de desktop e os clientes remotos se conectam. É o mesmo servidor que o hermes dashboard roda, mas headless: ele nunca abre uma interface no navegador. O app de desktop sobe o próprio backend hermes serve; use este comando diretamente quando quiser um backend headless em uma máquina remota. Aceita as mesmas opções --host / --port / --insecure / --skip-build / --stop / --status do hermes dashboard abaixo (um bind fora do loopback aciona a mesma trava de autenticação). Exige o extra [web]; o socket de Chat embutido também precisa do [pty] em um host POSIX.
Conflitos de porta: se a porta pedida (padrão 9119) já estiver ocupada por outro processo (por exemplo, um segundo hermes serve ou o gateway), o comando imprime em stdout a linha sentinela legível por máquina BACKEND_PORT_IN_USE port=<port>, uma dica em linguagem natural apontando o provável ocupante, e sai com código 75 (EX_TEMPFAIL) em vez de um erro genérico — assim scripts e o app de desktop conseguem distinguir "porta ocupada" de "backend quebrado". Passe --port 0 para escolher uma porta efêmera livre (a subida bem-sucedida anuncia a porta escolhida com HERMES_BACKEND_READY port=<port>).
hermes dashboard
hermes dashboard [options]
Abre o painel web — uma interface no navegador para gerenciar configuração e chaves de API e acompanhar sessões. (Para um backend headless sem interface de navegador — como o que o app de desktop sobe — use o hermes serve acima.) Exige cd ~/.hermes/hermes-agent && uv pip install -e ".[web]" (FastAPI + Uvicorn). A aba de Chat embutida no navegador está sempre disponível e também precisa do extra pty (cd ~/.hermes/hermes-agent && uv pip install -e ".[web,pty]") mais um ambiente POSIX com PTY, como Linux, macOS ou WSL2. Veja Painel web para a documentação completa.
| Opção | Padrão | Descrição |
|---|---|---|
--port | 9119 | Porta em que o servidor web roda |
--host | 127.0.0.1 | Endereço de bind |
--no-open | — | Não abre o navegador automaticamente |
--insecure | desligado | Obsoleto / sem efeito. Antigamente dispensava a autenticação num bind fora do loopback. Desde o endurecimento de junho de 2026, um bind público sempre exige um provedor de autenticação (senha ou OAuth). Faça bind em 127.0.0.1 e use um túnel para manter tudo local. |
--skip-build | desligado | Pula a etapa de build da interface web e serve o diretório dist existente. Útil em contextos não interativos (Tarefas Agendadas do Windows, CI) onde não há npm. Faça o build antes com cd web && npm run build. |
--isolated | desligado | Quando iniciado a partir de um perfil nomeado (worker dashboard), roda um servidor dedicado por perfil em vez de rotear para o painel da máquina. |
--stop | — | Para os processos de hermes dashboard em execução e sai. |
--status | — | Lista os processos de hermes dashboard em execução e sai. |
hermes dashboard register
Registra esta instalação como um painel auto-hospedado na sua conta do Nous Portal. Cria um cliente OAuth, grava HERMES_DASHBOARD_OAUTH_CLIENT_ID no ~/.hermes/.env e explica como ativar a trava de login. Exige estar autenticado (hermes setup).
| Opção | Descrição |
|---|---|
--name | Rótulo legível para o painel (padrão: gerado automaticamente). |
--redirect-uri | URI HTTPS pública de redirecionamento OAuth (por exemplo, https://hermes.exemplo.com/auth/callback). Omita para uso só em localhost. |
--portal-url | Sobrepõe a URL base do Nous Portal no registro (padrão: o portal em que você entrou). Também definível por HERMES_DASHBOARD_PORTAL_URL. |
# Padrão — abre o navegador em http://127.0.0.1:9119
hermes dashboard
# Porta personalizada, sem navegador
hermes dashboard --port 8080 --no-open
# A partir do apelido de um perfil — roteia para o painel da máquina com o
# perfil já selecionado no alternador da barra lateral (anexa se já estiver rodando)
worker dashboard
hermes profile
hermes profile <subcommand>
Gerencia perfis — várias instâncias isoladas do Hermes, cada uma com sua própria configuração, sessões, skills e diretório home.
| Subcomando | Descrição |
|---|---|
list | Lista todos os perfis. |
use <name> | Define um perfil padrão fixo. |
create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias] | Cria um perfil novo. --clone copia a configuração, o .env, o SOUL.md e as skills do perfil ativo. --clone-all copia todo o estado. --clone-from indica um perfil de origem e implica a clonagem da configuração, a não ser que venha junto com --clone-all. |
delete <name> [-y] | Apaga um perfil. |
show <name> | Mostra os detalhes do perfil (diretório home, configuração etc.). |
alias <name> [--remove] [--name NAME] | Gerencia scripts de atalho para acesso rápido ao perfil. |
rename <old> <new> | Renomeia um perfil. |
export <name> [-o FILE] | Exporta um perfil para um arquivo .tar.gz (backup local). |
import <archive> [--name NAME] | Importa um perfil de um arquivo .tar.gz (restauração local). |
install <source> [--name N] [--alias] [--force] [-y] | Instala uma distribuição de perfil a partir de uma URL git ou de um diretório local. |
update <name> [--force-config] [-y] | Puxa a distribuição de novo; preserva os dados do usuário (memórias, sessões, autenticação). |
info <name> | Mostra o manifesto de distribuição de um perfil (versão, requisitos, origem). |
Exemplos:
hermes profile list
hermes profile create work --clone
hermes profile use work
hermes profile alias work --name h-work
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes profile install github.com/user/my-distro --alias
hermes profile update work
hermes -p work chat -q "Olá do perfil de trabalho"
hermes completion
hermes completion [bash|zsh|fish]
Imprime em stdout um script de autocompletar do shell. Carregue a saída no perfil do seu shell para ter tab-completion de comandos, subcomandos e nomes de perfil do Hermes.
Exemplos:
# Bash
hermes completion bash >> ~/.bashrc
# Zsh
hermes completion zsh >> ~/.zshrc
# Fish
hermes completion fish > ~/.config/fish/completions/hermes.fish
hermes update
hermes update [--gateway] [--check] [--plan] [--no-backup] [--backup] [--yes]
Puxa o código mais recente do hermes-agent, reinstala as dependências na venv gerenciada e então roda de novo os hooks pós-instalação (servidores MCP, sincronização de skills, instalação do autocompletar). Seguro de rodar numa instalação em uso. Use --check para ver se o seu checkout está atrás do origin/main sem instalar nada.
O hermes update puxa a branch de atualização configurada (padrão: main). Se o seu checkout está em outra branch, o Hermes pode trocar para a branch de atualização antes de puxar. Faça commit do trabalho na branch antes de atualizar, se quiser mantê-lo fora do fluxo de autostash da atualização.
| Opção | Descrição |
|---|---|
--gateway | Modo interno usado pelo comando /update das mensagens. Usa IPC baseada em arquivo para perguntas e streaming de progresso, em vez de ler do stdin do terminal. Não é uma flag de reinício de gateway. |
--check | Verifica se há atualização disponível, sem puxar, instalar dependências ou reiniciar nada. |
--plan | Imprime o plano de atualização e sai sem mudar nada: tipo de instalação (git/Docker/Nix/apt), todos os serviços do Hermes em execução em todos os perfis com seu supervisor e a versão do código rodando, e como cada um será reiniciado. Em instalações gerenciadas por imagem ou pacote, informa o comando externo de atualização correto no lugar disso. Somente leitura. |
--no-backup | Pula todos os backups pré-atualização nesta execução (tanto o snapshot rápido de estado quanto o zip completo), independentemente de updates.pre_update_backup. |
--backup | Força um backup pré-atualização completo nesta execução: o snapshot rápido de estado mais um zip completo do HERMES_HOME (configuração, autenticação, sessões, skills, dados de pareamento). O modo padrão é quick — só um snapshot leve de estado. Defina o modo permanente com `updates.pre_update_backup: quick |
--yes, -y | Assume sim nas perguntas interativas, como migração de configuração e restauração de stash. A entrada de chaves de API é pulada; rode hermes config migrate separadamente para isso. |
Comportamentos adicionais:
- Reinício do gateway. Depois de uma atualização bem-sucedida, o Hermes tenta reiniciar automaticamente todos os perfis de gateway em execução, para que peguem o código novo. Use
hermes gateway restartquando quiser reiniciar um gateway sem aplicar atualização. - Recuperação na fase de reinício. Se a fase de reinício no próprio processo abortar ao importar a árvore recém-puxada, os perfis de gateway supervisionados são tentados de novo em um processo Python limpo. Só reinícios confirmados de forma independente pelo systemd (
systemctl --user is-active) contam como verificados; um relançamento que apenas saiu com 0 é registrado comorelaunch_attemptede ainda assim faz a atualização falhar, por conservadorismo. Gateways manuais e runtimes de serve/dashboard nunca são mortos sem uma autoridade de relançamento; eles são registrados como pulados, com o motivo, e permanecem no relatório de atualização incompleta com o comando exato de reinício. - Recibos de atualização + checagem de versão da frota. Toda execução grava um recibo legível por máquina em
~/.hermes/logs/update_receipts/(plano de frota pré-atualização, etapas, itens pulados com motivo, resultado do reinício; olatest.jsonaponta para o mais novo). Depois da fase de reinício, o atualizador confere o código em execução de cada gateway vivo contra o checkout atualizado e imprime uma matriz de versões por perfil; um gateway ainda no código antigo faz a atualização falhar (saída 1), com o comando exato de reinício. - Mudanças locais no código-fonte. Em instalações por git, arquivos rastreados sujos e arquivos não rastreados vão para o stash automaticamente antes do checkout da branch ou do pull (
git stash push --include-untracked). Atualizações em terminal interativo perguntam antes de restaurar o stash. Atualizações não interativas restauram por padrão; definaupdates.non_interactive_local_changes: discardsó em instalações gerenciadas em que edições locais de código devem ser descartadas depois de um pull bem-sucedido. Se a restauração do stash der conflito ou o pull falhar, o stash fica onde está, para recuperação manual. - Ruído no lockfile do npm. Antes de dar stash ou trocar de branch, o Hermes faz uma limpeza de melhor esforço dos diffs rastreados de
package-lock.jsonproduzidos por etapas de install/build do npm. Faça commit ou stash manual das edições intencionais de lockfile antes de rodarhermes update. - Snapshot dos dados de pareamento. Mesmo com o
--backupdesligado, ohermes updatetira um snapshot leve de~/.hermes/pairing/e das regras de comentário do Feishu antes dogit pull. Dá para reverter comhermes backup restore --state pre-updatese um pull reescrever um arquivo que você estava editando. - Aviso do
hermes.serviceantigo. Se o Hermes detectar uma unidade systemdhermes.serviceanterior à renomeação (em vez da atualhermes-gateway.service), ele imprime uma dica de migração, uma única vez, para você evitar problemas de reinício em loop. - Códigos de saída.
0no sucesso,1em erros de pull/instalação/pós-instalação,2em mudanças inesperadas na árvore de trabalho que impedem ogit pull.
Comandos de manutenção
| Comando | Descrição |
|---|---|
hermes --version | Imprime as informações de versão. |
hermes update | Puxa as mudanças mais recentes e reinstala as dependências. |
| hermes uninstall [--full] [--gui] [--dry-run] [--yes] | Remove o Hermes, opcionalmente apagando toda a configuração e os dados. --gui remove só a GUI de Chat do desktop, deixando o agente intacto; --full também apaga configuração e dados; --dry-run imprime o que seria removido sem mudar nada; --yes pula as perguntas. |
Veja também
- Referência de comandos de barra
- Interface de linha de comando
- Sessões
- Sistema de skills
- Skins e temas