Hermes v0.20.2: O Patch das Conexões — Desktop Multi-Gateway, Instalações de MCP com Um Clique e Sessões por Terminal

Na segunda-feira de manhã, você roda hermes update como de costume, o terminal imprime calmamente “Updated to v0.20.2”, e pronto. Mas não feche o terminal ainda — por trás dessa release de patch aparentemente inofensiva está uma mudança estrutural que o app de desktop precisava há anos: a era das múltiplas conexões finalmente chegou.
v0.20.2 (tag v2026.8.16) mesclou ~397 PRs e 967 commits nos três dias desde a v0.20.1, concentrados em três áreas: a arquitetura de conexões do desktop, a experiência do MCP e a retomada de sessão no CLI. As notas oficiais são, como sempre, breves (a documentação completa acompanha a v0.21.0); aqui está o que realmente merece sua atenção esta semana.
Desktop: de “uma conexão” a “conexões ilimitadas”
1. Registro de multi-conexões: local, remoto, cloud e SSH de uma vez só
O app de desktop costumava ter uma única conexão global; alcançar um gateway remoto ou o Hermes Cloud significava overrides por profile, complicados e propensos a erros. Settings → Connections agora é um registro de verdade: qualquer número de fontes de agente nomeadas — o runtime local, gateways remotos (LAN / Tailscale / internet pública), instâncias do Hermes Cloud, hosts SSH — persistidas em um só lugar, com rótulos únicos (case-insensitive) aplicados no salvamento (#86679).
A release traz roteamento de pool de backends por par (conexão, profile) (#86839), um roster de agentes multi-fonte + SDK (#86875) e affordances de descoberta: uma pill “Connect another Hermes gateway…” fixada na trilha de profiles e uma entrada de paleta de comandos ⌘K para Settings → Connections (#87603). Gerenciar várias máquinas e gateways não significa mais editar arquivos de configuração.
2. Verificações de saúde de MCP em segundo plano: tokens expirados agora avisam você
Um token OAuth de servidor MCP expirando costumava passar despercebido até você abrir a página do MCP por acaso. O desktop agora executa uma varredura em segundo plano ao conectar o gateway e a cada 30 minutos (#87579); quando um servidor entra no estado needs-auth (ou de erro), um aviso dispara no app — “GitHub MCP needs re-authentication” — com uma ação Sign in que faz deep-link para o painel de configuração do servidor, rola até ele, o faz piscar e deixa o botão Authenticate a um clique de distância. Servidores stdio ficam de fora da sondagem em segundo plano, já que cada sondagem é um spawn real.
3. Deep links hermes://: instale servidores MCP a partir de uma página web
Fornecedores de MCP e documentações agora podem oferecer um botão “Add to Hermes” com um clique (#87581). O deep link hermes://mcp/install?name=NAME&config=B64 passa por validação rigorosa (o nome deve corresponder a ^[A-Za-z0-9._-]{1,64}$ e o config é JSON codificado em base64url) e por um diálogo de confirmação explícito antes que qualquer coisa toque sua configuração — espelhando o padrão cursor://anysphere.cursor-deeplink/mcp/install do Cursor, mas com um portão de segurança rígido.
CLI: a retomada de sessão finalmente conhece seu terminal
4. Breadcrumbs de terminal: cada painel continua sua própria sessão
Um hermes -c / --continue puro costumava retomar a sessão globalmente mais recente — abra dois painéis tmux, um depurando um bug e outro projetando uma API, e o -c arrastava os dois para a mesma conversa. O CLI agora registra um breadcrumb por terminal (caminho do tty, painel tmux, janela kitty, painel wezterm, painel Zellij ou sessão do Windows Terminal) e retoma a última sessão daquele terminal (#87346). Os breadcrumbs ficam em $HERMES_HOME/terminal-sessions/, são gravados atomicamente e expiram após 30 dias.
5. chat -c <título> --create-if-missing: crie se não existir
hermes chat -c "título" sem correspondência costumava falhar silenciosamente; agora ele falha de forma ruidosa no stderr com código de saída 1 e aponta para hermes sessions list ou --create-if-missing (#87706). Com a flag, um título ausente cria uma sessão nova com título e já entra nela — dando a scripts e plugins uma primitiva determinística de “enviar para este thread nomeado, criando-o se necessário”.
Correções de geração de imagens e UX de ferramentas
6. O upscaling de imagens voltou a ser opt-in
Uma mudança de 8 de agosto encadeava o Clarity Upscaler — um aprimorador SD1.5 de difusão de tiles criativo que redesenha o conteúdo — após 100% das gerações FAL/Krea abaixo de 2MP. A renderização de texto/CJK do GPT Image 2, a tipografia do Ideogram e os rostos fotorrealistas saíam todos visivelmente degradados (#87883). O upscaling agora está desligado por padrão; passe upscale: true explicitamente quando quiser.
7. Toda ferramenta pode ser interrompida com Ctrl+C
Algumas ferramentas (geração de imagens, TTS, transcrição) ignoravam interrupções — uma geração FAL + upscale podia segurar seu turno como refém por ~40 segundos. O executor sequencial agora consulta a flag de interrupção a cada segundo e abandona uma ferramenta em execução após um período de graça de 3 segundos (#87892); o image_generate ainda aborta cooperativamente sua espera FAL em andamento. O Ctrl+C finalmente significa o que diz.
Outras correções que valem a pena conhecer
- Usuários do terminal Kitty recuperam seu teclado: #87074 removeu o push do protocolo de teclado do Kitty para corrigir o Ctrl+C, quebrando toda combinação de tecla modificada no kitty; #87511 mapeou 294 sequências Ctrl/Alt/Shift e #87630 restaurou o push
CSI >1u— os dois problemas resolvidos. - As chaves da API Bedrock finalmente chegam: o token costumava ser enfiado em
OPENAI_API_KEYcom umprovider: custompuro, então as requisições saíam comapi_key="no-key-required"; agora ele é gravado como um provider nomeado (custom:bedrock-mantle+key_env) e entregue corretamente (#87191). /statusnão confunde mais providers: em sessões de fallback multi-provedor, o/statuspodia emparelhar um modelo com um provider/base URL de outra rota (GLM servido pelo NVIDIA NIM exibido comonous); as rotas persistidas agora são consistentes (#87271).- Listas desabilitadas finalmente funcionam:
skills.disabledeagent.disabled_toolsetssalvos viahermes config setcomo strings de array JSON eram tratados como nomes únicos e ficavam silenciosamente mortos por meses; as formas de string["a","b"]agora são analisadas corretamente (#86873). - Turns de /loop transmitidos completam: turns
already_senttransmitidos agora terminam seu tick do /loop corretamente (#87704) — combina bem com nosso guia do comando /loop.
Como atualizar
hermes update
Após atualizar, execute hermes doctor para verificar a instalação, reinicie o gateway (hermes gateway) e dê uma olhada em Settings → Connections para ver o novo registro de multi-conexões.
Detalhes mais profundos estão nas notas de release da v0.20.2; os ganhos escondidos do patch anterior estão em 13 ganhos de eficiência da v0.20.1, e mergulhos na configuração de MCP, no guia de variáveis de contexto do MCP.