v0.22.0

Hermes Agent v0.22.0


Overview

v0.22.0 — The Threshold Release. Publicado el 13 de octubre de 2026. Desde v0.21.0: ~24,200 commits · ~6,080 PRs fusionados · ~15,600 archivos modificados (+2,045,000 / −1,140,000) · ~7,180 issues cerrados · ~2,520 colaboradores.

Hermes era el dios de los umbrales: la puerta, el cruce, la piedra que marca el límite. La v0.21.0 reunió el panteón; la v0.22.0 va de atravesar la puerta. Una instalación nueva de escritorio abre ahora en un chat de configuración guiado que funciona sobre un modelo de prueba gratuito, así que quien llega por primera vez ya está hablando con Hermes antes de tener una API key. Los Connectors llevan al agente hasta las aplicaciones que ya usas, sin necesidad de cuenta para empezar. Los modelos locales lo traen a tu propio hardware con un runtime llama.cpp de un clic. Y el umbral en sí quedó más sólido: versiones estables SemVer probadas que las instalaciones siguen por defecto, paquetes de escritorio firmados (incluida la Microsoft Store) y un único gestor de paquetes debajo de todo. Alrededor de esa columna vertebral: un catálogo de 600 plugins, la oleada de modelos Claude 5.5 / GPT-6, inicio de sesión en el navegador con gestor de contraseñas, una pantalla de bot que puedes tomar, un backend y un gateway para cada perfil, y una base de código un tercio más pequeña.

Esta es la ventana más grande que Hermes ha publicado, unas 2.5 veces el ciclo de v0.21.0, y agrupa y documenta por completo las versiones de parche v0.21.1–v0.21.7.


Puntos Destacados

1. Un primer arranque que se configura solo

Abre la app de escritorio en un ordenador donde nunca has usado Hermes y arranca un breve chat de configuración en lugar de una pantalla de ajustes. Tarjeta a tarjeta te pregunta tu nombre, un color de acento y un diseño, qué aplicaciones conectar y qué plugins instalar; después te da un recorrido rápido y te propone hasta cuatro primeras tareas elegidas para ti. Funciona sobre un modelo de prueba gratuito (nous/welcome, una vez por usuario del sistema), así que no necesita ninguna key; Skip setup lo termina y Settings → Run onboarding again lo recupera. El agente también ganó set_theme, así que “ponlo violeta, modo oscuro” funciona en cualquier chat de escritorio (#137429, #137522, #137807, #134209, #105258).

2. Connectors: Hermes trabaja dentro de tus aplicaciones

A través del gateway de herramientas de Nous, el agente puede ahora actuar en aplicaciones alojadas como Linear y Notion: pide una aplicación, inicia sesión una vez en tu navegador y sus herramientas quedan disponibles en el mismo turno. No necesitas una cuenta de Nous para empezar; la primera vez que usas una aplicación, Hermes crea una identidad gratuita solo para connectors. El escritorio tiene una nueva página Connectors que reúne las aplicaciones alojadas y tus servidores MCP en una sola lista (sustituye a la pestaña MCP), la misma tarjeta de configuración aparece en el TUI y el CLI, y puedes conectar varias cuentas con nombre de una misma aplicación (una cuenta work y otra home) y gestionarlas con /connectors o hermes connectors (#106842, #111008, #119074, #135143, #135072, #135097, #135151, #135173, #137426).

3. Modelos locales en un clic

Hermes puede ahora ejecutar modelos abiertos enteramente en tu máquina, sin que nada salga de ella: ni cuenta, ni API key. Instala y mantiene llama.cpp con el motor adecuado para tu hardware (CPU, CUDA, Metal, Vulkan o ROCm), puntúa cada modelo del catálogo según tu GPU y tu RAM, y elige la compilación de mayor calidad que quepa. Las descargas se pausan y se reanudan, el servidor arranca y se detiene con Hermes, y las actualizaciones del motor son de un clic. Empieza desde Settings → Providers → Local Models en Windows, macOS y Linux, o desde hermes model → Local models en una terminal. El catálogo incluye Qwen3.8 27B, Qwen3.8 Flash Next (con su cabeza especulativa MTP), Qwen3.6 35B-A3B y DeepSeek V4 Flash, además de cualquier GGUF de Hugging Face (#100667, #101823, #128768, #111423, #133111, #134116).

4. Canales de versiones estables

Hermes ahora publica versiones SemVer probadas. Cada release pasa por el CI del código fuente, Docker, Nix, compilaciones de escritorio firmadas y ejecuciones de instalación/actualización en todos los sistemas operativos antes de publicarse, y las instalaciones desde el código fuente pasan ahora de release en release por defecto en lugar de seguir cada commit de main. ¿Prefieres el filo absoluto? hermes update --set-channel main, o el nuevo cambio de canal en el escritorio, Settings → About. Volver a una versión anterior se etiqueta como rollback y nunca ocurre sin preguntar, y volver a ejecutar el instalador te mantiene en el canal que elegiste (#102765, #135847, #135949, #136313, #137780).

5. Paquetes de escritorio firmados, la Microsoft Store y un solo gestor de paquetes

La app de escritorio es ahora un paquete sellado y firmado que lleva su propio Python y Node y se actualiza sola, así que el primer arranque no compila nada. Windows recibe un MSIX firmado (x64 y ARM64) a través de App Installer o la Microsoft Store; macOS recibe una compilación firmada y notarizada para Apple Silicon. Por debajo, un nuevo gestor de paquetes unificado (hermes pm) controla cada herramienta fijada y verificada por hash y cada entorno de Python: las actualizaciones construyen un entorno nuevo y solo cambian cuando pasa su comprobación, así que una actualización fallida o interrumpida ya no puede dejarte a medias (#102765, #132361, #132386, #120339, #122221).

6. El Catálogo de Plugins: 600 plugins revisados

El catálogo de plugins se lanzó en este ciclo y creció hasta 600 entradas, cada una fijada a un commit revisado e instalable desde Hermes Desktop o el CLI. Explora por categoría y ranking de estrellas, con una página por plugin y por autor; las reglas del catálogo impiden que los plugins listados parcheen las tripas de Hermes o distribuyan binarios no escaneables. Los proveedores de memoria viven ahora con sus creadores (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), igual que Home Assistant, Spotify y Langfuse: los usuarios existentes se migran automáticamente y la instalación por defecto quedó más ligera (#69446, #111415, #117808, #113381, #114732, #131267, #132476, #136436).

7. La oleada de modelos Claude 5.5 y GPT-6

Claude Fable 5.1, Opus 5.5, Sonnet 5.5 y Haiku 5.5, GPT-6 Astra, Sol y Luna más GPT-6.1 Sol, y Gemini 4 Argon se pueden elegir en Nous Portal, OpenRouter y las rutas nativas donde se ofrezcan. El razonamiento previo se reproduce ahora por defecto en todos los proveedores capaces de leerlo, a través de reanudaciones, ramas y compactación, así que el trabajo largo de varios pasos conserva su hilo de pensamiento. Y cuando un proveedor tiene una mala hora, Hermes aguanta los 503/529/timeouts transitorios en ciclos visibles y acotados en lugar de terminar tu turno (#100577, #119304, #126842, #134759, #128248, #137955, #136358, #116353).

8. Inicia sesión en sitios web con tu gestor de contraseñas

El agente de navegador puede entrar en sitios con credenciales de 1Password, Bitwarden o el propio vault cifrado de Hermes, y el modelo nunca ve la contraseña. Si no hay nada guardado, recibes un prompt enmascarado en el CLI, el TUI o el escritorio para guardarla, los códigos de un solo uso se rellenan sin pasar por la conversación, y los rellenos de tarjeta y dirección en el pago requieren tu confirmación (#106480, #107585, #137084).

9. Bot Screen: mira trabajar a tu bot y toma el control cuando te necesite

Un bot que corre en un gateway Linux puede tener su propio escritorio, que Hermes Desktop retransmite en vivo. Cuando se topa con un inicio de sesión, un prompt 2FA o un CAPTCHA, tomas la pantalla, completas el paso tú mismo y devuelves el control mientras el bot continúa con tu sesión. Con un backend Docker, SSH o Singularity, la pantalla del bot, el computer use y el navegador corren dentro del sandbox, nunca en tu host (#108914, #121169, #121110).

10. Un backend y un gateway para cada perfil

Hermes ejecuta ahora un solo gateway de mensajería y un solo backend de escritorio por máquina que sirven a todos tus perfiles, en lugar de un proceso por perfil. Crear un perfil pone sus bots en marcha sin reiniciar, cada perfil conserva sus propias credenciales, listas de permitidos, tareas cron y sesiones, y hermes update migra automáticamente las configuraciones por perfil existentes. Menos procesos, sin choques de tokens, una sola cosa que arrancar y detener (#112854, #108928, #118273, #117983, #118246, #118027).

11. Ve y dirige tus subagentes en vivo

Los subagentes en ejecución permanecen visibles sobre el compositor en el CLI (F6), el TUI (Ctrl+T) y el escritorio, con la tarea de cada hijo, el tiempo transcurrido y la transcripción en vivo, además de botones de Steer y Stop. /stop llega a los hijos en segundo plano y devuelve su trabajo parcial, y delegate_task puede pasar capturas y mocks a hijos con capacidad de visión (#105593, #115616, #97689).

12. Un selector de modelos que conoce tus planes

Marca tus modelos favoritos con una estrella, mira una suscripción que se agota (“17% left · resets 3:00 PM”) y cuándo se levanta un límite de tasa directamente en el selector, y elige el esfuerzo de razonamiento como parte de la selección del modelo en hermes model, /model (/model X --reasoning high) y el escritorio. Cambias antes de chocar con el muro, no después (#126535, #133392, #133408, #110346, #113117).

13. Hermes en tu idioma, en todas partes

Cada cadena visible para el usuario en el CLI, el gateway de mensajería, el TUI y el escritorio pasa ahora por un único catálogo de traducción, con cobertura completa en los idiomas incluidos. Los idiomas nuevos pueden distribuirse como plugins, y cualquier perfil puede sobrescribir cadenas concretas con un pequeño archivo YAML (#126296).

14. Más ligero en todos los sentidos

Toda la base de código se simplificó sin cambiar ningún comportamiento: el código fuente pasó de unos 1.06M a 698K líneas (−34%) y gateway/run.py se redujo de 34,847 líneas a 5,512. Los prompts también se aligeraron: unas 19 herramientas de uso poco frecuente ahora solo se cargan cuando el agente las busca, lo que reduce a la mitad aproximadamente el esquema de herramientas de escritorio que se envía en cada llamada, y otros ~2.1k tokens salieron del prompt fijo. Los modelos locales hacen menos prefill en cada turno (#102117, #97979, #106676, #137084).

15. Pequeñas comodidades que suman

Teclas vim opcionales en el prompt del CLI, un campo de rama de git en la barra de estado, una campana y una notificación de escritorio cuando Hermes te está esperando, Ctrl+C que borra tu borrador en lugar de matar el turno, un /queue editable, y hermes --native para que tu propia terminal gestione el scrollback y la búsqueda del TUI. En el escritorio, un nuevo modo Simple convierte la app en una ventana de chat sencilla, y los errores ahora dicen qué salió mal con una corrección de un clic (#106412, #106434, #101284, #101320, #137065, #95999, #121035, #118587, #111601).


⚠️ Notas de actualización

  • Python 3.14 es el runtime de las instalaciones gestionadas (el gestor de paquetes lo instala por ti). KittenTTS no está disponible en 3.14 (#102765).
  • El escritorio de Windows es solo MSIX y necesita Windows 11 22H2 o posterior; los instaladores NSIS/MSI desaparecieron. La app de macOS es solo Apple Silicon en las compilaciones por defecto (#102765, #136603).
  • Un gateway por máquina es lo predeterminado. hermes update integra los gateways por perfil en el predeterminado multiplexado cuando no hay conflictos (#112854).
  • Los chats ya no se reinician con un temporizador de inactividad o diario. Los modos idle/daily de session_reset se retiran (las configs que todavía los definen registran un aviso); /new o /reset empiezan de cero (#105021, #126244).
  • Las sesiones antiguas se limpian automáticamente. sessions.auto_prune ahora está activado por defecto: las sesiones terminadas e inactivas durante 90 días se eliminan al arrancar. Las sesiones fijadas y abiertas nunca se tocan; pon sessions.auto_prune: false para conservarlo todo.
  • Los proveedores de memoria pasaron a ser plugins del catálogo (Honcho, Supermemory, Hindsight, Mem0, OpenViking, Holographic), igual que Home Assistant, Spotify y Langfuse. Los usuarios existentes se migran al actualizar o en el primer arranque, con los datos intactos. ByteRover y RetainDB siguen incluidos.
  • Autores de plugins: la antigua capa de importación de compatibilidad de plugins desapareció (#126164), se eliminó hermes sync (Skill Sync) (#132465) y se eliminó el escáner tirith incluido (#133832). Varias herramientas se renombraron (todo → todo_list, cronjob → cronjob_manage, process → process_manage); los nombres antiguos siguen funcionando (#97979).

🚪 Onboarding, plan gratuito, Connectors y modelos locales

  • Onboarding en el primer arranque — una instalación nueva de escritorio recibe el chat de configuración guiado (ver Punto destacado 1). Las instalaciones existentes y los backends remotos (SSH, URL, Cloud) no lo reciben automáticamente; el antiguo flujo de perfil de configuración y /initiate-setup se eliminaron (#137420, #134215, #108292).
  • set_theme — el agente puede definir el color de acento (una muestra o cualquier #rrggbb), el modo claro/oscuro/sistema y el diseño, o mostrar un selector (#137522).
  • Plan gratuito — una primera instalación de escritorio sin proveedor y sin cuenta de Nous recibe el modelo gratuito nous/welcome como prueba única (una vez por usuario del sistema). El CLI, el TUI y el gateway no reciben cuenta ni modelo gratuito; HERMES_GUEST_ONBOARDING desapareció. hermes auth upgrade, o /login en cualquier chat o DM de mensajería, mejora esa identidad gratuita a una cuenta completa de Nous manteniendo tus aplicaciones conectadas (#137807, #105258, #105259, #105260, #105261).
  • Límites claros del plan gratuito — el límite de tasa gratuito termina el turno de inmediato con la hora de reinicio; cada fallo del plan gratuito tiene un código y una frase clara; la app gestiona la comprobación del navegador del servicio de cuentas; los usuarios del plan gratuito ven un aviso de Términos y Privacidad. Las cuentas de Nous sin créditos pueden elegir modelos facturados a una suscripción que tengan y obtener búsqueda web rápida gestionada gratuita (#134049, #111970, #133824, #117079).
  • Connectors — conectores de aplicaciones alojadas, la página Connectors y varias cuentas por aplicación (ver Punto destacado 2). Las herramientas de conector también pueden enviar tus archivos locales como adjuntos y guardar los archivos que devuelven. nous.guest: false desactiva las identidades de invitado; tools.connectors.enabled: false desactiva los conectores (#111238, #138014).
  • Modelos locales — instalación de un clic (ver Punto destacado 3); descargas GGUF de Hugging Face con pausa y reanudación; una oferta de configuración única tras el onboarding en máquinas capaces de ejecutar el modelo recomendado (#129506). Actualizaciones de motor en un clic: NVIDIA en Linux recibe CUDA, las GPU de AMD e Intel reciben Vulkan dimensionado por su propia memoria, y todos los backends ejecutan llama.cpp b11370 (#111423, #133111, #131782). Mejores recomendaciones: solo se recomiendan modelos que caben por completo en la memoria de la GPU, y el 27B ya no se sugiere en hardware que lo ejecuta mal (#108429, #135438, #134116, #112107). Tus propios servidores locales: LM Studio tiene un perfil de proveedor, los selectores de Ollama ya no parpadean, un servidor llama.cpp iniciado por ti aparece en /model, y el fallback al modelo gestionado por el escritorio funciona (#134320, #113129, #116679, #131795).

📦 Versiones estables, paquetes de escritorio y gestor de paquetes

  • Versiones estables y canales de actualización — versiones estables SemVer probadas y el cambio de canal (ver Punto destacado 4). Las v0.21.6 y v0.21.7 fueron las primeras en pasar por la nueva puerta; los forks se quedan en main, y una instalación por delante de la última versión espera a la siguiente. Comprobaciones de actualización más ligeras: una llamada a la API de GitHub al día sustituye a git fetch cada 30 minutos (#107648).
  • Paquetes de escritorio sellados y firmados — ver Punto destacado 5. Dentro de un paquete, hermes update apunta al actualizador correcto (App Installer, Store o macOS) (#134911). Las instalaciones empaquetadas funcionan de principio a fin: la terminal del agente ejecuta hermes, Uninstall explica la eliminación por el sistema operativo, y los plugins con dependencias de Python se instalan dentro del MSIX (#134051, #135333).
  • hermes pm — el gestor de paquetes unificado (ver Punto destacado 5): Python 3.14 fijado y verificado por hash, uv, Node, ripgrep, FFmpeg, Chromium y Git/Bash en Windows, con hermes pm doctor|status|repair|gc. Los colaboradores usan source ./activate (o .ps1/.fish).
  • Los entornos de dependencias son generaciones — los nuevos se comprueban antes de usarse, así que una instalación fallida conserva el que funciona; las actualizaciones y hermes pm gc recuperan los antiguos (92 GB a 18 GB en un host) (#124968, #133808). Los SDK opcionales (Anthropic, Bedrock) se cargan a mitad de sesión sin reiniciar; security.allow_lazy_installs: false lo desactiva (#122221). Los plugins declaran dependencias de Python, que se resuelven con el núcleo en todos los perfiles; los conflictos se rechazan, y una actualización desactiva un plugin que ya no encaja (#113851, #122103, #114569, #132469).
  • Las actualizaciones no pueden quedar a medias — ver Punto destacado 5; una actualización interrumpida se repara sola en el siguiente arranque (#132361, #120339). Actualizaciones más rápidas y checkouts más pequeños: las actualizaciones reconstruyen solo lo que cambió (16.5 s frente a 32.5 s en macOS), los clones son sin blobs, y el crecimiento del .git en clones parciales está corregido (#135092, #133016, #131679).
  • Instaladores — install.sh/install.ps1 verifican la uv y el Git fijados, delegan en PM, registran en logs/install.log, y ahora funcionan en Linux musl (Alpine, Void), Windows 10 y rutas de Windows con Unicode (#124964, #125598, #132430). Con la telemetría opcional activada, los fallos de instalación, actualización, skill y plugin registran un motivo (#133809).
  • Docker / Nix / Termux / Windows — Docker fija una base Debian 13 con Chromium completo; stable/latest solo se mueven con una versión publicada; los extras preinstalados vuelven tras un reinicio (#135726, #135084). Nix comparte las fijaciones y su app de escritorio recibe Wayland; Termux pasa a un paquete APT firmado (pkg upgrade hermes-agent), aunque su documentación sigue avisando de que está roto; las actualizaciones de Windows terminan mientras el runtime antiguo está en uso (#128144, #122146, #131779).

🧠 Proveedores y modelos

  • Proveedores como plugins — los proveedores ACP y basados en CLI se instalan fuera del árbol con hermes plugins install; --provider chatgpt elige ChatGPT Codex OAuth (#101456, #115761). Bedrock sirve GPT-6 (1M) y aplica Claude Guardrails; Azure Foundry lista despliegues; Gemini acepta herramientas con JSON Schema completo; OpenCode Go enruta Claude vía Messages (#133573, #107815, #115770, #98928, #134848).
  • Nuevos ajustes — agent.text_verbosity define la longitud de las respuestas de Responses; los proveedores personalizados con nombre corren sobre el app-server de Codex (#115880, #115905).
  • Catálogo de modelos — Claude 5.x (Opus 5.5 también en Anthropic nativo y Bedrock, 1M); GPT-6 Astra/Astra Pro en estándar, rápido y flex, el -900k de Codex opcional, y /fast ultrafast para Astra y 6.1 Sol; Gemini 3.8 Flash y 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).
  • Autenticación — los perfiles comparten inicios de sesión OAuth de forma segura (los grants de un solo uso nunca se bifurcan, el login propio de un perfil se conserva); el inicio de sesión de Nous sobrevive a la expiración horaria, subagentes concurrentes, caídas del Portal y comprobaciones de borde (#100929, #134574, #103526, #121488). Los logins muertos se nombran una vez con el arreglo hermes auth add; auth.adopt_external_logins: false deja de tomar prestados los logins de Codex CLI/Claude Code (#113816, #115586).
  • Enrutamiento, fallback y caché — agent.auto_recovery_cycles (por defecto 5) acota la espera, y el fallback vuelve a un primario Codex cuya cuota se reabrió (#116353, #130716). El enrutamiento automático nunca factura a un proveedor que no elegiste; provider_routing.models fija OpenRouter por modelo (#107366, #104159). cache_ttl: auto opcional (1h en interactivo, 5m en subagentes/cron); un /model que rompe la caché en una sesión grande pregunta primero; la compactación conserva el prefijo (#118337, #95267, #104455).
  • Razonamiento — se reproduce en todos los proveedores que lo leen; el esfuerzo se puede definir en todos los selectores, con nombres de nivel personalizados; el modo rápido de Anthropic sigue la documentación (#136358, #110346, #115735, #120517).

🏗️ Agente central, sesiones y memoria

  • Los turnos atascados se recuperan — un watchdog (agent.turn_liveness.timeout_s, por defecto 600 s) interrumpe un turno sin progreso y libera su sesión; las reparaciones repetidas de la transcripción ahora lanzan un único error en lugar de quedarse en silencio (#99758, #99687). Los streams muertos sin texto reintentan, los bucles de repetición se cortan, y los turnos interrumpidos no se reportan como completados (#113135, #130551, #112272).
  • La compactación se dispara con recuentos reales de tokens — el uso reportado por el proveedor, no bytes sobre cuatro; la cola protegida se limita al 20% para que los modelos de ventana pequeña también compacten (#104555, #117957). Los malos resúmenes no pueden borrar el contexto: los proveedores de resumen que se niegan o se sobrecargan dejan la transcripción intacta, y una compactación sin confirmar no cambia nada (#118920, #115906, #136083). Nuevas claves por proveedor compression.model_thresholds y auxiliary.<task>.no_progress_timeout (#108061, #115804).
  • Sesiones y state.db — los timeouts de bloqueo nombran el proceso que lo retiene, una base de datos ocupada ya no mata un turno, y los espacios de nombres de PID hermanos no pueden robar leases (#116967, #134577, #132161). state.db deja de crecer: la limpieza automática está activada por defecto (sesiones terminadas de más de 90 días) y cierra sesiones obsoletas de cron/kanban/subagentes; VACUUM solo se ejecuta cuando se puede recuperar el 25% (#101316, #100903). Comandos de reparación: hermes sessions set-journal-mode delete|wal, repair-profiles, repair-prompts (#117684, #115689, #124200).
  • Memoria — OpenViking y Holographic pasan al catálogo de plugins al actualizar o en el primer arranque, con los datos intactos, o indican por qué no (#134350, #136436, #131269). Se aceptan MEMORY.md/USER.md formateados a mano, los rechazos dicen qué corregir, y los secretos se limpian antes de que los proveedores los vean (#133038, #134429).
  • Perfiles y configuración — un config.yaml roto vuelve a la última copia buena y los errores de lectura no pueden borrarlo (#109463, #120343). hermes config get enmascara los secretos (--raw lo desactiva), set rechaza rutas con errores tipográficos y guarda nombres estilo env en .env (#111341, #112250). Los perfiles siguen separados: las rutas REST actúan sobre el perfil que nombran, las exportaciones omiten .ssh/.aws/.gnupg, y import-agent --sync mantiene las importaciones al día (#118275, #132201, #88855).

📱 Plataformas de mensajería (Gateway)

  • Un gateway sirve a todos los perfiles — hermes gateway status explica cualquier rechazo del boot-guard, hermes gateway migrate --multiplex migra a mano, las plataformas de webhook sirven cada perfil en /p/<profile>/, hermes -p X gateway stop|start aparca un perfil, y gateway.standalone: true es una exclusión temporal (#112854, #108952, #119774, #119680). Los perfiles siguen aislados: los clones omiten los tokens de bot salvo con --clone-channels, y profile_routes puede enrutar por remitente (#109502, #115642).
  • Sesiones y comandos — /login conecta a los usuarios del plan gratuito desde un DM; el session_reset de inactividad/diario se retira, así que solo /new y /reset empiezan de cero; /branch abre un hilo hermano en Discord, Telegram, Slack y Matrix (--here mantiene el comportamiento anterior); el modo decline envía una negativa cortés a los DMs no autorizados; un pie de página served_model opcional nombra el modelo que respondió (#105261, #126244, #117450, #88028, #115925).
  • Plataformas — el bots_require_mention opcional de Telegram detiene los bucles de respuesta entre bots, extra.drop_pending_on_cold_boot: false conserva los mensajes enviados sin conexión, el CJK puede optar a mensajes enriquecidos; la configuración de Discord verifica el token, enlaza el Message Content Intent y te añade a la lista permitida, y los canales de respuesta libre pueden crear hilos automáticamente; Slack recibe un selector /model con Block Kit, con estados/títulos en la Agent Sessions API; WhatsApp hace menciones nativas vía hermes send --mention sin el retardo de agrupación de 5 s, y sesiones emparejadas en todos los perfiles; las tablas de Signal se renderizan en monoespaciado, el LaTeX de Matrix se compone en Element, el Email rechaza remitentes suplantados y exige un pin authserv_id (el correo se descarta hasta que se configure), y send_message del QQ Bot entrega medios (#106534, #116134, #111831, #132456, #116168, #103436, #101477, #115253, #117104, #132518, #106538, #106515, #132663, #131927).
  • Webhooks y el servidor de API — el coalesce opcional agrupa ráfagas de eventos en una sola ejecución, los eventos de cron_job disparan tareas cron, las firmas de Standard Webhooks se verifican, y el mirror_to_session opcional da contexto a las respuestas (#92066, #95262, #104183, #120825). El servidor de API transmite el razonamiento a clientes compatibles con OpenAI, y las aprobaciones de stream se pueden responder (#115797, #121769).
  • Relay y Bot Chat — las salas de Bot Mode pueden editar miembros, responder a @handle, guardar 200 mensajes de historial y admitir DMs de bot conscientes del remitente con una guarda de bucle ALLOW_BOTS (#113384, #107520). Relay comprueba los destinos de send_message; el trazado de NeMo Relay en 0.10.0 etiqueta los spans con el directorio de trabajo (#99220, #135787, #108345).

🖥️ App de escritorio

  • Modo Simple / Avanzado — Simple oculta los paneles de desarrollador, Avanzado sigue siendo lo predeterminado (#118587). Pestañas en la barra de título; los perfiles se abren en su propia ventana o como predeterminados de arranque (#107099, #113176). Agrupación de la barra lateral por gateway/perfil, instancias Cloud reutilizables, arrastra Nueva sesión a un panel (#105813, #70571). Importa y continúa la transcripción de otro agente de código (#104229). Las tarjetas Goal / Loop / Heartbeat se pausan, reanudan y detienen sobre el compositor (#104246).
  • Chat y compositor — una píldora de esfuerzo de razonamiento; añade un modelo por slug; los pegados de más de 3,000 caracteres se adjuntan como .txt; atajo opcional de captura de ventana en macOS (#109907, #120693, #108901, #113349). Los errores accionables nombran el problema y el arreglo; las tarjetas de límite de uso muestran la hora de reinicio y pueden programar un reintento (#111601, #116288). El modo de comentario del navegador fija elementos de la página con notas, enviando recortes, selectores y estilos al compositor (#100083).
  • Ajustes y plugins — subpáginas ordenadas y buscables desde ⌘K; Chat Font (por ejemplo, OpenDyslexic); ruso, francés, alemán y español (#117127, #111226, #100429). Una fila por plugin; los plugins obtienen páginas de ajustes, y los plugins de escritorio pueden ejecutar acciones de la app por id, hablar a través de la mascota, añadir controles de Appearance y reordenar la navegación lateral (#133182, #136417, #135504, #120912, #120922).
  • Bot Mode — Bot Screen (ver Punto destacado 9), desactivado por defecto y necesita paquetes del host (#108914). Los chats de grupo pueden reordenar salas y comprimir el historial oculto de un miembro (#105909, #117015).
  • Rendimiento y plataformas — el escritorio se conecta al backend en ejecución, que sirve a todos los perfiles (#118246). Arranque más rápido en Windows; Linux funciona sin sudo y bajo WSLg/Wayland (#111002, #100136, #113247). Las sesiones siguen el worktree y la rama de git del agente; el panel Review acota el trabajo; explora espacios de trabajo SSH, arrastra sesiones a proyectos, busca en los logs, ve y limpia los bloqueos de Kanban (#128428, #127200, #99538, #126543, #126658, #125647).

⌨️ CLI, TUI y Dashboard

  • CLI — display.vim_mode, un campo de estado git_branch y display.bell_on_prompt (campana más notificación OSC 9), todos desactivados por defecto (#106412, #106434, #101284, #101320). Ctrl+T abre el monitor de subagentes; un pegado multilínea a mitad de turno es un solo mensaje (#105879, #109146). Comandos scriptables: hermes usage --json (cuota, sin sesión), hermes worktree --json/--older-than, kanban edit --title/--body/--priority, y -t para elegir qué servidores MCP arrancar (#115899, #95257, #117632, #101634). También: hermes -z sale con código distinto de cero en caso de fallo; -m custom:<name>:<model> llega a ese proveedor; el pie de página ya no se colapsa a “Window too small” (#113234, #115293, #117439).
  • TUI — --native o display.tui_native usa el modo de terminal nativo (#121035). Control de turnos en ejecución: doble Esc interrumpe, el push-to-talk corta el habla, y el dock en vivo (también en el CLI) muestra /goal y los prompts en cola (#125803). Arreglos de escritura: Shift+letra en terminales de teclado extendido, Ctrl+D en macOS, pegado de imágenes en Wayland, redibujados estables en reposo (#90674, #116851, #116824, #87907). Los TUI conectados se reincorporan a su sesión; attachments.storage: workspace prepara archivos que un agente en sandbox puede leer (#112227, #125816).
  • Dashboard — chat en más dispositivos: lectores de pantalla, desplazamiento táctil en iPad, sin caracteres duplicados del teclado móvil, y una segunda pestaña obtiene su propia terminal (#133960, #134181, #116978, #117061). Los errores son una frase y un botón de arreglo en lugar de JSON crudo, con búsqueda por título, un conmutador en vivo y analíticas por llamada a la API (#111602, #133981, #134100, #133991). Autoalojamiento: subrutas de proxy inverso, inicio de sesión con contraseña junto a OAuth, sesiones remotas sin expiración (#133903, #107018, #110061).
  • Comandos slash — esfuerzo de razonamiento en todos los selectores (hermes model, modelos auxiliares, /model), y /model X --reasoning high también funciona (#110346). Un /queue editable puede listar, editar, mover o eliminar prompts; /s es /steer (#95999, #125803). /context muestra cada archivo de instrucciones según se cargó, truncó o quedó eclipsado (#91272).

🔧 Herramientas, MCP y navegador

  • Las herramientas poco frecuentes se cargan a demanda — computer_use, session_search, image_generate, cron y las herramientas GUI del escritorio quedan detrás de tool_search por defecto (esquemas de escritorio de 13,367 → 6,883 tokens; defer: [] lo desactiva); todo/cronjob/process pasan a todo_list/cronjob_manage/process_manage (se conservan los alias) (#97979). La lista de herramientas se congela por sesión en el TUI, -q --resume y los saltos de gateway para que la caché de prompt se mantenga (#120289). Las sesiones desatendidas de gateway/cron detienen a la fuerza los bucles de herramientas, y cinco repeticiones idénticas detienen cualquier herramienta (#100967).
  • Herramientas de archivos y web más inteligentes — read_file muestra esquemas de SQLite y señala conflictos de merge, search_files ejecuta ripgrep directamente (5–6x más rápido), y web_search sin key conmuta entre proveedores gratuitos (#115974, #104502, #134048).
  • MCP — hermes mcp login <server> --flow device para terminales sin interfaz (#104891). OAuth más robusto: los refresh tokens nunca se borran, se gastan dos veces ni se envían a otro emisor; los servidores RFC 9207, alojados en Google y con WAF al frente inician sesión; los gateways nunca abren pestañas del navegador (#106185, #111186). Se conectan más servidores: los servidores solo SSE usan fallback, los servidores estrictos se conectan (sampling.tools opcional), y el catálogo añade n8n oficial y Asana V2 (#106432, #131891, #116048). El arranque conecta hasta mcp.discovery_concurrency (4) servidores a la vez; los modelos con visión ven las imágenes MCP; los servidores stdio muertos reaparecen sin repetir una llamada (#117956, #133815, #106546).
  • Navegador y computer use — el inicio de sesión con gestor de contraseñas también rellena tarjetas y direcciones después de que confirmes; hermes-sandbox:desktop es la nueva imagen por defecto (se conservan los sandboxes existentes) (#106480, #121169). browser_exec funciona de serie, controlando el Chromium incluido (también el fallback en la nube) y abriendo localhost mediante un sidecar (#102986).
  • Terminal y ejecución de código — los timeouts en primer plano de más de 600 s pasan a ser trabajos en segundo plano, heartbeat=N envía progreso, y el dock de trabajo en vivo los lista (#103529). Los resultados del sandbox señalan un entorno recreado; las rutas SSH se resuelven en remoto (#107093, #122657). LSP añade lsp.servers y lsp.package_manager y nunca ejecuta el intérprete o SDK propios de un repositorio clonado (#115714, #126239).
  • Medios — nuevos modelos: GPT Image 2.5 y 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). stt.streaming opcional muestra las palabras mientras hablas (CLI, TUI, escritorio) y las grabaciones largas se transcriben en todos los proveedores en la nube (#133853, #133825). voice.voice_chat_mode: gpt-live opcional da voz full-duplex al escritorio; auxiliary.voice_chat ejecuta los turnos hablados en un modelo más rápido y el TTS empieza antes (#108137, #133986, #115846).

🧩 Plugins, skills y el catálogo de plugins

  • Catálogo de Plugins — páginas de plugin y de autor: /docs/plugins organiza los plugins en Memory, Desktop, Platforms, Web, Tools, Voice, Automation y Models. Las páginas muestran la descripción, un aviso de divulgación, capturas, el README del commit fijado, un botón “Open in Hermes Desktop” y un comando de instalación copiable (#111415, #111547, #117808). Las tarjetas, más fáciles de leer, llevan una etiqueta de versión junto al commit fijado (1.2.0 @ ad3f352b), imágenes de banner, un tamaño uniforme y modo claro (#113381, #125065, #124001). Los listados pueden declarar problemas conocidos, que hermes plugins install y el dashboard muestran al instalar (#124058). Reglas de listado: los plugins de escritorio deben ceñirse a los slots del SDK, 11 plugins que parcheaban las tripas fueron retirados (las copias instaladas siguen funcionando), y la guía de envío coincide con lo que aplica el CI (#115579, #130860, #131048).
  • Novedades del catálogo — las 600 entradas son nuevas en este ciclo. Además de los cinco proveedores de memoria, Holographic tiene un nuevo mantenedor de la comunidad y Home Assistant, Spotify, Langfuse y TouchDesigner son ahora plugins oficiales del catálogo (#114732, #136196, #132476, #137130). Añadidos oficiales: Blender Lab, Snyk, NVIDIA App y NVIDIA Broadcast (solo Windows), Telegram Business, Memory Wiki (#119365, #109084). Tamaños por estante: Memory 65 (Cognee, LanceDB, ReMe, Memoria, HydraDB, Mnemosyne, YantrikDB, BetterDB), Web y búsqueda 34 (Apify, Parallel, Linkup, SerpApi, You.com, TinyFish, Oxylabs), proveedores de modelos 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), paneles de escritorio 140, herramientas 180 (#112292, #118231, #118512, #114202).
  • Sistema de plugins — los proveedores de modelos fuera del árbol aparecen en los selectores de modelos, inician sesión vía hermes auth (OAuth PKCE integrado) y refrescan tokens (#116552). Host de plugins por perfil opcional: plugins.isolation: host ejecuta plugins de terceros en un proceso por perfil con solo los secretos de ese perfil (#126911). Nuevas APIs: hooks para turnos interrumpidos, llamadas LLM auxiliares y prompts de entrada humana; los plugins pueden iniciar sesiones de gateway, añadir Automation Blueprints y slots de modelos auxiliares, distribuir el driver de computer use y hacer peticiones firmadas por Codex (#118909). SDK de plugins de escritorio: los ajustes config_schema se renderizan como formulario en Capabilities → Plugins; los plugins obtienen un puente de skills/toolsets/perfiles y slots de píldora de modelo y de menú (#118917). Instalar, fijar, actualizar: los repos privados se instalan con tus credenciales de git, el escritorio fija un plugin a un commit, las actualizaciones conservan los datos del usuario, y las skills de plugin se ejecutan como /plugin:skill (#106981, #107321, #133175). Cargador y escáner más robustos: las importaciones colgadas se omiten tras plugins.load_timeout_seconds (10 s), los hooks de guarda fallan cerrados, y la prosa, los fixtures y los literales de regex ya no bloquean instalaciones (#118915, #115954).
  • Skills — nuevas skills opcionales: 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). El índice del Skills Hub vuelve a construirse con unas 480 skills de ciencia, y la búsqueda también encuentra skills no indexadas (#109178). skills.auto_load fija skills en cada sesión y skills.create_dir elige dónde van las skills creadas por el agente (#92048, #100377). Mejor automejora: los aprendizajes y correcciones van a la skill de la tarea, la revisión en segundo plano puede mejorar cualquier skill, y las skills añadidas a mitad de chat llegan al mensaje siguiente (#102107). Curador más ligero: ya no bloquea el prompt del CLI, una instalación bajó de 1.9 GB a unos 200 MB, y las skills sin usar se archivan a los 30 días en lugar de a los 90 (#115862). Skills Guard: las instalaciones bloqueadas en una muestra de 421 skills bajaron de 83 a 68, y el shell en línea se limita a skills no comunitarias (#135595).

⏰ Cron, Kanban y delegación

  • Cron — los trabajos sin fijar usan el modelo configurado en el momento del disparo y pinned fija uno (#113679). Programaciones que se curan solas: un disparo que nunca llegó al modelo se reintenta a los 5, 15 y 30 minutos, una ventana de “retry after” del proveedor aparca el trabajo en silencio, y un hueco perdido durante un reinicio se dispara una vez (#108731, #115843). Alertas más discretas: una alerta por incidente más un recordatorio cada cron.failure_repeat_alert_hours; failure_deliver redirige o silencia los avisos de fallo; un agente puede hacer fallar su ejecución con [CRON_FAILURE] (#114807, #101373, #113155). Nuevas opciones de trabajo: --paused crea un trabajo sin armar, y --interpreter ejecuta scripts en tu propio venv (#104984, #125392). Un gateway multiplexado ejecuta los trabajos de cada perfil con el env y los secretos de ese perfil; la entrega necesita evidencia positiva, la salida se redacta en todas partes y las ejecuciones tardías o satélite se etiquetan (#118027, #100908, #112830).
  • Kanban — los workers aguantan los problemas del proveedor: los turnos fallidos reintentan en el sitio con contexto, y los límites de tasa o los 5xx se reencolan en lugar de consumir reintentos (#112318, #112500). Un tablero que se explica solo: las tarjetas muestran la última salida del worker cuando falla, y el despacho dice por qué se retiene una tarjeta (#112618). Una única definición de flujo controla las columnas; los workers reciben kanban_schedule; kanban create --body-file; el escritorio sigue los cambios de gateway (#134340, #130455, #116791, #119054).
  • Delegación y multiagente — subagentes en vivo, imágenes y /stop (ver Punto destacado 11). Los abanicos pierden menos: los hijos fallidos aparecen de inmediato, una caída del propietario conserva el trabajo terminado, los hijos pueden ceder procesos al padre, y las finalizaciones por tarea son opcionales (#103549, #116707, #105125). Enrutamiento de hijos: delegation.fallback_providers da a los hijos su propia cadena y child_timeout_seconds mide la inactividad (#105347, #117606). /goal es consistente en el CLI, el escritorio y la mensajería, el juez espera a los subagentes, /goal pause for now ya no sobrescribe el objetivo, y las puertas se ejecutan en el espacio de trabajo de la sesión (#104833, #132251, #125453).

🔒 Seguridad, privacidad y base de código

  • Correcciones de seguridad de v0.21.6 — endurecimiento del inicio de sesión del dashboard (X-Forwarded-For suplantado, límites de tamaño, códigos de login solo por loopback); el git automático omite los programas de filtro de repositorios; la lista de permitidos de email resiste la suplantación por nombre para mostrar (#133367, #130685, #130661, #125212). Los secretos se quedan donde están: los procesos hijos no heredan los secretos del adaptador ni del dashboard, el execute_code remoto mantiene su token fuera de argv, las exportaciones de perfil omiten los almacenes de credenciales, y las keys nunca llegan a hosts ajenos al refrescar o en el fallback (#125755, #124262, #130525, #120299). Redacción más precisa: el compartir de depuración redacta antes de truncar, las lecturas de archivos y la salida de terminal enmascaran los secretos de .env y de la config, hermes config get enmascara salvo con --raw, y los traspasos a memoria se limpian (#132270, #111422, #111341, #134429, #100564). Archivos solo para el propietario en reposo: credenciales, state.db, instantáneas, perfiles de navegador, cachés de medios, todo lo que diga tu umask (#109509, #127229).
  • Guardas más amplias — más descargas pasan por la guarda SSRF (rangos security.fake_ip_ranges para proxies fake-ip); las descargas de metadatos en la nube, el pipe-to-shell de zsh/dash y deno eval necesitan aprobación; approvals.deny funciona en sandboxes; las reglas integradas sustituyen al escáner tirith incluido (#114887, #113156, #116726, #103649, #133832). Agujeros cerrados: el callback de OAuth de MCP deja de reflejar HTML, y las entradas de webhook, SMS y WhatsApp Cloud rechazan secretos de firma en blanco (#92612, #133257). Métricas compartidas opcionales: las estadísticas diarias de uso llegan a Nous solo con consentimiento, ambos interruptores de telemetry.shared_metrics están desactivados por defecto, cada perfil pregunta una vez, y Enter significa “No gracias” (#95278).
  • Base de código y rendimiento — unos 2.1k tokens menos de prompt por petición, herramientas de vault a demanda, sondeos de archivos en una sola ida y vuelta, y hermes -w ya no reempaqueta en cada arranque (#137084, #101599). Copias de seguridad más seguras: hermes backup conserva las 3 más recientes y señala los archivos incompletos; hermes import rechaza los dañados (#106455, #121498). También: las variables de entorno KEY_2… se unen a los pools de credenciales; un hermes status de una pantalla; display.suppress_warning_notifications opcional; secciones de la lista de bots en el escritorio; solo se usan el node/npm/uv propios de Hermes; Xiaomi MiMo v2.6 (#112390, #131034, #114370, #101290, #125589, #118502).
  • Para colaboradores — CODEOWNERS sustituye a la puerta de etiquetas; E2E (incluido Windows nativo) solo se ejecuta en compilaciones de release; las versiones estables omiten macOS Intel/Termux por defecto (#131726, #136603).

🐛 Correcciones notables

  • Onboarding, conectores y modelos locales — el llama-server gestionado ya no se cuelga en Windows con 0xC0000374 y ya no hereda tus credenciales (#116923); los servidores de modelos locales de Windows quedan contenidos y los huérfanos se recuperan de forma segura; dos backends que arrancan juntos levantan un solo router (#111038, #117600).
  • Instalación, actualización y empaquetado — los agentes Docker ya no pierden su servidor de API integrado, la mensajería ni las dependencias MCP tras un reinicio (#135726); un hermes update interrumpido a mitad de pull ya no rompe todos los puntos de entrada (#120339).
  • Proveedores y modelos — un modelo Claude limitado por tasa ya no bloquea toda la credencial para el resto de modelos Claude (#113171); las sesiones del app-server de Codex ahora reciben SOUL.md y el prompt de sistema de Hermes (#115759).
  • Bucle del agente, sesiones y memoria — un chat cuya fila de sesión se eliminó la recrea en lugar de descartar en silencio todos los turnos posteriores (#124117); los mensajes volcados al apagar el gateway se recuperan en su sesión (#114225).
  • La lista completa de correcciones está en el cuerpo de la release.

Actualizar

hermes update

Las instalaciones gestionadas reciben un runtime de Python 3.14. Después de actualizar, ejecuta hermes doctor para verificar la instalación y reinicia el gateway (hermes gateway) para que los cambios de plataforma surtan efecto. Para ver qué tocará la próxima actualización antes de ejecutarla: hermes update --plan.

Full Changelog: v0.21.0…v0.22.0

← Hermes Agent Changelog