Hermes Agent v0.22.0
Visão Geral
v0.22.0 — The Threshold Release. Lançada em 13 de outubro de 2026. Desde a v0.21.0: ~24.200 commits · ~6.080 PRs mesclados · ~15.600 arquivos alterados (+2.045.000 / −1.140.000) · ~7.180 issues fechadas · ~2.520 contribuidores.
Hermes era o deus dos limiares: a soleira, a travessia, a pedra de demarcação. A v0.21.0 montou o panteão; a v0.22.0 trata de atravessar a porta. Uma instalação nova do desktop agora abre em um chat de configuração guiada que roda em um modelo de teste gratuito, então quem está chegando conversa com o Hermes antes mesmo de ter uma API key. Connectors levam o agente para dentro dos apps que você já usa, sem precisar de conta para começar. Modelos locais trazem tudo para o seu próprio hardware com um runtime llama.cpp de um clique. E o próprio limiar ficou mais sólido: releases estáveis SemVer testadas que as instalações seguem por padrão, pacotes de desktop assinados (incluindo a Microsoft Store) e um único gerenciador de pacotes embaixo de tudo. Em volta desse eixo: um catálogo com 600 plugins, a onda de modelos Claude 5.5 / GPT-6, login com gerenciador de senhas para o navegador, uma tela de bot que você pode assumir, um backend e um gateway para cada profile, e uma base de código um terço menor.
Esta é a maior janela que o Hermes já entregou, cerca de 2,5x o ciclo da v0.21.0, e ela consolida e documenta por completo as releases de patch v0.21.1–v0.21.7.
Destaques
1. Uma primeira inicialização que se configura sozinha
Abra o app de desktop em um computador onde você nunca usou o Hermes e ele inicia um pequeno chat de configuração em vez de uma tela de settings. Um card por vez, ele pergunta seu nome, uma cor de destaque e um layout, quais apps conectar e quais plugins instalar, depois dá um tour rápido e oferece até quatro primeiras tarefas escolhidas para você. Ele roda em um modelo de teste gratuito (nous/welcome, uma vez por usuário do sistema), então não precisa de chave nenhuma; Skip setup encerra e Settings → Run onboarding again traz de volta. O agente também ganhou set_theme, então “deixa ele violeta, modo escuro” funciona em qualquer chat do desktop (#137429, #137522, #137807, #134209, #105258).
2. Connectors: o Hermes trabalha dentro dos seus apps
Através do Nous tool gateway, o agente agora pode agir em apps hospedados como Linear e Notion: peça um app, faça login uma vez no navegador, e as ferramentas ficam utilizáveis no mesmo turno. Você não precisa de uma conta Nous para começar; na primeira vez que usa um app, o Hermes cria uma identidade gratuita apenas de connectors. O desktop tem uma nova página Connectors que coloca apps hospedados e seus servidores MCP em uma única lista (ela substitui a aba MCP), o mesmo card de configuração aparece no TUI e no CLI, e você pode conectar várias contas nomeadas de um mesmo app (uma conta work e uma home) e gerenciá-las com /connectors ou hermes connectors (#106842, #111008, #119074, #135143, #135072, #135097, #135151, #135173, #137426).
3. Modelos locais com um clique
O Hermes agora pode rodar modelos abertos inteiramente na sua máquina, sem nada saindo dela: sem conta, sem API key. Ele instala e mantém o llama.cpp com o motor certo para o seu hardware (CPU, CUDA, Metal, Vulkan ou ROCm), avalia cada modelo do catálogo em relação à sua GPU e à sua RAM, e escolhe o build de maior qualidade que caiba ali. Os downloads pausam e retomam, o servidor liga e desliga junto com o Hermes, e as atualizações de motor são um clique. Comece em Settings → Providers → Local Models no Windows, macOS e Linux, ou hermes model → Local models em um terminal. O catálogo inclui Qwen3.8 27B, Qwen3.8 Flash Next (com seu head especulativo MTP), Qwen3.6 35B-A3B e DeepSeek V4 Flash, além de qualquer GGUF do Hugging Face (#100667, #101823, #128768, #111423, #133111, #134116).
4. Canais de release estáveis
O Hermes agora entrega releases SemVer testadas. Toda release passa por CI de código-fonte, Docker, Nix, builds de desktop assinados e execuções de instalação/atualização em todos os sistemas antes de ser publicada, e instalações a partir do código-fonte agora avançam de release em release por padrão, em vez de acompanhar cada commit na main. Prefere o bleeding edge? hermes update --set-channel main, ou o novo seletor de canal no Desktop em Settings → About. Voltar para uma release mais antiga é rotulado como rollback e nunca acontece sem perguntar, e rodar o instalador de novo mantém você no canal que escolheu (#102765, #135847, #135949, #136313, #137780).
5. Pacotes de desktop assinados, a Microsoft Store e um único gerenciador de pacotes
O app de desktop agora é um pacote selado e assinado que carrega o próprio Python e Node e se atualiza sozinho, então a primeira inicialização não compila nada. O Windows recebe um MSIX assinado (x64 e ARM64) via App Installer ou Microsoft Store; o macOS recebe um build assinado e notarizado para Apple Silicon. Por baixo, um novo gerenciador de pacotes unificado (hermes pm) cuida de toda ferramenta fixada e verificada por hash e de cada ambiente Python: as atualizações constroem um ambiente novo e só trocam quando ele passa na verificação, então uma atualização que falha ou é interrompida não pode mais deixar você pela metade (#102765, #132361, #132386, #120339, #122221).
6. O Plugin Catalog: 600 plugins revisados
O catálogo de plugins foi lançado neste ciclo e chegou a 600 entradas, cada uma fixada em um commit revisado e instalável pelo Hermes Desktop ou pelo CLI. Navegue por categoria e ranking de estrelas, com uma página por plugin e por autor; as regras do catálogo impedem que plugins listados alterem os internals do Hermes ou enviem binários que não podem ser escaneados. Memory providers agora ficam junto de seus criadores (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), o mesmo valendo para Home Assistant, Spotify e Langfuse: usuários existentes são migrados automaticamente, e a instalação padrão ficou mais enxuta (#69446, #111415, #117808, #113381, #114732, #131267, #132476, #136436).
7. A onda de modelos Claude 5.5 e GPT-6
Claude Fable 5.1, Opus 5.5, Sonnet 5.5 e Haiku 5.5, GPT-6 Astra, Sol e Luna mais GPT-6.1 Sol, e Gemini 4 Argon podem ser escolhidos no Nous Portal, no OpenRouter e nas rotas nativas onde forem oferecidos. O raciocínio anterior agora é reproduzido por padrão em todo provider que consegue lê-lo, em resume, branches e compaction, então trabalho longo de várias etapas mantém sua linha de raciocínio. E quando um provider tem uma hora ruim, o Hermes espera os 503/529/timeouts transitórios em ciclos visíveis e limitados, em vez de encerrar o seu turno (#100577, #119304, #126842, #134759, #128248, #137955, #136358, #116353).
8. Faça login em sites com seu gerenciador de senhas
O browser agent pode entrar em sites com logins do 1Password, do Bitwarden ou do próprio cofre criptografado do Hermes, e o modelo nunca vê a senha. Se nada estiver salvo, você recebe um prompt mascarado no CLI, no TUI ou no Desktop para salvá-la, códigos de uso único são preenchidos sem entrar na conversa, e preenchimentos de cartão e endereço no checkout exigem sua confirmação (#106480, #107585, #137084).
9. Bot Screen: veja seu bot trabalhando e assuma quando ele precisar de você
Um bot rodando em um gateway Linux pode ter seu próprio desktop, que o Hermes Desktop transmite ao vivo. Quando ele esbarra em um login, um prompt de 2FA ou um CAPTCHA, você assume a tela, conclui a etapa você mesmo, e devolve o controle enquanto o bot segue com a sua sessão. Com um backend Docker, SSH ou Singularity, a tela do bot, o computer use e o navegador rodam dentro do sandbox, nunca no seu host (#108914, #121169, #121110).
10. Um backend e um gateway para cada profile
O Hermes agora roda um único gateway de mensagens e um único backend de desktop por máquina, que servem todos os seus profiles, em vez de um processo por profile. Criar um profile faz seus bots entrarem no ar sem reiniciar, cada profile mantém suas próprias credenciais, allowlists, cron jobs e sessões, e hermes update migra automaticamente as configurações por profile já existentes. Menos processos, sem conflitos de token, uma única coisa para iniciar e parar (#112854, #108928, #118273, #117983, #118246, #118027).
11. Veja e oriente seus subagents ao vivo
Subagents em execução agora ficam visíveis acima do composer no CLI (F6), no TUI (Ctrl+T) e no Desktop, com a tarefa de cada filho, o tempo decorrido e a transcrição ao vivo, além dos botões Steer e Stop. /stop alcança filhos em background e devolve o trabalho parcial deles, e delegate_task pode repassar screenshots e mocks para filhos com capacidade de visão (#105593, #115616, #97689).
12. Um model picker que conhece seus planos
Marque seus modelos favoritos com estrela, veja uma assinatura chegando ao fim (“17% left · resets 3:00 PM”) e quando um rate limit é liberado direto no picker, e escolha o esforço de raciocínio como parte da escolha do modelo em hermes model, /model (/model X --reasoning high) e no Desktop. Você troca antes de bater no limite, e não depois (#126535, #133392, #133408, #110346, #113117).
13. Hermes no seu idioma, em todo lugar
Toda string visível ao usuário no CLI, no gateway de mensageria, no TUI e no Desktop agora passa por um único catálogo de tradução, com cobertura completa nos idiomas inclusos. Novos idiomas podem chegar como plugins, e qualquer profile pode sobrescrever strings individuais com um pequeno arquivo YAML (#126296).
14. Mais enxuto em todos os sentidos
Toda a base de código foi simplificada sem nenhuma mudança de comportamento: o código-fonte foi de cerca de 1,06M para 698K linhas (−34%) e gateway/run.py encolheu de 34.847 linhas para 5.512. Os prompts também ficaram mais leves: cerca de 19 ferramentas pouco usadas agora carregam só quando o agente as procura, reduzindo aproximadamente pela metade o schema de ferramentas do desktop enviado em cada chamada, e outros ~2,1 mil tokens saíram do prompt fixo. Modelos locais fazem menos prefill a cada turno (#102117, #97979, #106676, #137084).
15. Pequenos confortos que somam
Teclas vim opcionais no prompt do CLI, um campo de branch do git na barra de status, um sino e uma notificação de desktop quando o Hermes está esperando você, Ctrl+C que limpa seu rascunho em vez de matar o turno, uma /queue editável, e hermes --native para deixar seu próprio terminal cuidar do scrollback e da busca do TUI. No Desktop, um novo modo Simple transforma o app em uma janela de chat comum, e os erros agora dizem o que deu errado com uma correção de um clique (#106412, #106434, #101284, #101320, #137065, #95999, #121035, #118587, #111601).
⚠️ Notas de atualização
- Python 3.14 é o runtime para instalações gerenciadas (o gerenciador de pacotes instala por você). O KittenTTS não está disponível no 3.14 (#102765).
- O desktop do Windows é somente MSIX e exige Windows 11 22H2 ou mais recente; os instaladores NSIS/MSI sumiram. O app para macOS é somente Apple Silicon nos builds padrão (#102765, #136603).
- Um gateway por máquina é o padrão.
hermes updatefunde os gateways por profile no padrão multiplexado quando nada conflita (#112854). - Os chats não reiniciam mais por timer de ociosidade/diário. Os modos idle/daily de
session_resetforam aposentados (configs que ainda os definem registram um aviso);/newou/resetcomeça do zero (#105021, #126244). - Sessões antigas são podadas automaticamente.
sessions.auto_pruneagora vem ligado por padrão: sessões encerradas e inativas por 90 dias são excluídas na inicialização. Sessões fixadas e abertas nunca são tocadas; definasessions.auto_prune: falsepara manter tudo. - Memory providers migraram para plugins do catálogo (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), assim como Home Assistant, Spotify e Langfuse. Usuários existentes são migrados na atualização ou na primeira inicialização, com os dados intactos. ByteRover e RetainDB continuam inclusos.
- Autores de plugins: a antiga camada de import de compatibilidade de plugins foi removida (#126164),
hermes sync(Skill Sync) foi removido (#132465), e o scanner tirith incluso foi removido (#133832). Várias ferramentas foram renomeadas (todo→todo_list,cronjob→cronjob_manage,process→process_manage); os nomes antigos ainda funcionam (#97979).
🚪 Onboarding, Free Tier, Connectors e Modelos Locais
- Onboarding na primeira execução — uma instalação nova do desktop recebe o chat de configuração guiada (veja o Destaque 1). Instalações existentes e backends remotos (SSH, URL, Cloud) não o recebem automaticamente; o antigo fluxo de setup de profile e o
/initiate-setupforam excluídos (#137420, #134215, #108292). set_theme— o agente pode definir a cor de destaque (uma amostra ou qualquer#rrggbb), o modo claro/escuro/sistema e o layout, ou mostrar um picker (#137522).- Free tier — uma primeira instalação do desktop sem provider e sem conta Nous recebe o modelo gratuito
nous/welcomecomo teste único (uma vez por usuário do sistema). O CLI, o TUI e o gateway não recebem conta nem modelo gratuito;HERMES_GUEST_ONBOARDINGacabou.hermes auth upgrade, ou/loginem qualquer chat ou DM de mensageria, faz o upgrade dessa identidade gratuita para uma conta Nous completa, mantendo os apps conectados (#137807, #105258, #105259, #105260, #105261). - Limites claros do free tier — o rate limit gratuito encerra o turno na hora, com o horário de reset; toda falha do free tier tem um código e uma frase simples; o app cuida da checagem de navegador do serviço de contas; usuários do free tier veem um aviso de Termos e Privacidade. Contas Nous sem créditos podem escolher modelos cobrados em uma assinatura que já possuem e ganham busca web gerenciada rápida e gratuita (#134049, #111970, #133824, #117079).
- Connectors — connectors de apps hospedados, a página Connectors e várias contas por app (veja o Destaque 2). As ferramentas de connector também podem enviar seus arquivos locais como anexos e salvar os arquivos que retornam.
nous.guest: falsedesliga as identidades de convidado;tools.connectors.enabled: falsedesliga os connectors (#111238, #138014). - Modelos locais — instalação de um clique (veja o Destaque 3); downloads GGUF do Hugging Face com pausa/retomada; uma oferta de configuração única depois do onboarding em máquinas capazes de rodar o modelo recomendado (#129506). Atualizações de motor em um clique: NVIDIA no Linux recebe CUDA, GPUs AMD e Intel recebem Vulkan dimensionado pela própria memória, e todo backend roda llama.cpp b11370 (#111423, #133111, #131782). Recomendações melhores: só modelos que cabem inteiramente na memória da GPU são recomendados, e o 27B não é mais sugerido em hardware que o roda mal (#108429, #135438, #134116, #112107). Seus próprios servidores locais: o LM Studio tem um profile de provider, os pickers do Ollama não piscam mais, um servidor llama.cpp iniciado por você aparece em
/model, e o fallback para o modelo gerenciado pelo desktop funciona (#134320, #113129, #116679, #131795).
📦 Releases Estáveis, Pacotes de Desktop e Gerenciador de Pacotes
- Releases estáveis e canais de atualização — releases estáveis SemVer testadas e o seletor de canal (veja o Destaque 4). As v0.21.6 e v0.21.7 foram as primeiras a passar pelo novo portão; forks permanecem na
main, e uma instalação à frente da release mais recente espera pela próxima. Checagens de atualização mais leves: uma chamada à API do GitHub por dia substitui ogit fetcha cada 30 minutos (#107648). - Pacotes de desktop selados e assinados — veja o Destaque 5. Dentro de um pacote,
hermes updateaponta para o atualizador correto (App Installer, Store ou macOS) (#134911). Instalações empacotadas funcionam de ponta a ponta: o terminal do agente rodahermes, o Uninstall explica a remoção pelo sistema, e plugins com dependências Python instalam dentro do MSIX (#134051, #135333). hermes pm— o gerenciador de pacotes unificado (veja o Destaque 5): Python 3.14, uv, Node, ripgrep, FFmpeg, Chromium e Git/Bash no Windows, tudo fixado e verificado por hash, comhermes pm doctor|status|repair|gc. Contribuidores usamsource ./activate(ou.ps1/.fish).- Ambientes de dependência são gerações — os novos são verificados antes do uso, então uma instalação que falhou mantém o que funcionava; atualizações e
hermes pm gcrecuperam os antigos (92 GB para 18 GB em um host) (#124968, #133808). SDKs opcionais (Anthropic, Bedrock) carregam no meio da sessão sem reiniciar;security.allow_lazy_installs: falsedesliga isso (#122221). Plugins declaram dependências Python, resolvidas junto com o core em todos os profiles; conflitos são recusados, e uma atualização desativa um plugin que não se encaixa mais (#113851, #122103, #114569, #132469). - Atualizações não podem ser aplicadas pela metade — veja o Destaque 5; uma atualização interrompida se conserta sozinha na próxima inicialização (#132361, #120339). Atualizações mais rápidas e checkouts menores — as atualizações reconstroem só o que mudou (16,5 s em vez de 32,5 s no macOS), os clones são blobless, e o crescimento do
.gitem partial clone foi corrigido (#135092, #133016, #131679). - Instaladores —
install.sh/install.ps1verificam o uv e o Git fixados, passam o controle para o PM, gravam log emlogs/install.log, e agora funcionam em Linux musl (Alpine, Void), Windows 10 e caminhos Windows com Unicode (#124964, #125598, #132430). Com telemetria opcional, falhas de instalação, atualização, skill e plugin registram um motivo (#133809). - Docker / Nix / Termux / Windows — o Docker fixa uma base Debian 13 com Chromium completo;
stable/latestsó mudam em uma release publicada; extras embutidos voltam após um reinício (#135726, #135084). O Nix compartilha os pins e seu app de desktop ganha Wayland; o Termux passa para um pacote APT assinado (pkg upgrade hermes-agent), embora a documentação ainda avise que está quebrado; as atualizações no Windows terminam enquanto o runtime antigo ainda está em uso (#128144, #122146, #131779).
🧠 Providers e Modelos
- Providers como plugins — providers ACP e guiados por CLI instalam fora da árvore com
hermes plugins install;--provider chatgptseleciona o OAuth do ChatGPT Codex (#101456, #115761). O Bedrock serve o GPT-6 (1M) e aplica Claude Guardrails; o Azure Foundry lista deployments; o Gemini aceita ferramentas com JSON Schema completo; o OpenCode Go roteia Claude via Messages (#133573, #107815, #115770, #98928, #134848). - Novos ajustes —
agent.text_verbositydefine o tamanho das respostas do Responses; providers customizados nomeados rodam no app-server do Codex (#115880, #115905). - Catálogo de modelos — Claude 5.x (Opus 5.5 também na Anthropic nativa e no Bedrock, 1M); GPT-6 Astra/Astra Pro nas variantes standard, fast e flex, Codex
-900kopcional, e/fast ultrafastpara Astra e 6.1 Sol; Gemini 3.8 Flash e Gemini 4 Argon; DeepSeek V4.1 Flash, Qwen3.8-Max-0902, Grok 4.7, GLM-5.3-FlashX, Muse Spark 1.3, Solar Pro 4/Mini 4 (#122633, #103261, #119410, #136950, #101450, #137989, #107489, #100966, #118371, #117435, #101948, #131645). - Auth — os profiles compartilham logins OAuth com segurança (grants de uso único nunca se dividem, e o login próprio de um profile é mantido); o sign-in da Nous sobrevive à expiração por hora, a subagents concorrentes, a indisponibilidades do Portal e a checagens de borda (#100929, #134574, #103526, #121488). Logins mortos são nomeados uma vez com a correção
hermes auth add;auth.adopt_external_logins: falseimpede o empréstimo de logins do Codex CLI/Claude Code (#113816, #115586). - Roteamento, fallback e cache —
agent.auto_recovery_cycles(padrão 5) limita a espera, e o fallback volta para um primário Codex cuja cota reabriu (#116353, #130716). O roteamento automático nunca cobra um provider que você não escolheu;provider_routing.modelsfixa o OpenRouter por modelo (#107366, #104159).cache_ttl: autoopcional (1h em interativo, 5m em subagents/cron); um/modelque quebra o cache em uma sessão grande pergunta antes; a compaction preserva o prefixo (#118337, #95267, #104455). - Raciocínio — reproduzido em todo provider que consegue lê-lo; o esforço é configurável em todo picker, com nomes de níveis customizados; o modo fast da Anthropic segue a documentação (#136358, #110346, #115735, #120517).
🏗️ Agente Principal, Sessões e Memória
- Turnos travados se recuperam — um watchdog (
agent.turn_liveness.timeout_s, padrão 600 s) interrompe um turno sem progresso e libera sua sessão; reparos repetidos de transcrição agora geram um único erro em vez de ficar em silêncio (#99758, #99687). Streams mortos sem texto tentam de novo, loops de repetição são cortados, e turnos interrompidos não são reportados como concluídos (#113135, #130551, #112272). - A compaction dispara com contagens reais de tokens — o uso reportado pelo provider, e não bytes sobre quatro; a cauda protegida fica limitada a 20% para que modelos de janela pequena também compactem (#104555, #117957). Resumos ruins não podem apagar o contexto: providers de resumo recusados ou sobrecarregados não mexem na transcrição, e uma compaction não confirmada não muda nada (#118920, #115906, #136083). Novas chaves por provider:
compression.model_thresholdseauxiliary.<task>.no_progress_timeout(#108061, #115804). - Sessões e state.db — timeouts de lock nomeiam o processo que o detém, um banco de dados ocupado não mata mais o turno, e namespaces de PID irmãos não podem roubar leases (#116967, #134577, #132161). O
state.dbpara de crescer: a poda automática vem ligada por padrão (sessões encerradas há mais de 90 dias) e fecha sessões obsoletas de cron/kanban/subagent; o VACUUM roda apenas quando 25% é recuperável (#101316, #100903). Comandos de reparo:hermes sessions set-journal-mode delete|wal,repair-profiles,repair-prompts(#117684, #115689, #124200). - Memória — OpenViking e Holographic migram para o catálogo de plugins na atualização ou na primeira inicialização, com os dados intactos, ou dizem por que não (#134350, #136436, #131269). MEMORY.md/USER.md formatados à mão são aceitos, as recusas dizem o que corrigir, e segredos são higienizados antes que os providers os vejam (#133038, #134429).
- Profiles e config — um config.yaml quebrado volta para a última cópia boa, e erros de leitura não podem apagá-lo (#109463, #120343).
hermes config getmascara segredos (--rawdesativa),setrecusa caminhos com erro de digitação e guarda nomes em estilo env no.env(#111341, #112250). Os profiles permanecem separados: rotas REST agem sobre o profile que nomeiam, exports pulam.ssh/.aws/.gnupg, eimport-agent --syncmantém as importações atualizadas (#118275, #132201, #88855).
📱 Plataformas de Mensageria (Gateway)
- Um gateway atende todos os profiles —
hermes gateway statusexplica qualquer recusa do boot-guard,hermes gateway migrate --multiplexmigra manualmente, plataformas de webhook atendem cada profile em/p/<profile>/,hermes -p X gateway stop|startestaciona um profile, egateway.standalone: trueé uma saída temporária (#112854, #108952, #119774, #119680). Os profiles continuam isolados: clones pulam bot tokens a menos que use--clone-channels, eprofile_routespode rotear por remetente (#109502, #115642). - Sessões e comandos —
/loginautentica usuários do free tier a partir de uma DM; osession_resetidle/daily foi aposentado, então só/newe/resetcomeçam do zero;/branchabre uma thread irmã no Discord, Telegram, Slack e Matrix (--heremantém o comportamento antigo); o mododeclineenvia uma recusa educada para DMs não autorizadas; um rodapéserved_modelopcional nomeia o modelo que respondeu (#105261, #126244, #117450, #88028, #115925). - Plataformas — o
bots_require_mentionopcional do Telegram interrompe loops de resposta entre bots,extra.drop_pending_on_cold_boot: falsemantém mensagens enviadas enquanto você estava offline, e CJK pode optar por mensagens ricas; a configuração do Discord verifica o token, vincula a Message Content Intent e coloca você na allowlist, e canais de resposta livre podem criar threads automaticamente; o Slack ganha um picker/modelem Block Kit, com status/títulos na Agent Sessions API; o WhatsApp faz menções nativas viahermes send --mentionsem o atraso de 5 s de batching, e sessões pareadas em todos os profiles; tabelas do Signal renderizam em monoespaçado, LaTeX no Matrix é composto no Element, o Email recusa remetentes falsificados e exige um pin deauthserv_id(mensagens são descartadas até que ele seja definido), e osend_messagedo QQ Bot entrega mídia (#106534, #116134, #111831, #132456, #116168, #103436, #101477, #115253, #117104, #132518, #106538, #106515, #132663, #131927). - Webhooks e o servidor de API — o
coalesceopcional junta rajadas de eventos em uma única execução,cron_jobdispara cron jobs em eventos, as assinaturas do Standard Webhooks são verificadas, e omirror_to_sessionopcional dá contexto às respostas (#92066, #95262, #104183, #120825). O servidor de API transmite raciocínio para clientes compatíveis com OpenAI, e aprovações de stream podem ser respondidas (#115797, #121769). - Relay e Bot Chat — salas do Bot Mode podem editar membros, responder a @handle, manter 200 mensagens de histórico e suportar DMs de bot cientes do remetente com uma proteção de loop
ALLOW_BOTS(#113384, #107520). O Relay verifica os alvos desend_message; o tracing do NeMo Relay na 0.10.0 marca spans com o diretório de trabalho (#99220, #135787, #108345).
🖥️ App de Desktop
- Modo Simple / Advanced — o Simple esconde painéis de desenvolvedor, e o Advanced continua sendo o padrão (#118587). Abas na titlebar; profiles abrem na própria janela ou como padrão de inicialização (#107099, #113176). Agrupamento na sidebar por gateway/profile, instâncias Cloud reutilizáveis, arrastar Nova sessão para um painel (#105813, #70571). Importe e continue a transcrição de outro coding agent (#104229). Cards de Goal / Loop / Heartbeat pausam, retomam e param acima do composer (#104246).
- Chat e composer — uma pílula de esforço de raciocínio; adicionar um modelo por slug; colagens com mais de 3.000 caracteres viram anexos .txt; atalho opcional de screenshot de janela no macOS (#109907, #120693, #108901, #113349). Erros acionáveis nomeiam o problema e a correção; cards de limite de uso mostram o horário de reset e podem agendar uma nova tentativa (#111601, #116288). O modo de comentário do navegador fixa elementos da página com anotações, enviando recortes, seletores e estilos para o composer (#100083).
- Settings e plugins — subpáginas ordenadas e pesquisáveis com ⌘K; Chat Font (por exemplo, OpenDyslexic); russo, francês, alemão e espanhol (#117127, #111226, #100429). Uma linha por plugin; plugins ganham páginas de settings, e plugins de desktop podem executar app actions por id, falar pelo pet, adicionar controles de Appearance e reordenar a navegação da sidebar (#133182, #136417, #135504, #120912, #120922).
- Bot Mode — Bot Screen (veja o Destaque 9), desligada por padrão e exigindo pacotes do host (#108914). Group chats podem reordenar salas e comprimir o histórico oculto de um membro (#105909, #117015).
- Performance e plataformas — o Desktop se anexa ao backend em execução, que atende todos os profiles (#118246). Inicialização mais rápida no Windows; o Linux roda sem sudo e sob WSLg/Wayland (#111002, #100136, #113247). As sessões seguem o git worktree e o branch do agente; o painel Review delimita o escopo do trabalho; navegue por workspaces SSH, arraste sessões para projetos, pesquise logs, veja e limpe bloqueios de Kanban (#128428, #127200, #99538, #126543, #126658, #125647).
⌨️ CLI, TUI e Dashboard
- CLI —
display.vim_mode, um campogit_branchna barra de status edisplay.bell_on_prompt(sino mais notificação OSC 9), todos desligados por padrão (#106412, #106434, #101284, #101320). Ctrl+T abre o monitor de subagents; uma colagem de várias linhas no meio do turno vira uma única mensagem (#105879, #109146). Comandos scriptáveis:hermes usage --json(cota, sem sessão),hermes worktree --json/--older-than,kanban edit --title/--body/--priority, e-tpara escolher quais servidores MCP iniciar (#115899, #95257, #117632, #101634). Também:hermes -zsai com código diferente de zero em caso de falha;-m custom:<name>:<model>alcança aquele provider; o rodapé não colapsa mais em “Window too small” (#113234, #115293, #117439). - TUI —
--nativeoudisplay.tui_nativeusa o modo nativo do terminal (#121035). Controle de turno em execução: Esc duplo interrompe, push-to-talk corta a fala, e o dock ao vivo (no CLI também) mostra/goale prompts na fila (#125803). Correções de digitação: Shift+letra em terminais de teclas estendidas, Ctrl+D no macOS, colagem de imagem no Wayland, redesenhos ociosos estáveis (#90674, #116851, #116824, #87907). TUIs anexadas voltam para a própria sessão;attachments.storage: workspaceprepara arquivos que um agente em sandbox consegue ler (#112227, #125816). - Dashboard — chat em mais dispositivos: leitores de tela, rolagem por toque no iPad, sem caracteres duplicados do teclado móvel, e uma segunda aba ganha o próprio terminal (#133960, #134181, #116978, #117061). Os erros são uma frase e um botão de correção em vez de JSON cru, com busca por título, um trocador ao vivo e analytics por chamada de API (#111602, #133981, #134100, #133991). Auto-hospedagem: subcaminhos de reverse proxy, login por senha ao lado do OAuth, sessões remotas sem expiração (#133903, #107018, #110061).
- Comandos de barra — esforço de raciocínio em todo picker (
hermes model, modelos auxiliares,/model), e/model X --reasoning hightambém funciona (#110346). Uma/queueeditável pode listar, editar, mover ou remover prompts;/sé/steer(#95999, #125803)./contextmostra cada arquivo de instrução conforme carregado, truncado ou ofuscado (#91272).
🔧 Ferramentas, MCP e Navegador
- Ferramentas raras carregam sob demanda — computer_use, session_search, image_generate, cron e as ferramentas de GUI do Desktop ficam atrás de
tool_searchpor padrão (schemas do desktop de 13.367 → 6.883 tokens;defer: []desativa);todo/cronjob/processviramtodo_list/cronjob_manage/process_manage(aliases mantidos) (#97979). A lista de ferramentas é congelada por sessão entre TUI,-q --resumee saltos de gateway, para que o cache do prompt se mantenha (#120289). Sessões autônomas de gateway/cron forçam a parada de loops de ferramentas, e cinco reproduções idênticas interrompem qualquer ferramenta (#100967). - Ferramentas de arquivo e web mais inteligentes —
read_filemostra schemas SQLite e sinaliza conflitos de merge,search_filesroda ripgrep direto (5–6x mais rápido), e oweb_searchsem chave faz failover entre fornecedores gratuitos (#115974, #104502, #134048). - MCP —
hermes mcp login <server> --flow devicepara terminais headless (#104891). OAuth mais sólido: refresh tokens nunca são apagados, gastos duas vezes ou enviados a outro emissor; servidores RFC 9207, hospedados no Google e atrás de WAF fazem login; gateways nunca abrem abas de navegador (#106185, #111186). Mais servidores conectam: servidores apenas SSE caem para o fallback, servidores estritos conectam (sampling.toolsopcional), e o catálogo adiciona n8n e Asana V2 oficiais (#106432, #131891, #116048). A inicialização conecta atémcp.discovery_concurrency(4) servidores ao mesmo tempo; modelos de visão veem imagens do MCP; servidores stdio mortos ressuscitam sem repetir uma chamada (#117956, #133815, #106546). - Navegador e computer use — o login com gerenciador de senhas também preenche cartões e endereços depois da sua confirmação;
hermes-sandbox:desktopé a nova imagem padrão (sandboxes existentes são mantidos) (#106480, #121169). Obrowser_execfunciona de imediato, comandando o Chromium embutido (também o fallback na nuvem) e abrindo localhost via sidecar (#102986). - Terminal e execução de código — timeouts em primeiro plano acima de 600 s viram jobs em background,
heartbeat=Nenvia progresso, e o dock de trabalho ao vivo os lista (#103529). Resultados de sandbox sinalizam um ambiente recriado; caminhos SSH resolvem remotamente (#107093, #122657). O LSP adicionalsp.serverselsp.package_managere nunca roda o interpretador ou o SDK do próprio repo clonado (#115714, #126239). - Mídia — novos modelos: GPT Image 2.5 e Kling Image v3; vídeo: Kling 3.0, Kling O3, LTX 2.5, Wan 3.0, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1 (#105988). O
stt.streamingopcional mostra palavras enquanto você fala (CLI, TUI, Desktop) e gravações longas são transcritas em todos os providers de nuvem (#133853, #133825).voice.voice_chat_mode: gpt-liveopcional dá voz full-duplex ao Desktop;auxiliary.voice_chatroda turnos falados em um modelo mais rápido e o TTS começa mais cedo (#108137, #133986, #115846).
🧩 Plugins, Skills e o Plugin Catalog
- Plugin Catalog — páginas de plugin e de autor: /docs/plugins organiza os plugins em Memory, Desktop, Platforms, Web, Tools, Voice, Automation e Models. As páginas mostram a descrição, um aviso de divulgação, screenshots, o README do commit fixado, um botão “Open in Hermes Desktop” e um comando de instalação copiável (#111415, #111547, #117808). Cards mais fáceis de ler trazem um rótulo de versão ao lado do commit fixado (
1.2.0 @ ad3f352b), imagens de banner, tamanho uniforme e modo claro (#113381, #125065, #124001). As listagens podem declarar problemas conhecidos, que ohermes plugins installe o dashboard mostram na instalação (#124058). Regras de listagem: plugins de desktop precisam ficar dentro dos slots do SDK, 11 plugins que alteravam internals foram retirados do catálogo (as cópias já instaladas continuam funcionando), e o guia de submissão corresponde ao que a CI exige (#115579, #130860, #131048). - Novidades no catálogo — todas as 600 entradas são novas neste ciclo. Saíram do core, além dos cinco memory providers, o Holographic, que ganhou um novo mantenedor da comunidade, e Home Assistant, Spotify, Langfuse e TouchDesigner agora são plugins oficiais do catálogo (#114732, #136196, #132476, #137130). Adições oficiais: Blender Lab, Snyk, NVIDIA App e NVIDIA Broadcast (somente Windows), Telegram Business, Memory Wiki (#119365, #109084). Tamanho das prateleiras: Memory 65 (Cognee, LanceDB, ReMe, Memoria, HydraDB, Mnemosyne, YantrikDB, BetterDB), Web e busca 34 (Apify, Parallel, Linkup, SerpApi, You.com, TinyFish, Oxylabs), providers de modelo 48 (JetBrains Junie, Telnyx, NetMind, Groq, Chutes, Kiro, Opper, AIHubMix), plataformas 32 (Inline, Microsoft 365, Rocket.Chat, VK, Zalo, iMessage, Sendblue), voz 18 (Speechify, Deepgram, Fish Audio, Gemini Live), painéis de desktop 140, ferramentas 180 (#112292, #118231, #118512, #114202).
- Sistema de plugins — providers de modelo fora da árvore aparecem nos model pickers, fazem login via
hermes auth(OAuth PKCE embutido) e renovam tokens (#116552). Host de plugin por profile opcional:plugins.isolation: hostroda plugins de terceiros em um processo por profile, com apenas os segredos daquele profile (#126911). Novas APIs: hooks para turnos interrompidos, chamadas auxiliares de LLM e prompts de entrada humana; plugins podem iniciar sessões de gateway, adicionar Automation Blueprints e slots de modelo auxiliar, entregar o driver de computer use, e fazer requisições assinadas pelo Codex (#118909). SDK de plugins do Desktop: settings deconfig_schemarenderizam como formulário em Capabilities → Plugins; plugins ganham uma ponte de skills/toolsets/profiles e slots de model-pill e de menu (#118917). Instalar, fixar, atualizar: repositórios privados instalam com suas credenciais git, o Desktop fixa um plugin em um commit, as atualizações preservam os dados do usuário, e skills de plugin rodam como/plugin:skill(#106981, #107321, #133175). Loader e scanner mais sólidos: imports travados são pulados apósplugins.load_timeout_seconds(10 s), guard hooks falham fechados, e prosa, fixtures e literais regex não bloqueiam mais instalações (#118915, #115954). - Skills — novas skills opcionais: pr-lens, system-atlas, anatomy, mono-color, dream-loop, scrollcraft, auteur, ip-as-logo, ai-presenter-video, live-dashboard, dynamic-workflow, reddit-reading, rss-feeds (#109306, #103821). O índice do Skills Hub volta a ser construído, com cerca de 480 skills de ciência, e a busca também encontra skills não indexadas (#109178).
skills.auto_loadfixa skills em todas as sessões eskills.create_direscolhe onde vão as skills criadas pelo agente (#92048, #100377). Autoevolução melhor: aprendizados e correções vão para a skill da tarefa, a revisão em background pode melhorar qualquer skill, e skills adicionadas no meio do chat chegam na próxima mensagem (#102107). Curador mais leve: não bloqueia mais o prompt do CLI, uma instalação caiu de 1,9 GB para cerca de 200 MB, e skills sem uso são arquivadas em 30 dias em vez de 90 (#115862). Skills Guard: instalações bloqueadas em uma amostra de 421 skills caíram de 83 para 68, e shell inline fica limitado a skills que não são da comunidade (#135595).
⏰ Cron, Kanban e Delegação
- Cron — jobs sem pin usam o modelo configurado no momento do disparo, e
pinnedtrava um (#113679). Agendas que se autocorrigem: um disparo que nunca chegou ao modelo roda de novo após 5, 15 e 30 minutos, uma janela de “retry after” do provider estaciona o job em silêncio, e um slot perdido durante um restart dispara uma vez (#108731, #115843). Alertas mais quietos: um alerta por incidente mais um lembrete a cadacron.failure_repeat_alert_hours;failure_deliverredireciona ou silencia avisos de falha; um agente pode falhar a própria execução com[CRON_FAILURE](#114807, #101373, #113155). Novas opções de job:--pausedcria um job desarmado, e--interpreterroda scripts no seu próprio venv (#104984, #125392). Um gateway multiplexado roda os jobs de cada profile com o env e os segredos daquele profile; a entrega exige evidência positiva, a saída tem segredos ocultados em todo lugar, e execuções atrasadas ou em satélite são rotuladas (#118027, #100908, #112830). - Kanban — os workers aguentam problemas de provider: turnos que falharam tentam de novo no lugar, com o contexto, e rate limits ou 5xx voltam para a fila em vez de queimar tentativas (#112318, #112500). Um board que se explica: os cards mostram a última saída do worker em caso de falha, e o dispatch diz por que um card está retido (#112618). Uma definição de workflow comanda as colunas; workers recebem
kanban_schedule;kanban create --body-file; o Desktop acompanha as trocas de gateway (#134340, #130455, #116791, #119054). - Delegação e multi-agente — subagents ao vivo, imagens e
/stop(veja o Destaque 11). Fan-outs perdem menos: filhos que falharam aparecem na hora, uma queda do owner preserva o trabalho concluído, filhos podem passar processos para o pai, e conclusões por tarefa são opcionais (#103549, #116707, #105125). Roteamento de filhos:delegation.fallback_providersdá aos filhos a própria cadeia echild_timeout_secondsmede inatividade (#105347, #117606). O/goalé consistente no CLI, no Desktop e na mensageria, o juiz espera pelos subagents,/goal pause for nownão sobrescreve mais o goal, e os gates rodam no workspace da sessão (#104833, #132251, #125453).
🔒 Segurança, Privacidade e Base de Código
- Correções de segurança da v0.21.6 — endurecimento do login do dashboard (
X-Forwarded-Forfalsificado, limites de tamanho, códigos de login apenas em loopback); o git automático pula programas de filtro do repo; a allowlist de e-mail resiste a spoofing de nome de exibição (#133367, #130685, #130661, #125212). Segredos ficam onde estão: processos filhos não herdam segredos de adaptadores ou do dashboard, oexecute_coderemoto mantém seu token fora do argv, exports de profile pulam os cofres de credenciais, e chaves nunca chegam a hosts estranhos em refresh ou fallback (#125755, #124262, #130525, #120299). Redação mais precisa: o compartilhamento de debug faz a redação antes de truncar, leituras de arquivo e saída de terminal mascaram.enve segredos de config,hermes config getmascara a menos que use--raw, e as passagens para a memória são higienizadas (#132270, #111422, #111341, #134429, #100564). Arquivos em repouso com acesso apenas do dono: credenciais,state.db, snapshots, perfis de navegador, caches de mídia, valendo o que a sua umask disser (#109509, #127229). - Proteções mais amplas — mais requisições passam pelo guard SSRF (
security.fake_ip_rangespara proxies fake-ip); buscas de metadata de nuvem, pipe para shell no zsh/dash edeno evalexigem aprovação;approvals.denyfunciona em sandboxes; regras embutidas substituem o scanner tirith incluso (#114887, #113156, #116726, #103649, #133832). Buracos fechados: o callback OAuth do MCP para de refletir HTML, e as entradas de webhook, SMS e WhatsApp Cloud rejeitam segredos de assinatura em branco (#92612, #133257). Métricas compartilhadas opcionais: estatísticas diárias de uso chegam à Nous só com consentimento, os dois interruptorestelemetry.shared_metricsvêm desligados por padrão, cada profile pergunta uma vez, e Enter significa “Não, obrigado” (#95278). - Base de código e performance — cerca de 2,1 mil tokens de prompt a menos por requisição, ferramentas de cofre sob demanda, sondagens de arquivo em uma só ida e volta, e
hermes -wnão reempacota mais a cada inicialização (#137084, #101599). Backups mais seguros:hermes backupmantém os 3 mais novos e sinaliza arquivos incompletos;hermes importrecusa os danificados (#106455, #121498). Também: variáveis de ambienteKEY_2… entram nos pools de credenciais; umhermes statusde uma tela só;display.suppress_warning_notificationsopcional; seções do roster de Bots no Desktop; apenas o próprio node/npm/uv do Hermes é usado; Xiaomi MiMo v2.6 (#112390, #131034, #114370, #101290, #125589, #118502). - Para contribuidores — CODEOWNERS substitui o gate de labels; E2E (incluindo Windows nativo) roda apenas em builds de release; releases estáveis pulam macOS Intel/Termux por padrão (#131726, #136603).
🐛 Correções de Bug Notáveis
- Onboarding, connectors e modelos locais — o llama-server gerenciado não trava mais no Windows com 0xC0000374 nem herda mais suas credenciais (#116923); servidores de modelo local no Windows ficam contidos e órfãos são recuperados com segurança; dois backends subindo juntos iniciam um único router (#111038, #117600).
- Instalação, atualização e empacotamento — agentes em Docker não perdem mais o servidor de API embutido, a mensageria e as dependências de MCP depois de um reinício (#135726); um
hermes updateinterrompido no meio do pull não quebra mais todos os pontos de entrada (#120339). - Providers e modelos — um modelo Claude com rate limit não penaliza mais a credencial inteira para todos os outros modelos Claude (#113171); sessões do app-server do Codex agora recebem SOUL.md e o system prompt do Hermes (#115759).
- Loop do agente, sessões e memória — um chat cuja linha de sessão foi excluída a recria em vez de descartar silenciosamente todos os turnos seguintes (#124117); mensagens descarregadas no desligamento do gateway são recuperadas na sessão delas (#114225).
- A lista completa de correções está no corpo da release.
Atualização
hermes update
Instalações gerenciadas recebem um runtime Python 3.14. Depois de atualizar, rode hermes doctor para verificar a instalação e reinicie o gateway (hermes gateway) para que as mudanças de plataforma entrem em vigor. Para ver o que a próxima atualização vai tocar antes de rodá-la: hermes update --plan.
Full Changelog: v0.21.0…v0.22.0
← Hermes Agent Changelog