Pular para o conteúdo principal

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çãoDescrição
--version, -VMostra 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, -wComeça em um git worktree isolado, para fluxos com agentes em paralelo.
--yoloIgnora as confirmações de comandos perigosos.
--pass-session-idInclui o ID da sessão no prompt de sistema do agente.
--ignore-user-configIgnora o ~/.hermes/config.yaml e volta aos padrões embutidos. As credenciais do .env continuam sendo carregadas.
--ignore-rulesPula a injeção automática de AGENTS.md, SOUL.md, .cursorrules, memória e skills pré-carregadas.
--tuiAbre a TUI em vez da CLI clássica. Equivale a HERMES_TUI=1. Sempre ganha de display.interface.
--cliForça o REPL clássico em prompt_toolkit. Use para sobrepor display.interface: tui em uma invocação só.
--devCom --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​

ComandoPara que serve
hermes chatConversa interativa ou de tiro único com o agente.
hermes modelEscolhe interativamente o provedor e o modelo padrão.
hermes moaConfigura presets nomeados de Mixture of Agents, selecionáveis no seletor de modelos.
hermes fallbackGerencia os provedores de reserva usados quando o modelo principal dá erro.
hermes gatewayRoda ou gerencia o serviço de gateway de mensagens.
hermes proxyProxy local compatível com a API da OpenAI que anexa credenciais OAuth do provedor. Veja Proxy de assinatura.
hermes egressFirewall 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 lspGerencia a integração com o Language Server Protocol (diagnóstico semântico para write_file/patch).
hermes setupAssistente interativo de configuração, total ou por parte.
hermes whatsappConfigura e pareia a ponte com o WhatsApp.
hermes whatsapp-cloudConfigura 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 slackUtilitários do Slack (hoje: gerar o manifesto do app com cada comando como barra nativa).
hermes authGerencia credenciais — adicionar, listar, remover, resetar, status, logout. Cuida dos fluxos OAuth de Codex/Nous/Anthropic.
hermes login / logoutObsoleto — use hermes auth.
hermes sendEnvia 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 peerRegistra 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 secretsGerencia 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 migrateDiagnostica e (opcionalmente) reescreve o config.yaml para substituir referências a modelos aposentados ou opções obsoletas (por exemplo, migrate xai).
hermes statusMostra o status do agente, da autenticação e das plataformas.
hermes cronInspeciona e dispara o agendador cron.
hermes kanbanQuadro de colaboração multiperfil (tarefas, links, despachante).
hermes projectGerencia 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 webhookGerencia assinaturas dinâmicas de webhook para ativação orientada a eventos.
hermes hooksInspeciona, aprova ou remove hooks de script de shell declarados no config.yaml.
hermes doctorDiagnostica problemas de configuração e de dependências.
hermes security auditAuditoria de cadeia de suprimentos sob demanda (OSV.dev) para a venv, os requisitos dos plugins e os servidores MCP fixados.
hermes approvalsFerramentas de aprovação — extrai propostas de allowlist do histórico de aprovações.
hermes dumpResumo da instalação pronto para copiar e colar, para suporte e depuração.
hermes prompt-sizeMostra a divisão em bytes do prompt de sistema + esquemas de ferramentas (índice de skills, memória, perfil). Roda offline.
hermes debugFerramentas de depuração — envia logs e informações do sistema para o suporte.
hermes backupFaz backup do diretório home do Hermes em um arquivo zip.
hermes checkpointsInspeciona / poda / limpa o ~/.hermes/checkpoints/ (o armazenamento sombra usado pelo /rollback). Sem argumentos, mostra um panorama de status.
hermes importRestaura um backup do Hermes a partir de um arquivo zip.
hermes logsVisualiza, acompanha e filtra os arquivos de log do agente, do gateway e de erros.
hermes configMostra, edita, migra e consulta os arquivos de configuração.
hermes skinLista, troca e ajusta os skins de exibição.
hermes consoleAbre o console seguro de comandos do Hermes.
hermes pairingAprova ou revoga códigos de pareamento de mensagens.
hermes skillsNavega, instala, publica, audita e configura skills.
hermes bundlesAgrupa várias skills sob um único comando de barra /<name>. Veja Pacotes de skills.
hermes curatorManutençã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 memoryConfigura 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 acpRoda o Hermes como servidor ACP para integração com editores.
hermes mcpGerencia configurações de servidores MCP e roda o Hermes como servidor MCP.
hermes pluginsGerencia plugins do Hermes Agent (instalar, ativar, desativar, remover).
hermes portalStatus do Nous Portal, link da assinatura e roteamento do Tool Gateway. Veja Tool Gateway.
hermes toolsConfigura quais ferramentas ficam ativas por plataforma.
hermes computer-useInstala ou verifica o backend de Computer Use (cua-driver) no macOS/Windows/Linux.
hermes petsNavega, 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 sessionsNavega, exporta, poda, renomeia e apaga sessões.
hermes insightsMostra análises de tokens, custo e atividade.
hermes clawUtilitários de migração do OpenClaw.
hermes import-agentImporta uma instalação do Claude Code (~/.claude) ou da Codex CLI (~/.codex).
hermes dashboardAbre o painel web para gerenciar configuração, chaves de API e sessões.
hermes serveSobe 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 profileGerencia perfis — várias instâncias isoladas do Hermes.
hermes completionImprime os scripts de autocompletar do shell (bash/zsh/fish).
hermes --versionMostra as informações de versão.
hermes updatePuxa 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 uninstallRemove o Hermes do sistema.

hermes chat​

hermes chat [options]

Opções comuns:

OpçãoDescrição
-q, --query "..."Prompt de tiro único, não interativo.
--query-file PATHLê 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, --verboseSaída detalhada.
-Q, --quietModo 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.
--worktreeCria um git worktree isolado para esta execução.
--checkpointsAtiva checkpoints do sistema de arquivos antes de mudanças destrutivas.
--yoloPula as confirmações de aprovação.
--pass-session-idPassa o ID da sessão para dentro do prompt de sistema.
--ignore-user-configIgnora 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-rulesPula 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-modeModo 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):

FlagVariável de ambiente equivalentePara que serve
-m / --model <model>HERMES_INFERENCE_MODELSobrepõ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 x /model — saiba a diferença

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
E se eu só vir modelos da OpenRouter?

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:

SubcomandoDescrição
runRoda o gateway em primeiro plano. Recomendado para WSL, Docker e Termux.
startSobe o serviço de segundo plano instalado no systemd/launchd.
stopPara o serviço (ou o processo em primeiro plano).
restartReinicia o serviço.
statusMostra o status do serviço.
listLista 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.
installInstala como serviço de segundo plano no systemd (Linux) ou launchd (macOS).
uninstallRemove o serviço instalado.
setupConfiguração interativa das plataformas de mensagem.
migrate-legacyRemove 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.
enrollExperimental: 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çãoDescrição
--allEm 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-superviseNo 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-supervisorNo 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.

Quem usa WSL

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:

SubcomandoDescrição
statusMostra o estado do serviço, os servidores configurados e o status de instalação.
listImprime o registro de servidores suportados. Passe --installed-only para pular os ausentes.
install <id>Instala imediatamente o binário de um servidor.
install-allInstala todos os servidores que têm receita de instalação automática.
restartDerruba 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çãoDescrição
modelConfiguração de provedor e modelo.
terminalConfiguração do backend de terminal e do sandbox.
gatewayConfiguração das plataformas de mensagem.
toolsAtiva/desativa ferramentas por plataforma.
agentAjustes de comportamento do agente.

Opções:

OpçãoDescrição
--quickEm execuções de quem já configurou: só pergunta o que está faltando ou não definido. Pula o que você já tem configurado.
--non-interactiveUsa padrões e valores de ambiente, sem perguntas.
--resetVolta a configuração aos padrões antes de começar.
--reconfigureApelido de compatibilidade — hoje um hermes setup puro numa instalação existente já faz isso por padrão.
--portalConfiguraçã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.

SubcomandoDescriçã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.
openAbre portal.nousresearch.com/manage-subscription no seu navegador padrão.
toolsLista 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.

FlagPadrãoPara que serve
--write [PATH]stdoutGrava em um arquivo em vez de stdout. --write puro grava em $HERMES_HOME/slack-manifest.json.
--name NAMEHermesNome de exibição do bot no Slack.
--description DESCtexto padrãoDescrição do bot mostrada no diretório de apps do Slack.
--long-description TEXTnão definidoDefine display_information.long_description direto na linha de comando (175 a 4.000 caracteres). Incompatível com --slashes-only.
--long-description-file PATHnão definidoLê 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-onlydesligadoEmite 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çãoDescriçã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, --quietNão imprime nada em stdout no sucesso — útil em scripts (confie só no código de saída).
--jsonEmite 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).

SubcomandoDescriçã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.
listLista 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):

SubcomandoDescrição
setupAssistente 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.
statusMostra a configuração atual, o caminho/versão do binário e o status de validação do token.
tokenRotaciona 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.
syncBusca 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).
installBaixa e verifica o binário bws fixado. --force baixa de novo mesmo se já existir uma cópia gerenciada.
disableDesliga 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).

SubcomandoDescrição
xaiVarre 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:

FlagDescrição
--applyReescreve o config.yaml no lugar (padrão: simulação, sem gravar nada).
--no-backupPula 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) — o hermes 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.

SubcomandoDescrição
startRoda 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).
statusMostra quais destinos de proxy estão prontos (credenciais presentes, OAuth válido).
providersLista 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.

SubcomandoDescrição
auditRoda uma auditoria de cadeia de suprimentos de tiro único.

Flags do audit:

FlagPadrãoDescrição
--jsondesligadoEmite JSON legível por máquina em vez de texto legível por pessoa.
--fail-on <level>criticalSai com código não-zero quando algum achado atinge esta severidade (low, moderate, high, critical).
--skip-venvdesligadoPula a varredura da venv Python do Hermes.
--skip-pluginsdesligadoPula a varredura dos arquivos de requisitos dos plugins.
--skip-mcpdesligadoPula a varredura dos servidores MCP fixados no config.yaml.

hermes login / hermes logout (obsoletos)​

cuidado

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çãoDescrição
--allMostra todos os detalhes em um formato censurado, pronto para compartilhar.
--deepRoda checagens mais profundas, que podem demorar.

hermes cron​

hermes cron <list|create|edit|pause|resume|run|remove|status|tick>
SubcomandoDescrição
listMostra as tarefas agendadas.
create / addCria 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>.
editAtualiza 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).
pausePausa uma tarefa sem apagá-la.
resumeRetoma uma tarefa pausada e calcula a próxima execução futura.
runDispara uma tarefa no próximo tique do agendador.
removeApaga uma tarefa agendada.
statusVerifica se o agendador cron está rodando.
tickRoda 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):

FlagPara 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çãoPara que serve
initCria o kanban.db se não existir. Idempotente.
boards list / boards lsLista 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 useGrava <slug> como quadro ativo (escreve em ~/.hermes/kanban/current).
boards show / boards currentImprime 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 / lsLista 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.
dispatchUma 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 --allTransforma 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 --allAbre 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.
gcRemove 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.

SubcomandoDescrição
createCria um projeto novo.
list (apelido ls)Lista os projetos.
showMostra os detalhes de um projeto.
add-folderAdiciona uma pasta/repositório ao projeto.
remove-folderRemove uma pasta do projeto.
renameRenomeia um projeto.
set-primaryDefine a pasta principal.
useDefine o projeto ativo.
archiveArquiva um projeto (recuperável).
restoreRestaura um projeto arquivado.
bind-boardLiga 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.

SubcomandoDescrição
subscribe / addCria uma rota de webhook. Devolve a URL e o segredo HMAC para você configurar no seu serviço.
list / lsMostra todas as assinaturas criadas pelo agente.
remove / rmApaga uma assinatura dinâmica. Rotas estáticas do config.yaml não são afetadas.
testEnvia um POST de teste para verificar se uma assinatura está funcionando.

hermes webhook subscribe​

hermes webhook subscribe <name> [options]
OpçãoDescrição
--promptModelo de prompt com referências ao payload em {dot.notation}.
--eventsTipos de evento aceitos, separados por vírgula (por exemplo, issues,pull_request). Vazio = todos.
--descriptionDescrição legível por pessoas.
--skillsNomes de skills a carregar na execução do agente, separados por vírgula.
--deliverDestino de entrega: log (padrão), telegram, discord, slack, github_comment.
--deliver-chat-idID do chat/canal de destino para entrega entre plataformas.
--secretSegredo HMAC personalizado. Gerado automaticamente se omitido.
--deliver-onlyPula 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).
--scriptScript 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çãoDescrição
--fixTenta 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çãoDescrição
--show-keysMostra prefixos censurados das chaves de API (primeiros e últimos 4 caracteres) em vez de apenas set/not set.

O que ele inclui​

SeçãoDetalhes
CabeçalhoVersão do Hermes, data de lançamento, hash do commit git
AmbienteSistema operacional, versão do Python, versão do SDK da OpenAI
IdentidadeNome do perfil ativo, caminho do HERMES_HOME
ModeloModelo e provedor padrão configurados
TerminalTipo de backend (local, docker, ssh etc.)
Chaves de APIChecagem de presença das 22 chaves de provedores/ferramentas
RecursosToolsets ativos, quantidade de servidores MCP, provedor de memória
ServiçosStatus do gateway, plataformas de mensagem configuradas
Carga de trabalhoContagem de tarefas de cron, quantidade de skills instaladas
Ajustes de configuraçãoQuaisquer 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
dica

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çãoDescriçã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).
--nousEnvia 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.
--localImprime o relatório localmente em vez de enviar.
--no-redactDesliga 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çãoDescrição
-o, --output <path>Caminho de saída do zip (padrão: ~/hermes-backup-<timestamp>.zip).
-q, --quickSnapshot 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 *.db já recebeu um snapshot consistente via sqlite3.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-agent em 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.

SubcomandoDescrição
status (padrão)Mostra o tamanho total, a quantidade de projetos e o detalhamento por projeto. Um hermes checkpoints puro é equivalente.
listApelido de status.
pruneForç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.
clearApaga toda a base de checkpoints. Irreversível; pede confirmação, a menos que se use -f.
clear-legacyApaga só os arquivos legacy-<timestamp>/ produzidos pela migração v1→v2.

Opções​

OpçãoSubcomandoDescrição
--limit Nstatus, listMáximo de projetos a listar (padrão 20).
--retention-days NpruneDescarta projetos cujo last_touch é mais antigo que N dias (padrão 7).
--max-size-mb NpruneDepois 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-orphanspruneNão apaga projetos cujo diretório de trabalho não existe mais.
-f, --forceclear, clear-legacyPula 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çãoDescrição
-f, --forcePula a confirmação de instalação existente.
aviso

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​

NomeArquivoO que registra
agent (padrão)agent.logToda a atividade do agente — chamadas de API, despacho de ferramentas, ciclo de vida das sessões (INFO e acima)
errorserrors.logSó avisos e erros — um subconjunto filtrado do agent.log
gatewaygateway.logAtividade do gateway de mensagens — conexões de plataforma, despacho de mensagens, eventos de webhook
guigui.logEventos do painel, do gateway da TUI, da ponte PTY e de websocket
desktopdesktop.logApp de desktop em Electron — inicialização, saída da subida do backend e tracebacks recentes do Python

Opções​

OpçãoDescrição
log_nameQual 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, --followAcompanha 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
dica

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:

SubcomandoDescrição
showMostra os valores atuais da configuração.
editAbre 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.
pathImprime o caminho do arquivo de configuração.
env-pathImprime o caminho do arquivo .env.
checkProcura configuração faltando ou desatualizada.
migrateAdiciona interativamente as opções recém-introduzidas.

hermes pairing​

hermes pairing <list|approve|revoke|clear-pending>
SubcomandoDescrição
listMostra 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-pendingLimpa os códigos de pareamento pendentes.

hermes skills​

hermes skills <subcommand>

Subcomandos:

SubcomandoDescrição
browseNavegador paginado dos registros de skills.
searchBusca nos registros de skills.
installInstala uma skill.
inspectEspia uma skill sem instalar.
listLista as skills instaladas.
checkVerifica se as skills instaladas do hub têm atualização upstream.
updateReinstala as skills do hub que têm mudanças upstream disponíveis.
auditRe-analisa as skills instaladas do hub.
uninstallRemove uma skill instalada pelo hub.
resetDestrava 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-outImpede 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-inDesfaz 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.
publishPublica uma skill em um registro.
snapshotExporta/importa configurações de skills.
tapGerencia fontes personalizadas de skills.
configConfiguraçã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 --force consegue passar por bloqueios de política não perigosos em skills de terceiros ou da comunidade.
  • O --force não passa por um veredito de varredura dangerous.
  • --source skills-sh busca no diretório público skills.sh.
  • --source well-known permite apontar o Hermes para um site que expõe /.well-known/skills/index.json.
  • --source browse-sh busca 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 forma browse-sh/airbnb.com/search-listings-ddgioa.
  • Passar uma URL http(s)://…/*.md instala o SKILL.md mais os arquivos explicitamente referenciados em references/, templates/, scripts/, assets/ e examples/. Quando o frontmatter não tem name: e o slug da URL não é um identificador válido, um terminal interativo pede um nome; superfícies não interativas (/skills install dentro 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:

SubcomandoDescrição
listLista 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
reloadRe-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.

SubcomandoDescrição
statusMostra o status do curador e as estatísticas de skills
runDispara uma revisão agora (bloqueia até a passada do LLM terminar)
run --backgroundInicia a passada do LLM em uma thread de segundo plano e retorna na hora
run --dry-runSó prévia — produz o relatório de revisão sem alterar nada
backupTira um snapshot manual em tar.gz de ~/.hermes/skills/ (o curador também tira um snapshot automático antes de cada execução real)
rollbackRestaura ~/.hermes/skills/ a partir de um snapshot (por padrão, o mais recente)
rollback --listLista os snapshots disponíveis
rollback --id <ts>Restaura um snapshot específico pelo id
rollback -yPula a confirmação
pausePausa o curador até você retomar
resumeRetoma 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
prunePoda manualmente as skills que o curador normalmente limparia
list-archivedLista 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.

SubcomandoDescrição
list (apelido: ls)Mostra a cadeia de reserva atual (padrão quando não há subcomando)
addEscolhe 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
clearRemove 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.

SubcomandoDescriçã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)
doctorConfere 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:

SubcomandoDescrição
setupSeleção e configuração interativas do provedor.
statusMostra a configuração atual do provedor de memória.
offDesliga o provedor externo (fica só o embutido).
Subcomandos por provedor

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.

SubcomandoDescrição
(nenhum) ou pickerSeletor interativo de catálogo — navegue pelos MCPs aprovados pela Nous e instale/ative/desative.
catalogLista 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.
SubcomandoDescriçã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çãoDescrição
--summaryImprime 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:

SubcomandoDescrição
installRoda o instalador oficial do cua-driver (macOS, Windows e Linux).
install --upgradeRoda 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.
statusImprime 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 grantPede 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.

SubcomandoDescrição
listNavega pela galeria do petdex.
installInstala um pet da galeria.
selectDefine o pet ativo (escreve em display.pet.*).
showAnima o pet ativo no terminal.
offDesliga a exibição do pet.
scaleRedimensiona o pet em todo lugar (display.pet.scale).
removeApaga um pet instalado.
doctorConfere 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:

SubcomandoDescrição
listLista as sessões recentes.
browseSeletor 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.
pruneApaga 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.
archiveArquiva em lote (esconde, sem apagar) as sessões que casam com os mesmos filtros do prune. Exige pelo menos um filtro.
statsMostra estatísticas do armazenamento de sessões.
rename <session-id> <title>Define ou muda o título de uma sessão.
optimizeRecupera espaço em disco: junta os segmentos do índice FTS5 + VACUUM. Não destrutivo — nenhum dado de sessão muda.
optimize-storageMigra 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.
repairRepara 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-routingReconecta 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.
recoverRecuperação offline e não destrutiva de um state.db danificado para um banco limpo separado.
retitle-skillsRegera 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çãoDescriçã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çãoDescrição
--dry-runMostra 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.
--overwriteSobrescreve arquivos do Hermes já existentes em caso de conflito (padrão: recusar a aplicação quando o plano tem conflitos).
--migrate-secretsInclui as chaves de API na migração. Obrigatório mesmo com --preset full.
--no-backupPula 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.
--yesPula 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çãoDescrição
agentclaude-code ou codex (padrão: detecção automática).
--source <path>Diretório de origem personalizado (padrão: ~/.claude ou ~/.codex).
--dry-runSó prévia — não grava nada.
--overwriteSubstitui servidores MCP / skills em conflito (padrão: pular).
--yes, -yPula 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çãoPadrãoDescrição
--port9119Porta em que o servidor web roda
--host127.0.0.1Endereço de bind
--no-open—Não abre o navegador automaticamente
--insecuredesligadoObsoleto / 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-builddesligadoPula 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.
--isolateddesligadoQuando 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çãoDescrição
--nameRótulo legível para o painel (padrão: gerado automaticamente).
--redirect-uriURI HTTPS pública de redirecionamento OAuth (por exemplo, https://hermes.exemplo.com/auth/callback). Omita para uso só em localhost.
--portal-urlSobrepõ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.

SubcomandoDescrição
listLista 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çãoDescrição
--gatewayModo 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.
--checkVerifica se há atualização disponível, sem puxar, instalar dependências ou reiniciar nada.
--planImprime 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-backupPula 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.
--backupForç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, -yAssume 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 restart quando 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 como relaunch_attempted e 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; o latest.json aponta 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; defina updates.non_interactive_local_changes: discard só 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.json produzidos por etapas de install/build do npm. Faça commit ou stash manual das edições intencionais de lockfile antes de rodar hermes update.
  • Snapshot dos dados de pareamento. Mesmo com o --backup desligado, o hermes update tira um snapshot leve de ~/.hermes/pairing/ e das regras de comentário do Feishu antes do git pull. Dá para reverter com hermes backup restore --state pre-update se um pull reescrever um arquivo que você estava editando.
  • Aviso do hermes.service antigo. Se o Hermes detectar uma unidade systemd hermes.service anterior à renomeação (em vez da atual hermes-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. 0 no sucesso, 1 em erros de pull/instalação/pós-instalação, 2 em mudanças inesperadas na árvore de trabalho que impedem o git pull.

Comandos de manutenção​

ComandoDescrição
hermes --versionImprime as informações de versão.
hermes updatePuxa 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​