hermes@agent:~/.hermes$ cat hermes.md

Hermes Agent: La referencia para profesionales (2026)

# Una referencia práctica sobre Hermes Agent, el agente de IA de código abierto y mejora continua de Nous Research: autenticación con proveedores y OAuth, archivos de configuración, sistema de habilidades y uso como puerta de enlace de mensajería multiplataforma.

author: words: 45006 read_time: 207m updated: 2026-09-10 08:42
$ less hermes.md

TL;DR: Hermes Agent es un agente de IA de código abierto y mejora continua desarrollado por Nous Research. Funciona como CLI y como gateway de mensajería multiplataforma, almacena en disco una identidad duradera y memoria persistente, reúne skills que mejoran con el uso y funciona con cualquier proveedor de LLM compatible con OpenAI: Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok o tu propio endpoint autoalojado.1219 A partir de la versión v0.14.0 (16 de mayo de 2026), Hermes incorpora SuperGrok OAuth con grok-4.3 y un contexto de 1 millón de tokens, un proxy local compatible con OpenAI para proveedores de OAuth (hermes proxy), compatibilidad nativa con x_search, instalación desde PyPI (obsoleta desde la versión v0.19.0; el instalador de una sola línea es la vía recomendada), instalación diferida de dependencias, 28 plataformas de mensajería —incluidas LINE y SimpleX Chat—, /handoff, diagnósticos semánticos de LSP después de cada escritura, una herramienta video_generate unificada, computer_use mediante cua-driver para proveedores distintos de Anthropic, una versión beta nativa para Windows y el cierre de 12 incidencias P0 y 50 P1.19 Para la mayoría de los usuarios nuevos, lo más difícil es la autenticación con el proveedor: Hermes incluye 39 proveedores en su lista estática de selección en la etiqueta v2026.9.7 y amplía automáticamente esa lista mediante 39 complementos de proveedores incluidos, además de endpoints personalizados y tres métodos de autenticación distintos (clave de API en .env, OAuth mediante hermes model o un endpoint personalizado en config.yaml). El modelo de autenticación es lo primero que debes aprender: todo lo demás depende del proveedor que se resuelva.

Hermes Agent funciona como un entorno de ejecución de agentes completo, no como una simple interfaz de chat. Lee tu sistema de archivos, ejecuta comandos en backends aislados, extrae información de la web, genera subagentes, ejecuta tareas cron programadas, se comunica con Telegram/Discord/Slack/WhatsApp/Signal/Email desde un único proceso de gateway y crea sus propios skills a partir de la experiencia.1 La CLI es una interfaz de terminal construida sobre un bucle de conversación en run_agent.py; el gateway es un proceso de larga duración que dirige los mensajes de las plataformas de mensajería a través del mismo bucle de conversación.3

La diferencia entre un uso ocasional y uno experto de Hermes se reduce a cinco sistemas. Domínalos y Hermes se convertirá en un multiplicador de tu capacidad:

  1. Resolución de proveedores: cómo se traducen los flujos de autenticación en llamadas a API
  2. Jerarquía de configuración: config.yaml + .env + auth.json + SOUL.md + AGENTS.md
  3. Sistema de herramientas y toolsets: qué puede hacer el agente, con permisos específicos para cada plataforma
  4. Sistema de skills: memoria procedimental que el agente crea y perfecciona
  5. Gateway + cron + profiles: ejecutar Hermes donde desarrollas tu vida, no solo donde te encuentras

Puntos clave

  • La autenticación del proveedor tiene tres vías, no una. Clave de API en .env, OAuth mediante hermes model/hermes auth o un endpoint personalizado en config.yaml. Elige la vía que corresponda a tu proveedor, no la que te resulte más familiar.
  • Cambiar de proveedor requiere un solo comando. hermes model te guía de forma interactiva por todos los proveedores compatibles, incluidos los inicios de sesión con OAuth, y /model provider:model te permite cambiar durante una sesión sin perder el historial.2
  • Dos archivos conforman la superficie de configuración editable por el usuario. ~/.hermes/config.yaml contiene la configuración y ~/.hermes/.env, los secretos. Hermes administra directamente auth.json, SOUL.md, MEMORY.md y skills/: puedes editar SOUL.md manualmente, pero el propio agente modifica los demás.4
  • Hermes es el sucesor de OpenClaw. Si estás migrando, hermes claw migrate importa automáticamente más de 30 categorías de estado.5
  • De forma predeterminada, las tareas auxiliares se ejecutan con tu modelo principal. La visión, la clasificación de aprobaciones, la compresión y los títulos de las sesiones se ejecutan como llamadas «auxiliares» independientes a LLM, y en la etiqueta auto todas se dirigen a tu modelo de chat principal. No necesitas configurar nada, pero estas tareas secundarias pueden generar costos considerables con modelos de razonamiento caros. Cuando esto importe, asigna modelos rápidos y económicos a cada espacio auxiliary.<task>.434

Qué cambia en v0.14

v0.14.0 no se centra tanto en una función destacada como en reducir las dificultades de configuración y ampliar los entornos donde puede ejecutarse Hermes.19 Estos son los principales cambios operativos:

  • La instalación y el inicio son más ligeros. pip install hermes-agent permite instalarlo desde PyPI, los adaptadores pesados se instalan de forma diferida cuando se usan por primera vez y la ruta de inicio pospone suficiente trabajo como para reducir el arranque en frío unos 19 segundos. (Desde entonces, v0.19.0 declaró obsoletas las instalaciones mediante pip; consulta Instalación.)
  • Las suscripciones pueden convertirse en endpoints locales de API. hermes proxy transforma proveedores basados en OAuth, como Claude Pro, ChatGPT Pro y SuperGrok, en un endpoint local compatible con OpenAI para herramientas como Codex, Aider, Cline y Continue.
  • El alcance del gateway se amplía. LINE y SimpleX Chat se incorporan al gateway (la tabla comparativa de plataformas de la documentación enumera 28 plataformas en la etiqueta v2026.8.31; la sección Gateway de mensajería explica qué incluye esa cifra), Microsoft Teams queda integrado de principio a fin, la recuperación del historial de Discord está activada de forma predeterminada y las solicitudes clarify de Telegram/Discord ahora utilizan botones nativos.
  • Mejora la verificación durante la escritura. Después de realizar modificaciones, Hermes puede mostrar en cada turno resúmenes de los cambios en archivos y diagnósticos semánticos del servidor de lenguaje antes del siguiente turno, lo que lo acerca a un trabajo con agentes basado en evidencia.
  • Se amplían las herramientas de escritorio y contenido multimedia. computer_use funciona mediante cua-driver con proveedores distintos de Anthropic, video_generate se unifica tras backends intercambiables y vision_analyze envía los píxeles sin procesar a modelos que realmente pueden verlos.

Todas las secciones siguientes se basan en la documentación oficial disponible en hermes-agent.nousresearch.com/docs y en el árbol de código fuente de github.com/NousResearch/hermes-agent. Cada afirmación factual incluye una nota al pie que remite a la página oficial específica de la que procede.

Elige tu ruta

Lo que necesitas Ve aquí
Instalar Hermes Instalación: instalador de una sola línea o pasos manuales
Iniciar sesión con un proveedor Autenticación y proveedores: la sección que viniste a consultar
Cambiar de modelo durante una sesión El comando hermes auth y Endpoints personalizados y autoalojados para consultar la sintaxis de /model
Ejecutar un LLM local Endpoints personalizados y autoalojados: Ollama, vLLM, SGLang, llama.cpp, LM Studio
Conectar plataformas de mensajería Gateway de mensajería: Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat, ntfy, Buzz (28 en la tabla comparativa de la documentación)
Crear o instalar un skill Sistema de skills: divulgación progresiva + centro de skills
Referencia detallada de todos los comandos de CLI Sigue leyendo y enlaza directamente a Comandos de CLI

Cómo funciona Hermes: el modelo mental

Hermes se estructura en torno a un único bucle de conversación que puede invocarse desde cualquier punto de entrada. Los puntos de entrada son la CLI (cli.py), el gateway de mensajería (gateway/run.py), el adaptador ACP para la integración con editores, el ejecutor por lotes y un servidor API.3 En última instancia, todos llaman a AIAgent.run_conversation() en run_agent.py, que:

  1. Construye el prompt del sistema a partir de SOUL.md, MEMORY.md, USER.md, las skills, los archivos de contexto y las instrucciones de las herramientas mediante agent/prompt_builder.py (la reorganización de septiembre de 2026 lo trasladó al nuevo paquete agent/)3
  2. Resuelve el proveedor de ejecución mediante runtime_provider.py; en este paso se seleccionan la autenticación, la URL base y el modo de API3
  3. Llama al proveedor mediante uno de estos tres modos de API: chat_completions, codex_responses o anthropic_messages3
  4. Procesa todas las llamadas a herramientas devueltas mediante model_tools.py y el registro central de herramientas (tools/registry.py)3
  5. Repite el ciclo hasta que el modelo produce una respuesta final y, después, guarda la sesión en SQLite con FTS53

Comprender este bucle es importante porque cada función —personalidades, memoria, skills, compresión y respaldo— se conecta con una de estas etapas. Cuando leas una clave de configuración y te preguntes qué hace, la respuesta suele ser: «es un ajuste de la etapa 1, 2, 3 o 4 del bucle anterior».

Núcleo independiente de la plataforma. Una sola clase AIAgent sirve para la CLI, el gateway, ACP, la ejecución por lotes y el servidor API. Las diferencias entre plataformas se encuentran en el punto de entrada, no en el propio agente.3 Por eso los mismos comandos slash funcionan tanto en la terminal como en Telegram: se procesan desde un COMMAND_REGISTRY compartido en hermes_cli/commands.py.6

La estructura de directorios es el sistema. Hermes almacena todo en ~/.hermes/ (o en $HERMES_HOME para los profiles que no sean el predeterminado):4

~/.hermes/
├── config.yaml        # Settings (model, terminal, TTS, compression, etc.)
├── .env               # API keys and secrets
├── auth.json          # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md            # Primary agent identity (slot #1 in system prompt)
├── memories/          # Persistent memory (MEMORY.md, USER.md)
├── skills/            # Bundled + agent-created + hub-installed skills
├── cron/              # Scheduled jobs
├── sessions/          # Gateway session state
└── logs/              # agent.log, gateway.log, errors.log (secrets auto-redacted)

Cada archivo anterior tiene una función específica; ninguna se superpone con otra. Si buscas «dónde almacena Hermes X», está en uno de ellos.


Novedades de v0.21.0 (The Pantheon Release)

Hermes Agent v0.21.0 (etiqueta v2026.8.31, 31 de agosto de 2026) es la versión actual con nuevas funciones y constituye el registro seleccionado al que venía remitiendo toda la serie acumulativa v0.20.x: «Esta versión reúne todo lo incluido en las etiquetas de parches de infraestructura v0.20.1-v0.20.6; esos periodos están completamente documentados aquí». El planteamiento continúa la historia del Heraldo: «v0.20.0 convirtió a Hermes en el heraldo: habló y llevó la palabra a otros agentes. En v0.21.0, los dioses se reúnen». La línea de estadísticas, textualmente: «Desde v0.20.0: ~5.800 commits · ~2.475 PRs fusionadas · ~5.680 archivos modificados · ~869.000 inserciones · ~135.000 eliminaciones · ~2.100 incidencias cerradas · más de 760 colaboradores».35

La versión está organizada por áreas funcionales, al igual que este resumen. Cuando una función modifica una sección permanente de esta guía, se incluye el enlace correspondiente en el mismo punto.

  • Bot Mode: tus agentes se convierten en una sociedad integrada. Bot Mode pasa de ser el plugin hermes-bots incluido durante el periodo de v0.20.3 a formar parte de la aplicación de escritorio y estar activado de forma predeterminada. Cada profile de agente recibe un nombre, un rostro de avatar determinista con controles para generarlo al azar o bloquearlo, y un lugar en una lista compartida; puedes crear chats grupales al estilo de Discord donde tú y varios bots conversan en una misma sala, mencionar con @ a cualquier bot desde el editor y asignar nombres e imágenes a las salas. El catálogo secundario incluye tarjetas de mensajes entre agentes con atribución, avisos de entrega para el remitente, hidratación con renderizado prioritario para activaciones instantáneas, un panel de Rutinas y una reconstrucción basada en el sistema de diseño de la aplicación. En palabras de la propia versión: «Antes, “multiagente” significaba infraestructura; ahora parece una aplicación de chat llena de compañeros de trabajo».35
  • hermes peer: mensajes directos de bot a bot entre tus agentes. Cualquier agente Hermes puede enviar mensajes a cualquier otro mediante su identificador, entre distintos profiles y gateways, desde la CLI o dentro de una conversación: pídele a tu bot de investigación que entregue sus hallazgos a tu bot de programación y lee la respuesta allí donde estés. «Las respuestas llegan al Bot Chat canónico de cada agente, por lo que las conversaciones entre agentes son persistentes e inspeccionables, en lugar de enviarse y olvidarse». El comando hermes peer (agregar, enumerar o eliminar peers; dm) aparece en la tabla de comandos de nivel superior.35
  • Tareas cron que recuerdan. Las tareas programadas dejan de tener memoria de pez: los agentes cron cargan y actualizan memoria persistente como cualquier otro agente; continuity=true incorpora el resultado de cada ejecución en la siguiente, de modo que un monitor pueda evitar duplicar información que ya haya comunicado; cada tarea recibe un bloc de notas persistente; las tareas en modo monitor omiten por completo la LLM cuando no hay cambios; el esfuerzo de razonamiento puede fijarse por tarea; y el resultado de cron puede llegar al Bot Chat canónico de un bot, donde este realmente responde. La sección Tareas programadas (cron) ahora documenta el funcionamiento de las etiquetas @ de cada una.3537
  • Orquestación de subagentes en tiempo real. delegate_task incorpora acciones de control: enumerar los agentes secundarios en ejecución, orientar a uno sobre la marcha mediante una corrección de rumbo o detenerlo antes de tiempo y conservar el resultado parcial. Los resultados de los agentes secundarios pueden validarse con un esquema JSON, el costo de cada delegación se muestra en los resultados y los valores predeterminados aumentan a 250 iteraciones por subagente y 10 agentes secundarios simultáneos (los límites unificados que sustituyeron a max_async_children en v0.19.0).3538
  • El centro de mando de MCP. Los servidores MCP y el catálogo se combinan en una única página de escritorio con importación mediante «pegar cualquier cosa» al arrastrar contenido, comprobaciones de estado en segundo plano que te avisan para que vuelvas a autenticarte antes de que falle una llamada a una herramienta, una superposición de costos y uso de toda la flota (estimaciones de tokens de esquema y uso de cada servidor durante 30 días) y enlaces profundos hermes:// que instalan un servidor MCP con confirmación explícita. Consulta Integración de MCP.35
  • Una oleada de potencia para la CLI. Ctrl+P abre una paleta de comandos con búsqueda aproximada (también accesible mediante /palette), el selector de /model filtra a medida que escribes, /status muestra el modo de razonamiento, las aprobaciones pendientes y el uso del context, y la barra de estado puede mostrar en tiempo real el porcentaje de aciertos de caché, la latencia y los tokens por segundo, con controles individuales para cada campo. También se incorporan una detención de emergencia global, la opción de fijar o liberar sesiones, textos de ejemplo rotativos en el editor y mascotas para la terminal. Una aclaración sobre el nombre: la versión anuncia un verificador de aprobaciones de prueba como hermes approval-check; en esta etiqueta, esa función es hermes approvals test y no existe ningún subcomando approval-check.3540
  • El agente controla el navegador de la aplicación de escritorio. El navegador integrado deja de ser una ventana que el agente solo puede observar: Hermes navega, hace clic y lee directamente su contenido, y las páginas pueden abrirse en el navegador del sistema con menús contextuales completos para los enlaces.35
  • Seis proveedores nuevos y una oleada de incorporaciones al catálogo de modelos. Meta Model API (Muse Spark), CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router y Actual Computer. Tres de ellos (Meta AI, CommandCode y Actual Computer) se incorporaron durante periodos acumulativos anteriores y ya figuraban en la matriz completa de proveedores; ahora, la matriz añade Tencent TokenPlan, Nebius Token Factory y Ramp Router, además del nuevo SKU Alibaba Token Plan de la documentación. Los catálogos incorporan GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 gratuito, Nemotron 3.5 Lightning y Muse Spark 1.2. También llegan dos cambios estructurales: model_overrides en config.yaml te permite modificar la ventana de context o los precios de cualquier modelo sin esperar una nueva versión, y ahora los proveedores pueden distribuirse como paquetes instalados mediante pip que se detectan a través de puntos de entrada; además, un registro unificado de protección de selección advierte en todas las interfaces de selección cuando un modelo se entrena con tus datos.3536
  • Refuerzo general de la seguridad. Las escrituras en archivos protegidos de instrucciones del agente (AGENTS.md, skills y almacenes de memoria) ahora siempre requieren aprobación, para impedir que un agente víctima de una inyección de instrucciones reescriba silenciosamente sus propias órdenes permanentes; una revisión exhaustiva de ocultación de datos cierra las brechas de filtración de secretos en errores de terminal, lecturas de .env, checkpoints y registros ACP; el sistema de aprobación aprende a reconocer comandos destructivos de Windows; los permisos concedidos en macOS sobreviven a las actualizaciones gracias a una identidad estable de firma TCC (hermes desktop --setup-tcc-identity); y la entrada de Blender en el catálogo de MCP, junto con su skill, se eliminó tras una vulneración del proyecto original. Consulta Refuerzo de la seguridad para conocer los detalles correspondientes a esta etiqueta.3539
  • Maduración del gateway. Slack recibe tarjetas dinámicas nativas (respuestas transmitidas realmente en tiempo real y tarjetas opcionales de planes y tareas), además de la supresión de vistas previas de enlaces salientes; Telegram incorpora un selector integrado que permite buscar todos los comandos y skills mediante @botname, eludiendo el límite del menú de comandos de Telegram; la vía de retransmisión madura (inicialización nativa de plugins, operaciones con tarjetas dinámicas y transmisión de borradores, segmentación por intervalos de sesión y restauración de la conversión de notas de voz a texto); un socket de control del gateway permite a los consumidores de la flota consultarlo y a los actualizadores pausarlo de forma ordenada en vez de terminar todo el árbol de procesos; y el recolector de turnos captura las pilas de los procesos de trabajo bloqueados cuando se activa el monitor de vigilancia.35
  • Una oleada de skills. Ocho skills de productividad recuperados (document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar), clientes API derivados de HAR («observa un sitio web una vez y luego llama directamente a su API oculta sin navegador»), publish-site, session-librarian, blocked-page-recovery, merge-reconciler, plan-interrogation y un analizador consultivo de SKILL.md durante la creación.35

Cambios revertidos durante este periodo (no se incluyen): tanto el modo Model Council (/council) como el context engine DCP se incorporaron y posteriormente se revirtieron; el servidor del gateway exclusivo para WS (#94245) se fusionó y luego se revirtió (#96118), por lo que FastAPI permanece en la ruta de inicio de la aplicación de escritorio, pero la repetición de eventos con sellos de secuencia (#94219) y la reconexión sin pérdidas de la aplicación de escritorio mediante WebSocket sí se incluyeron. Electron volvió a la versión 40.10.2. Si alguna cobertura de la comunidad sobre los periodos de v0.20.x mencionó cualquiera de estas funciones, no forman parte de esta versión.35

El proceso de actualización no cambia: hermes update desde una instalación existente o el instalador de shell para instalaciones nuevas. La subsección acumulativa situada más abajo, bajo la versión del Heraldo, sigue siendo el registro por etiqueta que indica qué se incorporó en cada periodo.35

Novedades de v0.21.1 (el parche acumulativo)

Hermes Agent v0.21.1 (etiqueta v2026.9.7, 7 de septiembre de 2026) es la versión actual y su publicación es deliberadamente escueta: un «parche» que «acumula el estado actual de la rama main desde v0.21.0 para las implementaciones basadas en etiquetas y los consumidores posteriores». El cuerpo presenta las estadísticas del período —«5.139 confirmaciones sin fusión en 4.364 archivos modificados (+601.014 / -768.419)» y «632 PR fusionadas»— y después aplaza el relato: «Las notas de la versión completas y seleccionadas para este período se publicarán con v0.22.0». Esto lo convierte en el período entre etiquetas más grande de la historia del proyecto (ningún período anterior entre etiquetas adyacentes supera las 2.790 confirmaciones sin fusión de v2026.7.20..v2026.7.30), publicado con las notas de versión más breves. Hasta que v0.22.0 aporte el registro seleccionado, los seis grupos siguientes describen los cambios que afectan la forma en que utilizas Hermes con esta etiqueta, todos verificados en el código fuente.41

  • La base de código se descompuso y el plazo de compatibilidad de los plugins vence el 14 de septiembre. La descomposición de septiembre de 2026 (PR #102117) dividió los grandes módulos del repositorio en archivos específicos: un nuevo paquete agent/ contiene los componentes internos del bucle de conversación (214 módulos de nivel superior y siete subpaquetes; prompt_builder.py ahora se encuentra en agent/prompt_builder.py, mientras que run_agent.py sigue siendo el hogar de AIAgent), los analizadores de subcomandos de CLI se trasladaron a un paquete hermes_cli/subcommands/ (61 módulos), la lista estática CANONICAL_PROVIDERS pasó de hermes_cli/models.py a hermes_cli/models_catalog_static.py (la lista no cambió: conserva 39 entradas estáticas y continúa ampliándose automáticamente a partir de los 39 directorios de plugins de proveedores incluidos), y delegate_task se dividió entre aproximadamente una docena de módulos tools/delegate_tool_*. Las rutas de importación internas no son una API estable, por lo que un nuevo archivo COMPAT_MANIFEST.md en la raíz del repositorio vuelve a exportar 1.148 nombres públicos «moved-lazy» desde sus rutas de módulo anteriores; cada uno emite una advertencia HermesPluginCompatWarning una vez por nombre y proceso cuando se resuelve. La capa de compatibilidad es temporal y se elimina el 14 de septiembre de 2026, seis días después de la etiqueta. A partir de esa fecha, los plugins de terceros afectados no se cargan: el banner de CLI, hermes doctor y hermes update muestran un aviso rojo que identifica el plugin deshabilitado; la aplicación de escritorio presenta un cuadro de diálogo una sola vez; y hermes plugins list indica el motivo. Si utilizas plugins externos, revísalos ahora: hermes plugins compat <path> muestra cada file:line con la ruta anterior -> la ruta nueva y devuelve el código de salida 1 mientras quede algún caso pendiente (--json genera una salida legible por máquinas; ejecútalo sin argumentos para analizar todos los plugins instalados). La vía de escape para un plugin cuyo autor aún no se haya puesto al día es plugins.allow_deprecated_imports: true en config.yaml, lo que permite que los plugins afectados sigan cargándose después de la fecha hasta que la reversión de la confirmación de compatibilidad elimine realmente las rutas anteriores. La sección Sistema de plugins incluye el mismo recuadro.42
  • Las conversaciones del gateway ya no rotan mediante temporizadores, bajo ninguna circunstancia. La documentación del ciclo de vida de las sesiones ahora establece el contrato de forma explícita: «La inactividad y el tiempo transcurrido nunca provocan la rotación de una conversación. /new y /reset crean un límite explícito; la compresión del contexto continúa administrando los historiales extensos. La configuración heredada de temporizadores se ignora. El tipo de datos SessionResetPolicy existente contiene datos de compatibilidad inertes, no una política de tiempo de ejecución». Los límites son explícitos y los determina el usuario; si conservaste temporizadores de restablecimiento de sesiones de la época de OpenClaw mediante hermes claw migrate, ahora son datos inertes. Consulta Gateway de mensajería.43
  • La autorización de MCP incorpora un flujo de código de dispositivo. hermes mcp login <name> recibe --flow {browser,device}: browser es el flujo PKCE existente, device es un inicio de sesión mediante código de dispositivo conforme a RFC 8628 para máquinas donde una devolución de llamada del navegador resulta poco práctica, y la opción prevalece sobre la configuración oauth.flow del servidor. Este período también reforzó el resto de la superficie de autenticación de MCP: la propiedad del profile se aplica en todas las sesiones de OAuth, las cachés dañadas de metadatos de OAuth se ignoran en lugar de bloquear un servidor, y la aplicación de escritorio retransmite el OAuth de MCP mediante devoluciones de llamada locales del cliente. Otro cambio relacionado: -t/--toolsets ahora también filtra cuáles servidores MCP configurados llegan a iniciarse, por lo que una ejecución puntual de hermes -z -t <toolsets> evita el arranque en frío de servidores que no necesita. El bloque de comandos de Integración con MCP ahora incluye login y reauth [--all]; ambos son anteriores a este período, pero todavía no se habían documentado aquí.44
  • La delegación ahora refleja con franqueza el trabajo en segundo plano. Se incorporaron seis mejoras de confiabilidad en delegate_task, todas obtenidas del código fuente de la herramienta de delegación correspondiente a esta etiqueta. (1) De forma predeterminada, un lote en segundo plano devuelve UNA sola notificación de finalización; al activar delegation.independent_completions, la llamada se divide en unidades de finalización: las tareas que comparten un valor group se agrupan y notifican juntas, mientras que cada tarea sin grupo se notifica por separado al terminar. El comportamiento predeterminado es intencional: el código fuente señala que una ráfaga de notificaciones por tarea «fragmentaba a los orquestadores que no tenían un plan para ello». (2) Los procesos en segundo plano de un agente hijo se detienen durante su desmantelamiento, salvo que este los entregue al agente padre mediante process_manage(action="handoff"); los procesos restantes que no se hayan entregado aparecen en el resultado como orphaned_processes, y aquellos procesos del agente hijo que hayan terminado sin que nadie los leyera se muestran como unread_completions, junto con el final de su salida. La postura de diseño, según la cadena de documentación del código fuente, es que el agente padre «debe recibir esa información del entorno de ejecución» en lugar de confiar en que el hijo afirme que hay un «monitor en ejecución». (3) delegation.fallback_providers se convierte en una verdadera opción de configuración: null hereda la cadena del agente padre para los hijos sin fijar, [] desactiva la alternativa y un hijo fijado por proveedor, endpoint o modelo no recibe ninguna alternativa, salvo que esta opción declare una. (4) La cadena de alternativas del agente hijo se resuelve mediante el normalizador canónico, de modo que las entradas mal formadas se descartan en lugar de impedir la creación del agente. (5) Una falla a mitad de una unidad ya no hace que se pierdan los agentes hijos que terminaron: cada hijo finalizado de una unidad con varios agentes se registra de manera persistente en la propia fila de la unidad y se conserva como resultado parcial al realizar la recuperación. (6) Los subagentes nunca heredan el nivel de caché de instrucciones de 1 hora: un hijo delegado se reduce al nivel de 5 minutos, porque el nivel de 1 h tiene un precio pensado para una persona que se ausenta, no para una ráfaga de agentes hijos en paralelo.45
  • Proveedores y modelos. Los catálogos incorporan GPT-6 Astra y Astra Pro de OpenAI con variantes de nivel de velocidad -fast/-flex («precio 2 veces mayor, nivel prioritario» / «precio 0,5 veces menor, nivel flex») en los catálogos de Nous Portal y OpenRouter. En la ruta OAuth de ChatGPT/Codex, Astra está sujeto a la cuenta (solo el descubrimiento activo específico de la cuenta puede anunciarlo) y recibe una variante opcional -900k en el selector, que eleva la ventana anunciada de 272K a unas 900K verificadas en vivo; el sufijo nunca se transmite. También se incorporan anthropic/claude-fable-5.1, google/gemini-3.7-flash y gemini-3.8-flash, qwen/qwen3.8-max-0902 y qwen3.8-flash, además de la familia Muse Spark 1.3 de Meta (contexto de 1M, incluidas las variantes para colaboradores) y un plugin de proveedor de generación de imágenes muse-image de Meta. Tavily llega como backend de búsqueda y extracción web (TAVILY_API_KEY; funciona sin clave cuando se selecciona Tavily mediante hermes tools). Un entorno de ejecución administrado de llama.cpp convierte los modelos locales en una opción de primera clase (binarios oficiales, un solo llama-server supervisado y configuración con un clic desde la aplicación de escritorio), mientras que los proveedores de procesos externos ajenos al repositorio obtienen su propia rama de resolución. En términos operativos, los catálogos remotos del selector ahora se actualizan cada 20 minutos (model_catalog.ttl_minutes, valor predeterminado: 20; la clave heredada ttl_hours solo se respeta cuando el usuario la configuró expresamente).46
  • Aplicación de escritorio: anota la página y controla la sesión. El navegador integrado incorpora un modo de comentarios: haz clic en Annotate y después en cualquier elemento de la página activa (o arrastra para dibujar un recuadro) y escribe una nota; los comentarios guardados permanecen como marcadores numerados y nunca envían un turno por sí solos. Cuando termines, «Add N comments» pasa el lote al editor con una captura de pantalla recortada por cada marcador, y cada comentario sobre un elemento incluye su selector CSS, su marcado y los estilos calculados relevantes para el diseño, de modo que el agente pueda encontrar el elemento en tu código fuente en vez de deducirlo a partir de una imagen (las contraseñas, los valores ocultos y los atributos con aspecto de clave se ocultan antes de que el marcado salga de la página). Los lotes más grandes llegan agrupados por región de la página, por lo que una veintena de comentarios se convierte en unas cuantas unidades de trabajo que normalmente afectan archivos distintos; esto permite distribuirlas de forma segura entre trabajadores paralelos. A su alrededor se suman controles estructurados de sesión y de automatización de sesiones, la creación de sesiones mediante arrastre, una vista de importación de sesiones para transcripciones de agentes de programación externos, display.resume_last_session (valor predeterminado: true; al iniciarse en frío, vuelve a abrir el último chat o la última página), un aviso de consentimiento en la primera apertura que ofrece browser.use_real_profile cuando se abre un panel Browser con esa opción desactivada, un catálogo integrado de skills opcionales en Capabilities -> Skills con instalación mediante un clic y una nueva interfaz de escritorio en ruso (los 17 catálogos de configuraciones regionales de CLI no cambiaron).47

El proceso de actualización no cambia: hermes update desde una instalación existente o el instalador de shell para instalaciones nuevas. A v0.22.0 le corresponderá presentar el registro seleccionado de este período; los grupos anteriores describen lo que cambia en esta etiqueta.41

Novedades de v0.20.0 (la versión Herald)

Hermes Agent v0.20.0 (etiqueta v2026.8.3, 3 de agosto de 2026) fue la versión con nuevas funciones antes de que v0.21.0 consolidara todo; v0.20.1 (13 de agosto) y v0.20.2 (16 de agosto) son etiquetas de estabilización basadas en ella, y v0.20.3 (etiqueta v2026.8.16.2, publicada el 17 de agosto), v0.20.4 (etiqueta v2026.8.18, 18 de agosto), v0.20.5 (etiqueta v2026.8.19, publicada el 21 de agosto) y v0.20.6 (etiqueta v2026.8.27, 27 de agosto) mantienen en marcha esta serie de consolidaciones, cada una con su propio conjunto de nuevas funciones; consulta la subsección siguiente. El periodo desde v0.19.0 abarca aproximadamente 3.650 commits, 1.400 PR fusionadas y 1.200 incidencias cerradas, con la participación de más de 650 colaboradores.49

Tres cambios contradicen las instrucciones que ofrecían las versiones anteriores de esta guía. Léelos antes que cualquier otra cosa:

  • Ahora se requiere Node 26. El instalador fija NODE_VERSION="26" y rechaza entornos de ejecución anteriores con el mensaje «Node.js … is too old (Hermes requires Node >=26)». Tanto los instaladores como heal y upgrade hacen cumplir este requisito. Ten en cuenta que la página de instalación del sitio de documentación todavía indica Node v22; el script del instalador y las notas de la versión son las fuentes más recientes y autorizadas.49
  • pip y Homebrew se retiraron; no están simplemente obsoletos. Textualmente: «brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels)». Si todavía tienes una instalación mediante pip o brew, ese canal ya no recibe nuevas versiones.49
  • El límite predeterminado de iteraciones para llamar herramientas aumentó de 90 a 500. Las ejecuciones autónomas prolongadas dejaron de chocar con un límite artificial, y todos los umbrales de presión del presupuesto que aparecen más adelante se calculan a partir del nuevo límite. read_file también usa ahora un valor predeterminado de 2.000 líneas en lugar de 500.49

El resto de la versión:

  • Voz conversacional. TTS por streaming con interrupción de voz y palabras de activación procesadas en el dispositivo.49
  • A2A v1.0. Un plugin de protocolo entre agentes que resuelve la solicitud de larga data de la incidencia n.º 514.49
  • Webhooks salientes firmados. Antes, hermes webhook solo aceptaba comunicaciones entrantes; v0.20.0 incorpora webhooks salientes del ciclo de vida firmados con HMAC para eventos de sesiones, turnos y herramientas.49
  • Citas fundamentadas. Un nuevo skill con un modo de verificación de datos.49
  • Oleada de mejoras para usuarios avanzados de CLI. !command ejecuta de inmediato un comando de shell sin consumir un turno del modelo; /init analiza el proyecto y crea o actualiza un AGENTS.md; /diff muestra los cambios preparados, todos los cambios o los de la sesión desde cualquier interfaz; /context desglosa qué está ocupando la ventana de contexto; /focus ofrece una vista con menos resultados y permite recuperar las líneas ocultas; Ctrl+S guarda temporalmente un prompt a medio escribir. hermes import-agent migra una configuración de Claude Code o Codex CLI con un solo comando.49
  • Incorporaciones a la gestión de secretos. Una fuente de secretos mediante un comando auxiliar que puede combinarse con cualquier bóveda, rotación de tokens con un solo comando y errores de inicio que indican cómo actuar, una caché cifrada opcional para acceso de emergencia a Bitwarden, claves inyectadas desde la bóveda y limitadas al directorio principal de cada profile, y paridad de SecretRef ${env:VAR} entre config.yaml y la configuración de MCP. El modelo de autenticación con tres rutas que se explica más adelante no cambió.49
  • Inicio en caliente más rápido. El inicio en frío de hermes -w se redujo de aproximadamente 14 s a 1,8 s.49
  • La aplicación de escritorio se convirtió en una plataforma. Artifacts con tarjetas versionadas y vista previa dinámica en un entorno aislado, un Plugin SDK con Kanban como plugin inaugural para la aplicación de escritorio, un atajo global para entrada rápida, varias ventanas de GUI, modo de backend remoto de SSH e inicio de sesión nativo conforme a RFC 8252.49

Las consolidaciones v0.20.3, v0.20.4, v0.20.5 y v0.20.6 (del 17 al 27 de agosto)

Tras v0.20.0, el proyecto adoptó una cadencia de consolidaciones etiquetadas frecuentes que aportaron más que estabilización. Las cuatro pospusieron sus notas seleccionadas de la misma manera: cada una indicaba que «full curated release notes for this window will ship with v0.21.0», y v0.21.0 ya las publicó: Novedades de v0.21.0, más arriba, es el registro seleccionado de todo este periodo (la versión confirma que estos intervalos «are fully documented here»). Los bloques siguientes se conservan como registro contemporáneo de cada etiqueta: muestran qué se incorporó en cada una, mientras que las notas seleccionadas las agrupan.48233035

v0.20.3 (aprox. 250 commits y 125 PR desde v0.20.2):

  • Migración de SDK a MCP 2.x, con compatibilidad para el protocolo sin estado del 28 de julio de 2026. Hermes adopta la generación actual de MCP SDK y se comunica mediante la revisión sin estado del protocolo.48
  • Bot Mode se distribuye como plugin incluido (hermes-bots) e incorpora el protocolo principal para compañeros de equipo.48
  • Un plugin del proveedor CommandCode se incorpora al catálogo de proveedores.48
  • Contratos de entorno de ejecución de Cua Driver 0.20 para controlar computadoras, además de mejoras en la propiedad del entorno de ejecución de subprocesos de Python (aislamiento de PYTHONHOME/PYTHONPATH).48
  • Fiabilidad: recuperación automática del programador cron (recuperación ante EMFILE, conciliación de asignaciones obsoletas y reactivación de tareas bloqueadas), correcciones de pérdida de datos al transferir sesiones, recuperación automática de la conexión con el gateway remoto de la aplicación de escritorio y una oleada de adaptaciones del ecosistema (análisis de seguridad al instalar plugins, /worktree, conservación de ediciones manuales con /rollback y lectura de archivos UTF-16).48

v0.20.4 (aprox. 146 commits y 74 PR desde v0.20.3):

  • La superficie de cristal de la aplicación de escritorio: mejoras de cristal mate y translucidez, con un selector de escarcha y selección previa en macOS.48
  • Una barra lateral con pestañas SESSIONS|BOTS, con la opción de ocultar o mostrar cada bot, además de correcciones para los chats grupales de Bot Mode (turnos prolongados de los participantes, renderizado de Markdown y enrutamiento entre distintas máquinas).48
  • Análisis consultivo NVIDIA SkillEvaluator Tier 1 al instalar skills: las comprobaciones de licencia y seguridad se ejecutan cuando instalas un skill.48
  • Mejoras en el envío de contenido multimedia mediante cron (tiempo de espera configurable, archivos adjuntos en ejecuciones manuales y notificación de activaciones omitidas), correcciones de SessionDB relacionadas con el hilo del bucle de eventos y la contención, información transparente sobre ramas apartadas en hermes update y notificaciones nativas del sistema operativo para Kanban.48

v0.20.5 (aprox. 746 commits y 323 PR desde v0.20.4):

  • La capa web sin claves: la búsqueda web funciona en instalaciones nuevas sin ninguna clave de API, mediante una rotación gratuita entre 5 proveedores con conmutación por error en anillo.23
  • Una oleada de mejoras de CLI: selector difuso de /model, una paleta de comandos con Ctrl+P y un /status más completo.23
  • Bot Mode alcanza la madurez: hilos en salas grupales, resúmenes plegables de conversaciones, avatares con rostros amorfos y archivos PDF u otros archivos adjuntos mediante arrastrar y soltar.23
  • Herramientas para flotas y worktrees: comprobantes de hermes update, hermes update --plan (las notas de la versión lo denominan «fleet --plan verification»; la opción pertenece a hermes update, no a un comando fleet, y la ayuda de su analizador indica que «Show the update plan and exit without changing anything») y hermes worktree list/prune.2327
  • Las tareas cron incorporan memoria persistente y un nivel de razonamiento configurable por tarea, además de medidas de disciplina de ejecución y protecciones contra bloqueos del entorno de ejecución basadas en los hallazgos de la evaluación de Composio, aclaraciones con varias preguntas, el proveedor sin autenticación y sin opencode, y mejoras de rendimiento en la aplicación de escritorio (hidratación de Bot Mode que prioriza el primer renderizado y React Compiler en ambos renderizadores).23

v0.20.6 (etiqueta v2026.8.27, 27 de agosto; aprox. 1.313 commits y 525 PR desde v0.20.5):

La versión se describe explícitamente como una «Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers», y su propia descripción cifra el intervalo en unos 1.313 commits distribuidos entre aproximadamente 1.557 archivos (+177.113/−21.682), con cerca de 525 PR fusionadas.30 Estos son los elementos destacados de esa descripción:

  • Navegación con perfiles reales sujeta a consentimiento: la navegación local puede usar tu profile predeterminado de Chromium, con un flujo para cerrar el navegador en Windows previa aprobación.30
  • El navegador de la aplicación de escritorio obtiene su propia ventana del sistema operativo, además de un motor administrado de actualizaciones remotas de SSH y una barra lateral para profiles de flota.30
  • Ampliación del catálogo remoto de MCP: más de 50 servidores alojados por proveedores y verificados en funcionamiento, incluidos Cloudflare, Grafana Cloud, Better Stack y Railway.30
  • Cifrado opcional mediante el llavero del sistema operativo para los secretos almacenados: se eliminan las solicitudes de acceso al llavero de macOS en cada inicio.30
  • Nuevos modelos en los selectores: GLM-5.3-Flash, MiniMax M3 gratuito y MiniMax H3 Max para video.30
  • Caché de resultados con TTL para web_search/web_extract y tool_search con varias consultas y derivación de palabras.30
  • La compresión lean-tail ahora es la opción predeterminada: la sección Compresión del contexto, más adelante, documenta la configuración correspondiente a esta etiqueta.3031
  • Los backends de terminal ahora admiten plugins: consulta Backends de terminal.3032
  • Transparencia en las actualizaciones y las flotas: los actualizadores pausan los gateways mediante el socket de control en lugar de finalizar todos sus árboles de procesos, y las instalaciones administradas mediante imágenes o paquetes rechazan las actualizaciones locales que no sean seguras.30
  • Confirmaciones persistentes de incidencias de cron con errores más claros por diferencias entre versiones del código, controles para el despliegue automático de vistas previas de enlaces en Slack e identidades de contenedor de Docker compartidas.30

El proceso de actualización no cambió: usa hermes update desde una instalación existente o el instalador de shell para instalaciones nuevas.482330

Novedades de v0.19.0 (la versión Quicksilver)

Hermes Agent v0.19.0 (etiqueta v2026.7.20, 20 de julio de 2026) debe su nombre a la velocidad del propio dios mensajero: el eje central de esta versión es la capacidad de respuesta pura, con una reducción de aproximadamente un 80 % en el tiempo hasta el primer token del primer turno en todas las plataformas. En torno a ese eje se incorporan la gestión de la facturación desde la terminal, fuentes de secretos provenientes de gestores de contraseñas, aprobaciones inteligentes de forma predeterminada, subagentes observables y una entrega de respuestas resistente a fallos. El periodo desde v0.18.0 es el de mayor actividad del proyecto hasta la fecha: alrededor de 2.245 commits, 1.065 PR fusionadas, 3.300 incidencias cerradas y más de 450 colaboradores de la comunidad.50

  • Primer token aproximadamente un 80 % más rápido en todas partes. El tiempo en frío desde el envío hasta el despacho bajó de unos 4,3 s a 0,9 s en CLI, gateway, TUI, escritorio y cron por igual: la detección de capacidades de Discord se retiró de la ruta crítica, la comprobación de Ollama se omite para proveedores que se sabe que no son Ollama y se eliminaron las tareas bloqueantes de la inicialización del agente. La latencia percibida también recibió mejoras específicas: los modelos de razonamiento ahora transmiten su proceso de pensamiento en vivo de forma predeterminada (display.show_reasoning está activado), y el cuadro de respuesta se actualiza por token en lugar de por línea.50
  • Oleada de mejoras de renderizado en escritorio y TUI. La aplicación de escritorio recibió una optimización de velocidad de unas 20 PR: consumo de CPU 14 veces menor en el divisor de Markdown transmitido gracias al análisis léxico incremental por bloques, diferencias virtualizadas en el panel de revisión, cambios ágiles entre sesiones con transcripciones extensas y eliminación de los renderizados por token de la barra lateral y las filas de herramientas. La TUI ahora renderiza el Markdown transmitido de forma incremental por bloque.50
  • Las instalaciones mediante pip y Homebrew están obsoletas. Ambas vías se marcaron como instalaciones «heredadas no compatibles», con planes para eliminarlas. Esa eliminación ya se produjo en v0.20.0: los canales de brew y los paquetes wheel de pip/PyPI se retiraron, por lo que el instalador de shell, Docker y Nix son ahora los canales compatibles.5049
  • Los secretos pueden provenir de tu gestor de contraseñas. Una nueva interfaz conectable SecretSource obtiene secretos de Bitwarden y 1Password (referencias op://) durante la carga, permite usar varias bóvedas al mismo tiempo y ofrece precedencia determinista, advertencias de conflictos y procedencia por variable; las claves de API ya no tienen que almacenarse en un archivo .env de texto sin formato. Los futuros proveedores de bóvedas podrán incorporarse como plugins.50
  • Las aprobaciones inteligentes son ahora la opción predeterminada. Cuando Hermes quiere ejecutar un comando marcado, un revisor independiente de LLM lo evalúa en lugar de pedirte autorización para cada comando, y cada veredicto se aplica únicamente a ese comando exacto. Las reglas de denegación definidas por el usuario bloquean los comandos coincidentes incluso en modo YOLO; /deny <reason> transmite el motivo de tu rechazo para que el agente corrija el rumbo; y la acción de aprobación pre_tool_call del plugin (reincorporada con claves de reglas) deriva una llamada a una herramienta a una instancia de aprobación humana.50
  • Facturación desde la terminal: /subscription y /topup. Administra tu plan de Nous Portal sin salir de la terminal: consulta el plan y la asignación restante, previsualiza el costo exacto de una mejora o cuándo entrará en vigor una reducción del plan, y aplícala con posibilidad de deshacerla. La aplicación de escritorio incorpora una pestaña equivalente de configuración de facturación.50
  • Observa cómo trabajan los subagentes y nunca pierdas una respuesta terminada. Los despachos de delegate_task devuelven archivos de transcripción en vivo que puedes seguir con tail -f en cuanto se inician los subagentes: cada llamada a una herramienta, resultado y respuesta transmitida queda registrada en un archivo legible por personas para cada agente secundario. Las finalizaciones de delegaciones en segundo plano persisten entre reinicios, y las respuestas finales del gateway se registran en un libro mayor de obligaciones de entrega dentro de state.db; si el gateway falla durante el envío, se vuelven a entregar en el siguiente arranque. La opción de configuración max_async_children está obsoleta en favor de límites unificados de concurrencia para las delegaciones.50
  • Un gateway, muchos profiles. Un único gateway multiplexado que comparte un token de bot puede dirigir gremios, canales o hilos específicos a diferentes profiles, cada uno con configuración, skills, memoria y secretos completamente aislados, mediante una opción de reemplazo GATEWAY_MULTIPLEX_PROFILES. El índice de enrutamiento se trasladó a state.db; sessions.json es ahora un reflejo heredado opcional.50
  • Oleada de proveedores y modelos. Fireworks AI obtiene compatibilidad de primer nivel (estimación de costos y puesto n.º 2 en el selector de proveedores), junto con DeepInfra y Upstage Solar. Los catálogos incorporan GPT-5.6 (Sol/Terra/Luna + Pro, con integración completa), grok-4.5 (disponibilidad general), kimi-k3 (kimi-k2.x retirado) y Claude Sonnet 5 con integración completa. Una opción enabled: false por proveedor y la configuración excluded_providers eliminan los proveedores que no se usan de los selectores de /model y del proceso de resolución.50
  • El esfuerzo de razonamiento se convierte en un control ajustable. Se incorporan los nuevos niveles de esfuerzo max y ultra en todas las interfaces, con opciones de reemplazo por modelo en la configuración, esfuerzo por posición en los ajustes predefinidos de MoA (los asesores razonan a fondo mientras el sintetizador se mantiene rápido), esfuerzo por tarea para los modelos auxiliares y un comando /reasoning limitado a la sesión en CLI.50
  • Superficie de CLI y MCP. hermes sessions export genera formatos Markdown, Quarto, HTML, solo prompt y trazas de Hugging Face, con una limpieza opcional mediante --redact; /model --once permite reemplazar el modelo durante un turno; las invocaciones de skills mediante comandos de barra pueden encadenarse (/skill-a /skill-b do XYZ); --safe-mode facilita la solución de problemas; hermes config get/unset completan la gestión de la configuración; hermes serve se convierte en un verdadero backend sin interfaz gráfica; y las herramientas de MCP adoptan la convención de nomenclatura mcp__server__tool.50

Si actualizas desde v0.18.x, hay dos cambios que merecen atención antes que cualquier otro: una instalación mediante pip o Homebrew ahora muestra una advertencia que la identifica como heredada y no compatible (migra al instalador de una sola línea), y max_async_children está obsoleto en favor de los límites unificados de concurrencia para las delegaciones. Todo lo demás es adicional: los principales motivos para actualizar son la reducción de aproximadamente un 80 % en la latencia del primer turno, las aprobaciones inteligentes y el libro mayor de entregas, que evita perder las respuestas terminadas en caso de fallo.


Novedades de v0.18.0 (la versión Judgment)

Hermes Agent v0.18.0 (etiqueta v2026.7.1, 1 de julio de 2026) debe su nombre al juicio: el agente verifica su propio trabajo en lugar de afirmar que tuvo éxito, con un razonamiento en conjunto que realmente puedes inspeccionar. También resuelve toda la lista de pendientes P0/P1: unos 692 elementos de máxima prioridad solucionados en doce días.22

  • Mixture-of-Agents como modelo de primer nivel. MoA ahora se puede seleccionar como cualquier otro modelo en todas las interfaces, y el razonamiento en conjunto es visible: el resultado completo de cada modelo de referencia se muestra en su propio bloque etiquetado, con transmisión de la respuesta en vivo; puedes observar cómo razona el conjunto en lugar de recibir una respuesta combinada opaca.22
  • Contratos de finalización para /goal. Antes de informar que un objetivo está completo, el agente verifica su propio trabajo ejecutando las comprobaciones del proyecto, en vez de limitarse a afirmar que tuvo éxito: aplica el juicio sobre sí mismo.22
  • /learn: describe cualquier cosa para convertirla en un skill. Convierte un flujo de trabajo en un skill reutilizable con solo describirlo; los skills generados cumplen automáticamente las convenciones del archivo CONTRIBUTING.md del repositorio.22
  • Línea de tiempo de /journey. Un historial visual de la memoria y los skills a lo largo del tiempo, con funciones de edición, además de un gráfico de memoria en la aplicación de escritorio.22
  • Distribución paralela de subagentes en segundo plano. Delega varias tareas que se ejecutan simultáneamente sin bloquear la conversación: el único subagente en segundo plano de v0.17.0 se convierte en toda una flota.22
  • Projects en la aplicación de escritorio. Projects de programación de primer nivel, con un modelo de organización por proyecto, repositorio y línea de trabajo.22
  • Gateway con reducción a cero. Los gateways pueden permanecer inactivos cuando no se usan y coordinar su drenaje para permitir implementaciones sin interrupciones, algo importante para quienes ejecutan Hermes como un servicio permanente.22
  • Compatibilidad con Google Vertex AI. Acceso a Gemini mediante cuentas de servicio de GCP con actualización automática de tokens OAuth2, que se incorpora al catálogo de proveedores.22
  • Comando de edición /prompt. Abre $EDITOR para redactar prompts de varias líneas, en lugar de obligarte a lidiar con la línea de entrada.22

Si actualizas desde v0.17.x, ninguno de estos cambios rompe CLI. Los principales motivos para actualizar son los contratos de finalización (objetivos que se verifican por sí mismos), MoA de primer nivel con conjuntos inspeccionables y /learn para capturar skills.


Novedades de v0.17.0 (The Reach Release)

Hermes Agent v0.17.0 (etiqueta v2026.6.19, 19 de junio de 2026) debe su nombre al alcance que ahora tiene el agente: nuevos canales de mensajería, nuevos proveedores de modelos y un control más profundo del escritorio y el dashboard. Es una ampliación de v0.16.x; la interfaz CLI no ha cambiado.21

  • Nuevos canales de mensajería. iMessage ahora funciona sin un Mac como relay mediante Photon Spectrum (OAuth con código de dispositivo, hermes photon login); la API de WhatsApp Business Cloud es un adaptador oficial de Meta que elimina la necesidad de usar un proceso bridge; SimpleX incorpora grupos, archivos adjuntos nativos, procesamiento de texto por lotes y aceptación automática; y Raft se suma como plugin de plataforma incluido, con un diseño de canal de activación cuya privacidad está garantizada por contrato.21
  • Nuevos modelos y proveedores. El catálogo incorpora z-ai/glm-5.2 (contexto de 1 millón), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra y grok-composer-2.5-fast (el modelo de Cursor mediante OAuth de xAI, con un contexto de 200.000). El modelo predeterminado de xAI cambió a grok-build-0.1, y los modelos adaptativos de Anthropic ahora siguen el contrato de razonamiento moderno (nunca envían un campo reasoning).21
  • Escritorio y dashboard. La aplicación de escritorio incorpora subagentes en segundo plano con «ventanas de seguimiento» que transmiten en vivo la actividad delegada (delegate_task(background=true)), un selector de modelos de Composer, atajos de teclado reasignables, notificaciones nativas del sistema operativo, borradores del editor por hilo, temas de VS Code Marketplace e interfaz en japonés y chino tradicional. El dashboard incorpora un generador de profiles completo (modelos, skills y MCPs sin editar config.yaml), un selector global de profile, un Skills Hub renovado con análisis de seguridad, Automation Blueprints (plantillas parametrizadas disponibles mediante formularios, comandos slash, conversaciones y documentación) y un inicio de sesión seguro que devuelve un error 401 detrás de la barrera de OAuth.21
  • Skills y herramientas. image_generate ahora puede editar y transformar una imagen de origen, además de crear una desde cero, con todos los proveedores de imágenes compatibles; la herramienta memory incorporó un arreglo operations para agregar, reemplazar o eliminar elementos en lotes atómicos mediante una sola llamada; una nueva skill simplify-code ejecuta en paralelo una revisión y limpieza a cargo de tres agentes, sujeta a un nivel de riesgo basado en Chesterton’s Fence; y el booleano write_approval sustituye al write_mode de tres estados.21
  • Arquitectura. Los subagentes en segundo plano devuelven de inmediato un identificador y reintroducen sus resultados como un nuevo turno; un controlador de solicitudes de MCP permite confirmar acciones durante una llamada a una herramienta, mientras que las herramientas de MCP que se conectan con retraso quedan disponibles entre turnos sin comprometer la caché; cron se convierte en un CronScheduler conectable con Chronos como proveedor administrado de cron; y un nuevo ámbito Managed (/etc/hermes) permite que un administrador fije una configuración que los usuarios no pueden modificar, además de un relay Gateway-Gateway para topologías con varios gateway.21
  • Nuevos comandos. /version, /billing (facturación interactiva desde la terminal), hermes photon login (autenticación de iMessage) y hermes curator run --consolidate; la consolidación ahora es opcional, por lo que la curaduría rutinaria en segundo plano no consume tokens.21
  • Seguridad. v0.17.0 corrige una evasión de la lista de denegación mediante secuencias de escape del shell, adopta un comportamiento cerrado y seguro cuando faltan módulos de aprobación o adaptadores de gateway con políticas propias, depura el entorno de los subprocesos que ejecutan scripts de tareas cron, oculta secretos en los volcados de depuración de solicitudes, examina las configuraciones stdio de MCP en busca de patrones de filtración y actualiza urllib3 y PyJWT para corregir vulnerabilidades CVE.21

Si estás actualizando desde v0.16.x, nada de esto rompe la CLI; se trata de nuevos canales, modelos e interfaces alrededor del mismo agente. iMessage sin relay, los adaptadores oficiales de WhatsApp y el ámbito Managed para administradores son las principales razones para actualizar.


Novedades de v0.16.0 (The Surface Release)

Hermes Agent v0.16.0 (etiqueta v2026.6.5, 5 de junio de 2026) debe su nombre a las nuevas interfaces que ofrece para un agente centrado en la CLI. La gran novedad es que Hermes ya no se limita a la terminal.20

  • Aplicación de escritorio nativa. Hermes Desktop es una nueva aplicación Electron para macOS, Linux y Windows, con instalación mediante un solo clic y actualización automática dentro de la aplicación. Ofrece una ventana de chat con transmisión en tiempo real, archivos que puedes arrastrar y soltar, pegado de imágenes desde el portapapeles, una paleta Cmd+K, una lista de sesiones con funciones de archivo y búsqueda, y un selector de modelos en la barra de estado. Puede conectarse a un Hermes gateway remoto mediante una WebSocket segura, con autenticación por OAuth o nombre de usuario y contraseña, hosts remotos específicos para cada profile y sesiones simultáneas de varios profiles enlazadas mediante referencias @session entre profiles. La interfaz de escritorio también incluye una traducción completa al chino simplificado (简体中文) mediante una capa i18n tipada (display.language; el inglés sigue siendo el idioma predeterminado).20
  • Panel de administración en el navegador. El dashboard web local pasó de ser una vista de estado a convertirse en un panel de administración completo: un catálogo de MCP con controles para activar o desactivar elementos, gestión de credenciales, creación de webhooks y hooks, configuración de memoria, controles del gateway y una página del sistema con comprobación previa a las actualizaciones y Debug Share con un solo clic. Una nueva página Channels permite configurar desde el navegador todas las plataformas de mensajería del gateway (Telegram, Discord, Slack y las demás). La autenticación ahora es conectable: inicio de sesión con nombre de usuario y contraseña, un proveedor OIDC genérico autoalojado, hermes dashboard register para un cliente OAuth autoalojado y rotación de sesiones mediante tokens de actualización.20
  • Nuevas opciones de CLI y comandos slash. /undo [N] revierte los últimos N turnos del usuario con texto precargado y eliminación lógica, y funciona en la CLI, la TUI y las plataformas de mensajería. Se incorpora una interfaz predeterminada configurable (cli o tui) con la opción --cli para anularla; la TUI obtiene un comando /model unificado y una vista superpuesta de sesiones. hermes portal es un alias fácil de entender para el flujo de incorporación de Nous Portal, que ahora ofrece las rutas Quick Setup y Full Setup durante la primera ejecución; además, se incorporan 2 herramientas de diagnóstico: hermes prompt-size y hermes sessions optimize.20
  • Nuevos modelos y proveedores. El selector incorpora deepseek-v4-flash, MiniMax-M3 (contexto de 1 millón y proveedores MiniMax nativos), qwen3.7-plus (Nous y OpenRouter) y gemini-3.5-flash (OAuth de Gemini y clave de API). Un proveedor propio de OAuth para xAI Grok se incorpora al iniciador de escritorio, el selector de modelos ahora admite búsqueda aproximada en todas las interfaces, los proveedores con varios endpoints se agrupan en una sola fila y la actualización del catálogo pasa de una frecuencia diaria a una frecuencia horaria.20 (Desde entonces, v0.21.1 volvió a cambiar la frecuencia: los catálogos remotos del selector se actualizan cada 20 minutos, model_catalog.ttl_minutes.46)
  • Skills más ligeras y divulgación progresiva. El conjunto predeterminado de skills eliminó las redundantes y obsoletas (Spotify pasó a ser un plugin nativo, Linear se trasladó a hermes mcp install linear y se retiraron varias entradas desactualizadas), movió más skills a la categoría opcional e incorporó un criterio de relevancia environments: en el frontmatter (kanban/docker/s6) que mantiene las skills específicas de cada contexto fuera del índice hasta que se solicitan. NVIDIA/skills ahora es una fuente confiable predeterminada de Skills Hub junto con OpenAI, Anthropic y HuggingFace. Las herramientas de MCP y los plugins incorporaron una divulgación progresiva (por ámbito), y se corrigió un error de MCP que informaba falsamente del éxito de OAuth cuando no se había obtenido ningún token.20
  • Seguridad. v0.16.0 fija una versión corregida de Starlette (≥1.0.1) para resolver la vulnerabilidad CVE-2026-48710 (BadHost), saca las comprobaciones SSRF de URL del bucle de eventos en las rutas asíncronas, elimina el token bearer de inferencia de Bedrock del entorno de los subprocesos, agrega bws_cache.json a la protección de lectura para la seguridad de archivos, incorpora docker restart/stop/kill a la lista de patrones peligrosos y depura los caracteres Unicode invisibles del contenido de las skills verificadas. La versión resolvió 2 problemas P0 y 62 P1, 16 de ellos etiquetados como problemas de seguridad.20

Si estás actualizando desde v0.15.x, nada de esto supone un cambio incompatible para la propia CLI; son interfaces y proveedores adicionales alrededor del mismo agente. La aplicación de escritorio y el panel de administración son las principales razones para actualizar si quieres ofrecer Hermes a usuarios que no trabajan desde la terminal o administrar un gateway remoto desde un navegador.


Instalación

El instalador de una sola línea es el método de instalación compatible. Se encarga de Python, uv, Node.js, ripgrep, ffmpeg, la clonación del repositorio, el entorno virtual y el comando global hermes.7

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Las instalaciones mediante pip y Homebrew están obsoletas desde la versión v0.19.0. El paquete de PyPI que introdujo la versión v0.14.0 (pip install hermes-agent) y la fórmula de Homebrew ahora están marcados como instalaciones «heredadas no compatibles»: Hermes muestra advertencias en todas las interfaces cuando detecta alguna de ellas, aunque no impide su uso, y está previsto dejar de publicar en PyPI y Homebrew. Si realizaste la instalación mediante pip o brew, migra al instalador anterior.50

Funciona en Linux, macOS, WSL2 y Android/Termux (el instalador detecta Termux automáticamente y utiliza un paquete para Android que ha sido probado).7 Windows nativo ahora es una plataforma de nivel 1, en lugar de la versión beta inicial que se lanzó con v0.14.0; instálalo con iex (irm https://hermes-agent.nousresearch.com/install.ps1). La documentación señala explícitamente una salvedad: macOS es compatible solo con Apple Silicon; las Mac con procesadores Intel no son compatibles.49 Históricamente, v0.14.0 incorporó compatibilidad nativa con Windows en una versión beta inicial mediante un instalador de PowerShell, pero WSL2 continúa siendo la recomendación más segura para entornos de producción hasta que la opción para Windows madure.19

Cuando termine:

source ~/.bashrc    # or ~/.zshrc
hermes              # Start chatting

El único requisito previo es git. El instalador aprovisiona automáticamente Python 3.11 mediante uv (sin necesidad de sudo), Node.js 26 (para la automatización del navegador y el puente de WhatsApp), ripgrep y ffmpeg. Node 26 es un requisito mínimo estricto desde v0.20.0: el instalador rechaza cualquier versión anterior e instala en su lugar una versión de Node administrada por Hermes.497

Verificar la instalación

hermes --version    # Check version (global flag; there is no `version` subcommand)
hermes doctor       # Diagnose config/dependency issues
hermes status       # Show current configuration + auth state
hermes dump         # Copy-pasteable setup summary for debugging

hermes doctor te indica exactamente qué falta y cómo solucionarlo.7 hermes dump es el comando de diagnóstico que debes pegar en un problema de GitHub o en un hilo de Discord cuando solicites ayuda: genera un resumen en texto sin formato de toda tu configuración, con los datos secretos ocultos.8

Instalación manual

Si necesitas un control total —una versión personalizada de Python, extras específicos o integración con Nix/NixOS—, el proceso manual está documentado paso a paso en la guía de instalación oficial.7 Estos son los principales extras opcionales que puedes combinar con uv pip install -e ".[<extras>]":

Extra Qué incorpora
all Todo lo que aparece a continuación
messaging gateway de Telegram y Discord
cron Análisis de expresiones cron
cli Interfaz de menú en la terminal para el asistente de configuración
modal Backend de ejecución en la nube de Modal
voice Entrada de micrófono de CLI y reproducción de audio
tts-premium Voces prémium de ElevenLabs
honcho Memoria nativa para IA (integración con Honcho)
mcp Compatibilidad con Model Context Protocol
homeassistant Integración con Home Assistant
acp Compatibilidad con la integración del editor ACP
slack Mensajería mediante Slack
pty Compatibilidad con terminal PTY (herramientas interactivas de CLI)
dev pytest y utilidades de prueba
termux Paquete probado para Android (incluye cron, cli, pty, mcp, honcho, acp)

El comando de instalación para Termux es diferente: utiliza pip con un archivo de restricciones, no uv pip:

python -m pip install -e ".[termux]" -c constraints-termux.txt

Esto se debe a que .[all] en Android incorpora faster-whisper mediante el extra voice, que depende de paquetes wheel de ctranslate2 que no se publican para Android.7


Autenticación y proveedores

En la etiqueta v2026.9.7, hermes_cli/models_catalog_static.py contiene 39 entradas estáticas de CANONICAL_PROVIDERS en la línea 311 (la reorganización de septiembre de 2026 trasladó la lista fuera de hermes_cli/models.py; las entradas no cambiaron e incluyen tencent-tokenplan de v0.21.0) y amplía automáticamente esa lista desde plugins/model-providers/ (39 directorios incluidos; nueve de ellos —actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage— no tienen una entrada estática y se incorporan mediante la ampliación automática porque utilizan el tipo de autenticación predeterminado api_key). La página de documentación sobre proveedores incluye tablas con 45 proveedores en la nube y por suscripción, además de una fila para endpoints personalizados, y explica por separado los servidores locales y autoalojados (Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM, ClawRouter y cualquier endpoint compatible con OpenAI).26 Sobre esta base se ofrecen los endpoints personalizados y tres rutas de autenticación diferentes. A continuación encontrarás toda la superficie de autenticación, organizada por ruta para que puedas identificar la que corresponde a lo que tienes.

Las tres rutas de autenticación

Cada proveedor de Hermes utiliza uno de estos tres patrones de autenticación:

Ruta 1 — Clave de API en .env. Coloca la clave en ~/.hermes/.env y Hermes la leerá al iniciarse. La utilizan OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (incluido MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini y la mayoría de los proveedores externos.2 Desde v0.19.0, la clave ya no tiene que almacenarse en un archivo de texto sin formato: una interfaz conectable SecretSource puede obtener los secretos de Bitwarden o 1Password (referencias op://) durante la carga, con varios cofres habilitados simultáneamente, precedencia determinista, advertencias sobre conflictos y procedencia por variable; .env sigue siendo la alternativa de respaldo. (Esto es distinto del token de arranque de Bitwarden Secrets Manager de v0.15.0, que consolidaba las claves de los proveedores detrás de un único token; SecretSource sustituye el propio archivo de texto sin formato y permite incorporar futuros proveedores de cofres como plugins).50

Ruta 2 — OAuth mediante hermes model o hermes auth. Inicia un flujo de código de dispositivo, abre un navegador y almacena las credenciales en ~/.hermes/auth.json (también puede importar credenciales existentes de herramientas como Claude Code o Codex CLI). Se utiliza con Nous Portal, OpenAI Codex (cuenta de ChatGPT), GitHub Copilot y Anthropic (Claude Pro/Max).2

Ruta 3 — Endpoint personalizado en config.yaml. Para cualquier API compatible con OpenAI: Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI o tu propio servidor autoalojado. Se configura una vez mediante hermes model → Custom endpoint y luego se guarda en config.yaml.2

Matriz completa de proveedores

Esta matriz abarca los proveedores incluidos en las tablas de la página de documentación, con el flujo de configuración exacto para cada uno; el selector de la etiqueta incluye más proveedores que la documentación (consulta el recuento anterior), y todo lo que sea compatible con OpenAI puede utilizarse mediante la fila de endpoint personalizado.226

Proveedor Ruta de autenticación Configuración
Nous Portal OAuth hermes model (inicio de sesión con OAuth, basado en suscripción)
OpenAI Codex OAuth hermes model (código de dispositivo de ChatGPT, utiliza modelos de Codex)
GitHub Copilot OAuth o token hermes model (código de dispositivo de OAuth), o COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token
GitHub Copilot ACP Subproceso local hermes model (requiere copilot CLI en PATH + copilot login)
Anthropic OAuth o clave de API hermes model (da prioridad a las credenciales de Claude Code), o ANTHROPIC_API_KEY, o token de configuración ANTHROPIC_TOKEN
OpenRouter Clave de API OPENROUTER_API_KEY en ~/.hermes/.env
AI Gateway (Vercel) Clave de API AI_GATEWAY_API_KEY en ~/.hermes/.env (proveedor: ai-gateway)
z.ai / GLM (ZhipuAI) Clave de API GLM_API_KEY en ~/.hermes/.env (proveedor: zai)
Kimi / Moonshot Clave de API KIMI_API_KEY en ~/.hermes/.env (proveedor: kimi-coding). v0.19.0 incorpora kimi-k3 a los catálogos (kimi-k2.x se retiró).50
MiniMax (global) Clave de API MINIMAX_API_KEY en ~/.hermes/.env (proveedor: minimax)
MiniMax China Clave de API MINIMAX_CN_API_KEY en ~/.hermes/.env (proveedor: minimax-cn)
Alibaba Cloud (Qwen) Clave de API DASHSCOPE_API_KEY en ~/.hermes/.env (proveedor: alibaba, alias: dashscope, qwen)
Kilo Code Clave de API KILOCODE_API_KEY en ~/.hermes/.env (proveedor: kilocode)
OpenCode Zen Clave de API OPENCODE_ZEN_API_KEY en ~/.hermes/.env (proveedor: opencode-zen)
OpenCode Go Clave de API OPENCODE_GO_API_KEY en ~/.hermes/.env (proveedor: opencode-go)
DeepSeek Clave de API DEEPSEEK_API_KEY en ~/.hermes/.env (proveedor: deepseek)
Hugging Face Clave de API HF_TOKEN en ~/.hermes/.env (proveedor: huggingface, alias: hf)
Google / Gemini Clave de API GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env (proveedor: gemini)
Fireworks AI Clave de API Proveedor de primera clase con estimación de costos y columnas de precios almacenados en caché en el selector de modelos; ascendido al segundo puesto en los selectores de proveedores. Nuevo en v0.19.0.50
DeepInfra Clave de API Proveedor de primera clase con una integración reforzada. Nuevo en v0.19.0.50
Upstage Solar Clave de API Proveedor de primera clase. Nuevo en v0.19.0.50
xAI (Grok) Proveedor nativo / OAuth de SuperGrok Proveedor de primera clase con acceso directo mediante API y catálogo de modelos (v0.9.0+). v0.14.0 incorpora OAuth de SuperGrok y amplía la ventana de contexto de grok-4.3 a 1M para las cuentas con acceso.21619 v0.17.0 incorpora grok-composer-2.5-fast (el modelo de Cursor mediante OAuth de xAI, contexto de 200k) y cambia el modelo predeterminado de xAI a grok-build-0.1.21 v0.19.0 lleva grok-4.5 a disponibilidad general en el catálogo.50
Voces personalizadas de xAI Clave de API Proveedor de TTS con clonación de voz. Nuevo en v0.13.0; configúralo en tts: dentro de config.yaml y proporciona la clave de xAI en .env.18
Xiaomi MiMo Proveedor nativo Proveedor de primera clase con asistente de configuración y catálogo de modelos. MiMo v2 Pro gratuito en Nous Portal para tareas auxiliares (v0.9.0+).1615
Google AI Studio Clave de API GOOGLE_API_KEY o GEMINI_API_KEY en ~/.hermes/.env. Acceso directo a Gemini con longitudes de contexto detectadas automáticamente mediante el registro de models.dev (v0.8.0+).15
Qwen OAuth (Portal) OAuth hermes model → “Qwen OAuth (Portal)” (proveedor: qwen-oauth; inicio de sesión PKCE en el navegador que reutiliza una sesión local de Qwen CLI). Proveedor de OAuth compatible con solicitudes del portal (v0.8.0+). La ruta de DashScope mediante clave de API indicada arriba pasó de llamarse Alibaba Cloud a Qwen Cloud en v0.14.0; las claves de configuración existentes siguen funcionando.151926
OpenCode Free Sin clave No requiere clave de API ni cuenta (proveedor: opencode-free, alias: free, opencode_free). Selecciónalo mediante hermes model o /model free; las solicitudes se envían de forma anónima. El plugin se incorporó durante el ciclo de v0.20.5, descrito en las notas de la versión como «el proveedor opencode-free sin autenticación».2326
OpenAI API (directo) Clave de API OPENAI_API_KEY en ~/.hermes/.env (proveedor: openai-api, OPENAI_BASE_URL opcional)26
Google Vertex AI OAuth2 / ADC hermes model → “Google Vertex AI” (proveedor: vertex; OAuth2 mediante JSON de una cuenta de servicio o Application Default Credentials, con facturación a tu proyecto de GCP)26
Azure AI Foundry Endpoint + clave hermes model → “Azure AI Foundry” (proveedor: azure-foundry; utiliza tu endpoint y clave de Azure OpenAI / Foundry; el selector lo describe como «endpoint al estilo de OpenAI o de Anthropic»)26
AWS Bedrock Credenciales de AWS hermes model → “AWS Bedrock” (proveedor: bedrock; cadena estándar de credenciales de AWS mediante boto3, IAM o clave de API; Claude, Nova, Llama, DeepSeek)26
NVIDIA NIM / Build Clave de API NVIDIA_API_KEY en ~/.hermes/.env (proveedor: nvidia; Nemotron y otros modelos alojados en NIM en build.nvidia.com, o un endpoint local de NIM mediante la sustitución de la URL base)26
Ollama Cloud OAuth o clave de API hermes model → “Ollama Cloud” (proveedor: ollama-cloud; pega OLLAMA_API_KEY y elige entre los modelos alojados en la nube que se hayan detectado)26
StepFun Step Plan Clave de API STEPFUN_API_KEY en ~/.hermes/.env (proveedor: stepfun; modelos de agentes y programación mediante la API de Step Plan)26
MiniMax (OAuth) OAuth hermes model → “MiniMax (OAuth)” (proveedor: minimax-oauth; inicio de sesión PKCE en el navegador para el Coding Plan, en la región global o de China)26
Meta AI Clave de API MODEL_API_KEY en ~/.hermes/.env (proveedor: meta-ai; API de Meta Model, familia Muse Spark)26
NovitaAI Clave de API NOVITA_API_KEY en ~/.hermes/.env (proveedor: novita; más de 200 modelos, Model API, Agent Sandbox, GPU Cloud)26
Arcee AI Clave de API ARCEEAI_API_KEY en ~/.hermes/.env (proveedor: arcee; alias: arcee-ai, arceeai; modelos Trinity)26
GMI Cloud Clave de API GMI_API_KEY en ~/.hermes/.env (proveedor: gmi; alias: gmi-cloud, gmicloud). Usa el ID exacto del modelo que devuelve el endpoint /v1/models de GMI26
Actual Computer Clave de API o daemon local ACTUAL_API_KEY en ~/.hermes/.env para el relay alojado, o ACTUAL_BASE_URL=http://127.0.0.1:8080 para el daemon local sin clave en loopback (proveedor: actual; alias: actual-computer, actualcomputer, aci)26
Tencent TokenHub Clave de API TOKENHUB_API_KEY en ~/.hermes/.env (proveedor: tencent-tokenhub; alias: tencent, tokenhub, tencentmaas; versión preliminar de Hy3)26
CommandCode Clave de API COMMANDCODE_API_KEY en ~/.hermes/.env (proveedor: commandcode, alias commandcode-chat; modelos de Claude mediante commandcode-anthropic, alias commandcode-claude). Funciona con los planes GOAT/Pro/Max/Provider, pero no con el plan Go de $1, que no incluye acceso a la API. El plugin se incorporó durante el ciclo de v0.20.3.4826
Alibaba Cloud (Coding Plan) Clave de API DASHSCOPE_API_KEY (proveedor: alibaba-coding-plan, alias alibaba_coding); una SKU de facturación independiente en un endpoint distinto del proveedor alibaba de DashScope26
Tencent TokenPlan Clave de API TOKENPLAN_API_KEY en ~/.hermes/.env (proveedor: tencent-tokenplan, alias: tokenplan, tencent-lkeap; versión preliminar de Hy4 mediante el endpoint Messages de Anthropic en api.lkeap.cloud.tencent.com). Nuevo en v0.21.0; el selector agrupa TokenHub y TokenPlan en una sola fila de visualización llamada “Tencent Hy”3536
Nebius Token Factory Clave de API NEBIUS_API_KEY en ~/.hermes/.env (proveedor: nebius-token-factory; alias: nebius, nebius-tf, tokenfactory). Nuevo en v0.21.03536
Ramp Router Clave de API RAMP_ROUTER_API_KEY en ~/.hermes/.env (proveedor: router; alias: ramp-router, ramp, router.com). El gateway de LLM nativo de OpenAI Responses de Ramp en api.router.com cuenta con un catálogo activo específico de cada cuenta: los ID de modelo válidos son los que devuelve /v1/models para tu clave, por lo que el selector los obtiene dinámicamente en lugar de codificarlos de forma fija. Nuevo en v0.21.03536
Alibaba Cloud (Token Plan) Clave de API ALIBABA_TOKEN_PLAN_API_KEY en ~/.hermes/.env (proveedor: alibaba-token-plan; endpoint para China continental: alibaba-token-plan-cn): el nivel de tokens de tarifa plana de Model Studio, una tercera SKU de Alibaba junto con alibaba y alibaba-coding-plan36
Endpoint personalizado config.yaml hermes model → “Custom endpoint” (se guarda en config.yaml). La lista de servicios compatibles con OpenAI incluida en la documentación comprende Together AI, Groq, Cerebras (https://api.cerebras.ai/v1), Mistral, Azure OpenAI, LocalAI y Jan26
Desde v0.19.0 también puedes ocultar los proveedores que no utilizas: una opción enabled: false por proveedor y una clave de configuración excluded_providers los eliminan de los selectores de /model y de la resolución integrada de proveedores.50

Anthropic: tres métodos de autenticación

Anthropic tiene su propia sección porque Hermes admite tres vías distintas para acceder a Claude, y es importante elegir la adecuada. Según la documentación original:2

# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model

# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic

# Auto-detect Claude Code credentials
hermes chat --provider anthropic   # reads Claude Code files automatically

Cuando eliges OAuth de Anthropic mediante hermes model, Hermes prioriza el almacén de credenciales propio de Claude Code en lugar de copiar el token en ~/.hermes/.env. Así, las credenciales renovables de Claude conservan esa capacidad.2 Si ya utilizas Claude Code en la misma computadora, esta es la opción más limpia.

Para fijar Anthropic permanentemente en config.yaml:

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"

--provider claude y --provider claude-code también funcionan como abreviaturas de --provider anthropic.2

Copilot de GitHub: dos modos

Copilot admite dos modos: la API directa de Copilot (recomendada) y Copilot ACP (que inicia la CLI local de Copilot como subproceso).2

# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4

# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp

Según la documentación original, la autenticación se comprueba en este orden:2 1. Variable de entorno COPILOT_GITHUB_TOKEN 2. Variable de entorno GH_TOKEN 3. Variable de entorno GITHUB_TOKEN 4. Alternativa mediante la CLI gh auth token 5. Inicio de sesión con código de dispositivo de OAuth mediante hermes model

El tipo de token importa. La API de Copilot no admite tokens de acceso personal clásicos (ghp_*). Los tipos compatibles son los tokens de OAuth (gho_*), los PAT específicos (github_pat_* con el permiso Copilot Requests) y los tokens de aplicaciones de GitHub (ghu_*). Si gh auth token devuelve un token ghp_*, usa hermes model para autenticarte mediante OAuth.2

Proveedores chinos de AI (compatibilidad de primera clase)

Hermes ofrece compatibilidad integrada con z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints globales y de China) y Alibaba Cloud mediante ID de proveedor específicos.2

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5                 # Requires: GLM_API_KEY

# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding   # Requires: KIMI_API_KEY

# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7          # Requires: MINIMAX_API_KEY

# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7       # Requires: MINIMAX_CN_API_KEY

# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus          # Requires: DASHSCOPE_API_KEY

Las URL base pueden sustituirse mediante las variables de entorno GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL o DASHSCOPE_BASE_URL.2

Z.AI detecta automáticamente el endpoint. Al utilizar el proveedor z.ai/GLM, Hermes prueba varios endpoints (globales, de China y variantes de programación) para encontrar uno que acepte tu clave de API. El endpoint que funciona se almacena automáticamente en caché; la mayoría de los usuarios no necesitan definir GLM_BASE_URL.2

xAI (Grok) activa automáticamente el almacenamiento en caché de prompts. Cuando la URL base contiene x.ai, Hermes envía el encabezado x-grok-conv-id con cada solicitud para dirigirla al mismo servidor durante una sesión de conversación, lo que permite reutilizar los prompts del sistema y el historial almacenados en caché.2 Es automático y no requiere configuración.

El comando hermes auth

hermes auth es el comando para administrar pools de credenciales y credenciales de OAuth.6

hermes auth                              # Interactive wizard
hermes auth list                         # Show all credential pools
hermes auth list openrouter              # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2          # Remove by index
hermes auth reset openrouter             # Clear cooldowns

Los pools de credenciales permiten rotar varias claves de API o tokens de OAuth para el mismo proveedor, algo útil para distribuir los límites de solicitudes entre varias claves sin modificar el código.6 Los comandos antiguos hermes login y hermes logout se eliminaron; usa hermes auth en su lugar.6

Endpoints personalizados y autoalojados

Hermes funciona con cualquier endpoint de API compatible con OpenAI. Si un servidor implementa /v1/chat/completions, puedes hacer que Hermes lo utilice.2

Configuración interactiva (recomendada):

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Configuración manual de config.yaml:

model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local

Ambos métodos guardan la configuración en config.yaml, que es la única fuente de verdad para el modelo principal, el proveedor y la URL base.2 Las variables de entorno antiguas OPENAI_BASE_URL y LLM_MODEL ya no se consultan para configurar el modelo principal; usa hermes model o edita config.yaml directamente.2 (OPENAI_BASE_URL y OPENAI_API_KEY aún se respetan como alternativa para la ruta auxiliar provider: "main", así que no las elimines sin comprobar antes si las utilizas allí).4

Cambio de endpoints personalizados durante una sesión:

/model custom:qwen-2.5             # Custom endpoint with explicit model
/model custom                      # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5       # Named custom provider "local"
/model custom:work:llama3          # Named custom provider "work"
/model openrouter:claude-sonnet-4  # Back to a cloud provider

/model custom (sin nombre de modelo) consulta la API /v1/models de tu endpoint y selecciona automáticamente el modelo si solo hay uno cargado, lo que resulta útil para servidores locales que ejecutan un único modelo.2

Servidores locales de LLM (plantillas de configuración)

La documentación oficial incluye guías de configuración completas para Ollama, vLLM, SGLang, llama.cpp y LM Studio. Estos son los comandos clave que realmente ejecutarás. Cada uno está diseñado para crear un endpoint funcional al que Hermes pueda conectarse.2

Ollama — la opción local más sencilla, sin configuración:

ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve   # Raise from 4k default
hermes model   # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b

Detalle crítico de Ollama: Ollama usa de forma predeterminada longitudes de contexto muy bajas (4.096 tokens con menos de 24 GB de VRAM). Debes aumentarla mediante OLLAMA_CONTEXT_LENGTH o un Modelfile; la API compatible con OpenAI no acepta la longitud de contexto del cliente, por lo que Hermes no puede configurarla por ti.2 Para usarlo como agente, establece al menos entre 16k y 32k.

vLLM — servicio de GPU de alto rendimiento:

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Las llamadas a herramientas requieren --enable-auto-tool-choice y --tool-call-parser <name>. Analizadores compatibles: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Sin estas opciones, las llamadas a herramientas se devolverán como texto sin formato.2

SGLang — servicio rápido con RadixAttention para reutilizar la caché KV:

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Detalle de SGLang: El valor predeterminado de max_tokens es 128. Configura --default-max-tokens en el servidor o model.max_tokens en config.yaml si las respuestas se interrumpen.2

llama.cpp / llama-server — CPU y Metal de Apple Silicon:

./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

--jinja es obligatorio para las llamadas a herramientas. Sin esta opción, llama-server ignora por completo el parámetro tools y el modelo intenta llamar a las herramientas escribiendo JSON en el texto de su respuesta, algo que Hermes no puede interpretar como llamadas a herramientas reales.2

LM Studio — aplicación de escritorio con interfaz gráfica:

Inicia el servidor desde la aplicación LM Studio (pestaña Developer → Start Server), o mediante CLI: lms server start (se inicia en el puerto 1234) y lms load qwen2.5-coder --context-length 32768.2 Luego configura hermes model para que apunte a http://localhost:1234/v1.

Detalle crítico de LM Studio: LM Studio obtiene la longitud de contexto de los metadatos del modelo, pero muchos modelos GGUF indican valores predeterminados de 2048 o 4096. Configura siempre la longitud de contexto de forma explícita en la configuración del modelo de LM Studio: haz clic en el ícono de engranaje situado junto al selector de modelos, establece “Context Length” en al menos 16384 (preferiblemente 32768) y vuelve a cargar el modelo.2

Proveedores personalizados con nombre

Si trabajas con varios endpoints personalizados (por ejemplo, un servidor de desarrollo local y un servidor GPU remoto), defínelos como proveedores personalizados con nombre en config.yaml:2

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    api_key: corp-api-key
    api_mode: chat_completions      # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    api_key: proxy-key
    api_mode: anthropic_messages    # for Anthropic-compatible proxies

Luego, alterna entre ellos durante la sesión con la sintaxis triple:

/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4

También puedes seleccionar proveedores personalizados con nombre desde el menú interactivo de hermes model.2

Arquitectura de proveedores conectables (v0.13.0+)

La versión v0.13.0 incorpora una clase base abstracta ProviderProfile y un directorio plugins/model-providers/ para que puedan integrarse proveedores de inferencia externos sin modificar el núcleo.18 Si un proveedor ofrece un modo de API compatible con OpenAI, Anthropic o Codex, puedes implementar una subclase de ProviderProfile que declare la ruta de autenticación, la URL base, el catálogo de modelos y los encabezados de caché; Hermes lo resuelve mediante la misma ruta runtime_provider.py que utilizan los proveedores integrados. Este es el cambio arquitectónico que sustenta la ampliación de proveedores en la versión v0.13.0: en lugar de editar el código del núcleo para añadir un proveedor, distribuyes un plugin.

Proxy local compatible con OpenAI (v0.14.0+)

hermes proxy expone un endpoint local compatible con OpenAI, respaldado por el proveedor OAuth en el que Hermes ya inició sesión: Claude Pro, ChatGPT Pro, SuperGrok u otro proveedor compatible configurado.19 Esto permite que las herramientas que esperan una API al estilo de OpenAI, como Codex CLI, Aider, Cline, Continue o scripts personalizados, reutilicen la autenticación de Hermes respaldada por tu suscripción sin necesitar una clave de API adicional. Trata el proxy como infraestructura local de desarrollo: vincúlalo de manera intencional, no lo expongas ampliamente y ten en cuenta las condiciones específicas de cada proveedor.

Detección de la longitud de contexto

Según la documentación oficial, hay dos configuraciones que se confunden constantemente:2

  • context_length — la ventana de contexto total (presupuesto combinado de tokens de entrada y salida; por ejemplo, 1.000.000 para Claude Opus 4.7 o 200.000 para Sonnet 4.6). Hermes la utiliza para decidir cuándo comprimir el historial.
  • model.max_tokens — el límite de salida (la cantidad máxima de tokens que el modelo puede generar en una sola respuesta). No está relacionado con la longitud del historial.

Configura context_length cuando la detección automática determine incorrectamente el tamaño de la ventana:

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072      # tokens

Hermes utiliza una cadena de resolución con varias fuentes para detectar las ventanas de contexto: configuración manual → modelo específico de un proveedor personalizado → caché persistente → endpoint /models → Anthropic /v1/models → API de OpenRouter → Nous Portal → models.dev (registro mantenido por la comunidad con más de 3800 modelos) → valores predeterminados de reserva (128K).2 El sistema tiene en cuenta al proveedor, por lo que un mismo modelo puede tener distintos límites de contexto según quién lo ofrezca (por ejemplo, claude-opus-4.6 admite 1M directamente con Anthropic, pero 128K en GitHub Copilot).2

Enrutamiento inteligente de modelos: rotación de proveedores y respaldo

Hermes no te limita a un modelo de un solo proveedor. El enrutamiento inteligente de modelos es el conjunto de mecanismos que decide qué proveedor y modelo atienden realmente una solicitud determinada: los grupos de credenciales distribuyen la carga entre distintas claves, un respaldo configurado toma el control cuando falla la opción principal y los espacios auxiliares que aparecen a continuación asignan las tareas secundarias a modelos más económicos de forma independiente del modelo principal.26 Configura estas tres opciones en conjunto; marcan la diferencia entre un agente que se detiene al alcanzar un límite de solicitudes y otro que sigue trabajando.

Grupos de credenciales. Cuando tengas varias claves de API para el mismo proveedor, configura una estrategia de rotación mediante hermes auth. Así puedes distribuir los límites de solicitudes entre varias claves.6

Modelo de respaldo. Configura un provider:model de respaldo al que Hermes cambie automáticamente cuando falle el modelo principal (límites de solicitudes, errores del servidor o fallos de autenticación):2

fallback_model:
  provider: openrouter            # required
  model: anthropic/claude-sonnet-4  # required
  # base_url: http://localhost:8000/v1    # optional, for custom endpoints
  # api_key_env: MY_CUSTOM_KEY           # optional, env var name

El respaldo cambia el modelo y el proveedor durante la sesión sin perder la conversación. Se activa como máximo una vez por sesión.2 Proveedores compatibles con el respaldo: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2

Modelos auxiliares

Hermes utiliza modelos “auxiliares” para tareas secundarias: análisis de imágenes (visión), clasificación para aprobar comandos peligrosos, compresión del contexto, generación de títulos de sesión, inserción de etiquetas de audio TTS, coincidencia de skills, envío de herramientas mediante MCP y la familia de especificadores/descomponedores de Kanban.434 De forma predeterminada (auxiliary.*.provider: "auto"), todas las tareas auxiliares se ejecutan en tu modelo principal de chat, es decir, el mismo proveedor y modelo que elegiste en hermes model. La documentación indica explícitamente que esto sustituyó la antigua detección automática de proveedores económicos: “Las versiones anteriores asignaban a los usuarios de agregadores (OpenRouter, Nous Portal) una opción predeterminada económica del proveedor. Eso resultaba inesperado… Ahora, auto utiliza el modelo principal para todos, y las configuraciones específicas de cada tarea en config.yaml siguen teniendo prioridad”.34 No necesitas configurar nada para comenzar; la contrapartida es el costo: con modelos de razonamiento caros, las tareas auxiliares pueden generar un gasto considerable, así que asigna cada tarea a modelos rápidos y económicos cuando sea importante. Dos tareas que antes eran auxiliares ya no usan ningún LLM: la extracción web (“web_extract y las instantáneas del navegador truncan el contenido extenso de forma determinista y almacenan el texto completo para paginarlo con read_file – sin intervención de LLM”) y la búsqueda de sesiones (la herramienta de estructura única devuelve directamente el contenido de la base de datos). Sus antiguos bloques auxiliary.web_extract.* y auxiliary.session_search.* ya no están incluidos en la configuración predeterminada – los valores que permanezcan en un config.yaml existente son “restos inofensivos que se ignoran” – y la ranura flush_memories tampoco aparece en la configuración predeterminada de esa etiqueta.34

Puedes configurar qué modelo y proveedor usa cada tarea auxiliar. Todas las ranuras auxiliares usan las mismas opciones: provider, model, base_url (además de api_key, timeout, extra_body y un reasoning_effort específico para cada tarea).434

auxiliary:
  vision:                          # vision_analyze + browser screenshots
    provider: "auto"               # "auto" (= main model), "openrouter", "nous", "main", etc.
    model: ""                      # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
    base_url: ""                   # Custom OpenAI-compatible endpoint
    api_key: ""                    # Falls back to OPENAI_API_KEY
    timeout: 120
    download_timeout: 30
  approval:                        # dangerous-command approval classifier
    provider: "auto"
    model: ""
    timeout: 30
  compression:                     # summarizer -- legacy compression.summary_* keys migrate here (config v17)
    provider: "auto"
    model: ""
    base_url: ""
    timeout: 120
  title_generation:                # auto-generated session titles after the first exchange
    enabled: true                  # set false to disable auto-titles
    provider: "auto"
    model: ""
    language: ""                   # empty follows the conversation; e.g. "English" pins titles to one language
  tts_audio_tags:    { provider: "auto", model: "" }  # Gemini 3.1 TTS hidden audio-tag insertion
  skills_hub:        { provider: "auto", model: "" }  # skill matching and search
  mcp:               { provider: "auto", model: "" }  # MCP tool dispatch
  triage_specifier:  { provider: "auto", model: "" }  # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
  kanban_decomposer: { provider: "auto", model: "" }  # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
  profile_describer: { provider: "auto", model: "" }  # hermes profile describe --auto: 1-2 sentence profile descriptions

Otras ranuras especializadas siguen la misma estructura: goal_judge (evalúa el cumplimiento del contrato de /goal), curator (la bifurcación que revisa el uso de skill), background_review (la bifurcación de mejora automática posterior al turno), review (el subagente revisor de /review), moa_reference y moa_aggregator (Mixture-of-Agents), memory_query_rewrite y monitor. Además, no tienes que editar YAML manualmente: ejecuta hermes model y selecciona “Configurar modelos auxiliares” para elegir interactivamente un modelo por tarea.34

La opción de proveedor "main" significa “usar el mismo proveedor que usa mi agente principal” y es válida solo dentro de auxiliary:, compression: y las entradas principales de respaldo (fallback_providers: o la opción heredada fallback_model:). No es válida para la configuración de nivel superior model.provider. Si usas un endpoint personalizado compatible con OpenAI como modelo principal, establece provider: custom en la sección model:.4

Por qué esto importa: como auto ya usa tu modelo principal, desapareció el antiguo problema de “configurar OpenRouter o dejar que las tareas auxiliares pierdan capacidades silenciosamente”; ahora la contrapartida es el costo. Si tu modelo principal es un modelo de razonamiento costoso, dirige las tareas secundarias más activas a uno económico y rápido:

auxiliary:
  vision:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"
  compression:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"

Sistema de configuración

Hermes tiene un sistema de configuración por capas. Comprender el orden de precedencia es esencial, ya que las capas superiores prevalecen sobre las inferiores, y una de ellas es un registro global de proveedores que no puedes ver en config.yaml.

Estructura de los archivos de configuración

Según la documentación oficial, estos son los archivos que componen una configuración de Hermes:4

~/.hermes/
├── config.yaml       # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env              # Secrets (API keys, bot tokens, passwords)
├── auth.json         # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md           # Primary agent identity (slot #1 in system prompt)
├── memories/         # Persistent memory (MEMORY.md, USER.md)
├── skills/           # Bundled + agent-created + hub-installed skills
├── cron/             # Scheduled jobs
├── sessions/         # Gateway session state
└── logs/             # agent.log, gateway.log, errors.log (secrets auto-redacted)

config.yaml frente a .env: cuando una opción está definida en ambos, config.yaml prevalece para la configuración que no contiene secretos.4 La regla es: - Secretos (claves de API, tokens de bots, contraseñas) → .env - Todo lo demás (modelo, backend de terminal, configuración de compresión, límites de memoria, toolsets) → config.yaml

Puedes hacer referencia a los secretos desde config.yaml mediante interpolación al estilo del shell:4

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}
  delegation:
    api_key: ${DELEGATION_KEY}

Administración de la configuración

hermes config                # View current configuration
hermes config show           # Same as above
hermes config edit           # Open config.yaml in your editor
hermes config set KEY VAL    # Set a specific value
hermes config get KEY        # Print a single value (v0.19.0+)
hermes config unset KEY      # Remove a key so the default applies again (v0.19.0+)
hermes config path           # Print the config file path
hermes config env-path       # Print the .env file path
hermes config check          # Check for missing options (after updates)
hermes config migrate        # Interactively add missing options

Ejemplos:4

hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...   # Saves to .env

hermes config check y hermes config migrate son los comandos que debes ejecutar después de cada hermes update: detectan las opciones de configuración recién añadidas que todavía no están en tu archivo.6

Precedencia de la configuración

Hermes carga la configuración desde varias fuentes. Cuando más de una fuente establece el mismo valor, prevalece la de mayor prioridad:4

  1. Argumentos de CLIhermes chat --model anthropic/claude-sonnet-4 (reemplazo para una ejecución específica)
  2. Variables de entorno — se aplican al iniciar el proceso
  3. config.yaml — el archivo principal de configuración
  4. .env — solo secretos
  5. Valores predeterminados integrados — se aplican cuando ninguna otra fuente establece un valor

Las opciones de CLI siempre prevalecen durante esa ejecución específica. config.yaml es la fuente de verdad a largo plazo.

Localización (v0.13.0+)

La versión v0.13.0 añadió 7 configuraciones regionales para los mensajes de CLI y del gateway: chino simplificado, japonés, alemán, español, francés, ucraniano y turco.18 La versión v0.14.0 localiza todos los comandos del gateway y el panel web, añade 8 configuraciones regionales más y eleva el total a 16.19 En la etiqueta v2026.8.31, el árbol locales/ contiene 17 catálogos de mensajes: inglés y 16 traducciones (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh).33 Actualmente, la documentación solo está localizada en zh-Hans. La configuración regional se determina mediante las variables de entorno LC_ALL / LANG o con una clave locale: explícita en config.yaml. El inglés sigue siendo el idioma predeterminado y la fuente de verdad para cualquier cadena que aún no esté incluida en una traducción.

Profiles: varias instancias aisladas de Hermes

Los profiles permiten tener varias instancias aisladas de Hermes, cada una con su propia configuración, sesiones, skills, memoria y PID del gateway. Así puedes ejecutar un «Hermes del trabajo» y un «Hermes personal» en paralelo sin que ninguno tenga acceso al estado del otro.6

hermes profile list
hermes profile create work --clone                  # Clone from current profile
hermes profile use work                             # Set sticky default
hermes profile alias work --name h-work             # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile"    # One-off without switching

Cada profile obtiene su propio HERMES_HOME (~/.hermes-<name>/ de forma predeterminada), por lo que varios profiles pueden ejecutar el gateway simultáneamente sin interferir entre sí.63


Comandos de CLI

Esta sección es la referencia práctica de los comandos de nivel superior de CLI. Para consultar la referencia oficial derivada del código, visita la Referencia de comandos de CLI.6

Opciones globales

hermes [global-options] <command> [subcommand/options]
Opción Descripción
--version, -V Muestra la versión y sale
--profile <name>, -p <name> Selecciona el profile de Hermes que se usará
--resume <session>, -r <session> Reanuda una sesión por ID o título
--continue [name], -c [name] Reanuda la sesión más reciente (o busca una coincidencia por título)
--worktree, -w Inicia en un worktree de git aislado
--in <dir> Cambia a DIR antes de iniciar o reanudar. Al combinarse con --resume latest o -c, se elige la sesión más reciente del espacio de trabajo de DIR y la sesión permanece en DIR (se omite la restauración del directorio de trabajo registrado)27
--ignore-user-config Ignora ~/.hermes/config.yaml y usa los valores predeterminados integrados (las credenciales de .env se siguen cargando)27
--ignore-rules Omite la incorporación automática de AGENTS.md, SOUL.md, .cursorrules, la memoria y los skills precargados27
--tui Inicia la TUI moderna en lugar del REPL clásico27
--cli Fuerza el REPL clásico de prompt_toolkit (anula display.interface=tui)27
--dev Con --tui: ejecuta las fuentes de TypeScript mediante tsx (omite la compilación de dist)27
--yolo Omite las solicitudes de aprobación para comandos peligrosos
--safe-mode Indicador para solucionar problemas: inicia Hermes en un modo seguro mínimo para aislar problemas de arranque (v0.19.0+)50
--pass-session-id Incluye el ID de sesión en el prompt del sistema del agente

Comandos de nivel superior

Comando Propósito
hermes chat Chat interactivo o de una sola ejecución
hermes model Elige interactivamente el proveedor y el modelo predeterminados
hermes gateway Ejecuta o administra el gateway de mensajería
hermes setup Asistente de configuración interactivo
hermes auth Administra credenciales: agregar, listar, eliminar, restablecer y definir la estrategia
hermes status Muestra el estado del agente, la autenticación y las plataformas
hermes cron Inspecciona y activa el planificador cron
hermes webhook Administra suscripciones dinámicas a webhooks
hermes doctor Diagnostica problemas de configuración y dependencias
hermes dump Genera un resumen de la configuración listo para copiar y pegar con fines de soporte o depuración
hermes logs Consulta, sigue y filtra los registros del agente, del gateway y de errores
hermes config Muestra, edita, migra y consulta la configuración
hermes pairing Aprueba o revoca códigos de vinculación de mensajería
hermes skills Explora, instala, publica y audita skills
hermes honcho Administra la memoria entre sesiones de Honcho. Está condicionado por el plugin: la documentación indica que «los subcomandos específicos de plugins (por ejemplo, hermes honcho) se registran automáticamente cuando su proveedor está activo», por lo que no aparece en hermes --help salvo que Honcho sea el proveedor de memoria activo6
hermes memory Configura un proveedor de memoria externo
hermes acp Ejecuta Hermes como servidor ACP (integración con editores)
hermes mcp Administra la configuración del servidor MCP; ejecuta Hermes como servidor MCP
hermes plugins Administra plugins
hermes tools Configura las herramientas habilitadas en cada plataforma
hermes sessions Explora, exporta, depura y elimina sesiones. La versión v0.19.0 amplía hermes sessions export para admitir formatos Markdown, Quarto, HTML, solo prompt y trazas de Hugging Face, con un proceso opcional --redact para eliminar secretos y filtros por antigüedad, espacio de trabajo y plataforma50
hermes insights Muestra análisis de tokens, costos y actividad
hermes claw Herramientas auxiliares para migrar desde OpenClaw
hermes profile Administra profiles (varias instancias aisladas)
hermes completion Imprime scripts de autocompletado para la shell (bash/zsh)
hermes whatsapp Configura y vincula el puente de WhatsApp
hermes --version (-V) Imprime información de la versión. Es un indicador global, no un subcomando: en la etiqueta v2026.8.31, el conjunto _BUILTIN_SUBCOMMANDS no contiene una entrada version y la ruta rápida de inicio solo reconoce --version / -V27
hermes update Obtiene el código más reciente y reinstala las dependencias
hermes uninstall Elimina Hermes del sistema (--full también elimina la configuración y los datos)
hermes backup Copia de seguridad completa de la configuración, las sesiones, los skills y la memoria (v0.9.0+)16
hermes import Restaura desde un archivo de copia de seguridad para migrar entre computadoras o volver a un estado anterior (v0.9.0+)16
hermes dashboard Inicia el panel web local para administrar el agente desde el navegador (v0.9.0+)16
hermes serve Ejecuta el servidor API del backend sin interfaz gráfica; desde la versión v0.19.0, ya no compila ni monta la interfaz web50
hermes debug share Sube un informe de depuración completo a un pastebin para compartirlo durante la solución de problemas (v0.9.0+)16
hermes approvals Herramientas para solicitudes de aprobación: suggest analiza el historial de aprobaciones y genera propuestas para command_allowlist; test simula el veredicto de aprobación de un comando sin ejecutarlo («nunca lo ejecuta», con --backend y --json). Las notas de la versión v0.21.0 presentan esta simulación como hermes approval-check, pero no existe ningún subcomando approval-check en la etiqueta v2026.8.31; la interfaz disponible es hermes approvals test2740
hermes bundles Crea, lista y administra paquetes de skills (alias de varios skills bajo un único comando slash /<name>)27
hermes checkpoints Inspecciona, depura o vacía ~/.hermes/checkpoints/, el almacén oculto que respalda /rollback; ejecútalo sin argumentos para obtener un resumen del estado27
hermes computer-use Administra el backend Computer Use (cua-driver) en macOS, Windows y Linux27
hermes console Abre la consola segura de comandos de Hermes27
hermes curator Mantenimiento de skills en segundo plano (curator): consultar estado, ejecutar, pausar y fijar27
hermes egress Administra el firewall de inyección de credenciales de salida iron-proxy para entornos aislados de terminal remota (deshabilitado de forma predeterminada)27
hermes fallback Administra proveedores alternativos, que se prueban cuando falla el modelo principal27
hermes hooks Inspecciona y administra hooks de scripts de shell: list, test <event>, revoke y doctor (bit de ejecución, lista de permitidos, cambios en mtime, validez de JSON y duración de ejecuciones simuladas)27
hermes import-agent Importa una configuración de Claude Code (~/.claude) o de Codex CLI (~/.codex) en Hermes27
hermes desktop (alias gui) Compila e inicia la aplicación de escritorio nativa de Electron27
hermes kanban Tablero de colaboración entre varios profiles (tareas, enlaces y comentarios), con tableros, un grafo de swarm (swarm: trabajadores en paralelo → verificador → sintetizador) y un despachador27
hermes login / hermes logout Obsoletos. Usa hermes auth para administrar credenciales, hermes model para seleccionar un proveedor o hermes setup para realizar la configuración completa27
hermes lsp Administración de Language Server Protocol: status, list, install <server>, install-all y restart (cierra los clientes LSP en ejecución; la siguiente edición vuelve a iniciarlos)27
hermes migrate Migra la configuración de modelos retirados u opciones obsoletas27
hermes moa Configura espacios de proveedor y modelo de Mixture of Agents (ajustes predefinidos con nombre que pueden seleccionarse desde el selector de modelos)27
hermes journey (alias learning, memory-graph) Cronología de los skills y recuerdos aprendidos a lo largo del tiempo27
hermes monitoring Inspecciona el monitoreo del gateway (exportación de estado y diagnósticos); status muestra la configuración, el estado de exportación y las medidas de ocultación de datos27
hermes pause / hermes resume Parada de emergencia: pause detiene cron, el despacho de kanban y los nuevos turnos del gateway; resume reanuda su funcionamiento27
hermes peer Mensajes directos entre bots en distintas computadoras: permite add, list y remove gateways de Hermes pares, así como usar dm para enviar un mensaje a un agente en uno de ellos e imprimir su respuesta27
hermes pets Explora, instala y selecciona mascotas animadas de petdex27
hermes portal Configura Nous Portal (inicio de sesión, selección de modelo y Tool Gateway): login (predeterminado), info, open, tools; consulta Nous Tool Gateway2728
hermes project Administra proyectos (espacios de trabajo con nombre y varias carpetas): crear, listar, mostrar, agregar o eliminar carpetas, cambiar el nombre, establecer la carpeta principal, usar, archivar, restaurar y vincular un tablero kanban27
hermes proxy Proxy local compatible con OpenAI para proveedores de OAuth: start, status, providers27
hermes prompt-size Muestra un desglose en bytes del prompt del sistema y los esquemas de herramientas; funciona sin conexión27
hermes send Envía un mensaje a una plataforma configurada sin bucle del agente ni LLM (scripts, tareas cron y CI)27
hermes skin Lista, cambia y ajusta skins (list, use, set)27
hermes slack Herramientas auxiliares para la integración con Slack: manifest imprime o escribe un manifiesto de aplicación de Slack con cada comando del gateway registrado como un comando slash nativo27
hermes sync Skill Sync entre dispositivos y con tu equipo: status, pull, push, now, enable, disable, device, propose27
hermes whatsapp-cloud Configura la integración con API de WhatsApp Business Cloud (distinta del puente Baileys de hermes whatsapp para cuentas personales)27
hermes worktree Audita y recupera los worktrees de git y las ramas fusionadas que se hayan acumulado. list (alias ls, audit; opción predeterminada) clasifica cada árbol por antigüedad, tamaño, veredicto y motivo; prune elimina árboles seguros y borra las ramas locales fusionadas por completo. Ambos aceptan --repo <root>; prune añade --dry-run (muestra el plan sin modificar nada), --trees-only y --branches-only. Nunca elimina cambios rastreados sin confirmar, commits únicos que no se hayan enviado ni árboles en uso; antes de eliminarlo, el contenido temporal compuesto solo por archivos sin seguimiento se archiva en ~/.hermes/archive/worktree-prune/27
hermes secrets Administra fuentes externas de secretos (Bitwarden, 1Password) para obtener claves de API al iniciar el proceso27
hermes security Auditoría de la cadena de suministro (OSV.dev) para el venv, los plugins y los servidores MCP (audit)27
hermes verify Detecta el procedimiento de ejecución de un proyecto y realiza una prueba de humo27

hermes chat: el punto de entrada principal

hermes sin argumentos abre el chat interactivo. hermes chat es la forma explícita con opciones:6

hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills          # Enable specific toolsets
hermes chat --quiet -q "Return only JSON"           # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"

Opciones principales:

Opción Descripción
-q, --query "..." Consulta que se ejecutará. Cambió en la versión v0.21.0: en una TTY real, ahora inicia una sesión interactiva (se envía literalmente como el primer turno); al combinarse con --oneshot o -Q, o al ejecutarse fuera de una TTY, responde y sale, como en el comportamiento anterior de una sola ejecución40
--oneshot Con -q/--query-file: responde la consulta y sale (comportamiento heredado de consulta única). Se activa de forma implícita cuando la entrada y salida estándar no corresponden a una TTY y mediante -Q/--quiet40
-m, --model <model> Reemplaza el modelo para esta ejecución
-t, --toolsets <csv> Habilita un conjunto de toolsets separados por comas
--provider <provider> Fuerza el uso de un proveedor (consulta la lista completa)
-s, --skills <name> Precarga uno o más skills para esta sesión
-v, --verbose Salida detallada
-Q, --quiet Modo programático (sin banner, indicador de carga ni vistas previas)
--resume <session> Reanuda una sesión directamente desde chat
--worktree Crea un worktree de git aislado
--checkpoints Habilita checkpoints del sistema de archivos antes de realizar cambios destructivos
--yolo Omite las solicitudes de aprobación
--source <tag> Etiqueta de origen de la sesión (valor predeterminado: cli; usa tool para integraciones)
--max-turns <N> Número máximo de iteraciones de llamadas a herramientas por turno de conversación (valor predeterminado: 500 desde v0.20.0, o agent.max_turns en la configuración)40

hermes setup: asistente completo

Ejecuta el asistente de configuración completo o abre directamente una de sus secciones:6

hermes setup                 # Full wizard
hermes setup model           # Provider and model only
hermes setup terminal        # Terminal backend only
hermes setup gateway         # Messaging platforms only
hermes setup tools           # Tool enable/disable per platform
hermes setup agent           # Agent behavior only
hermes setup --non-interactive
hermes setup --reset         # Reset config to defaults before setup

hermes logs: consultas estructuradas de registros

hermes logs ofrece más posibilidades que tail -f aplicado a los archivos de registro, ya que permite filtrar simultáneamente por nivel, ID de sesión e intervalo de tiempo.6

hermes logs                          # Last 50 lines of agent.log
hermes logs -f                       # Follow in real time
hermes logs gateway -n 100           # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h   # Warnings from the last hour
hermes logs --session abc123         # Filter by session ID substring
hermes logs errors --since 30m -f    # Follow errors.log from 30m ago
hermes logs list                     # List all log files with sizes

Los archivos de registro se encuentran en ~/.hermes/logs/:6 - agent.log: toda la actividad del agente (llamadas a API, despacho de herramientas, ciclo de vida de las sesiones, INFO+) - errors.log: solo advertencias y errores (un subconjunto filtrado de agent.log) - gateway.log: actividad del gateway de mensajería (conexiones a plataformas, despacho y webhooks)

La rotación es automática mediante RotatingFileHandler de Python; busca agent.log.1, agent.log.2, etc.6

hermes doctor: diagnósticos

hermes doctor [--fix] es el primer comando que debes ejecutar cuando algo falla. Comprueba la validez de la configuración, la presencia de dependencias, la disponibilidad de claves de API y el estado de los servicios, y puede intentar reparaciones automáticas mediante --fix.6

Para compartir diagnósticos con otra persona, usa hermes dump: produce un resumen compacto en texto sin formato con las claves de API ocultas, listo para pegar en una incidencia de GitHub o en un hilo de Discord.6


Comandos slash

Los comandos slash se ejecutan dentro de una sesión de chat activa (CLI o plataforma de mensajería). Se procesan desde un COMMAND_REGISTRY compartido en hermes_cli/commands.py, por lo que la mayoría funciona de forma idéntica en todas las interfaces.9

Control de sesiones

Comando Descripción
/new (alias /reset) Inicia una sesión nueva
/clear Limpia la pantalla e inicia una sesión nueva
/history Muestra el historial de la conversación
/save Guarda la conversación actual
/retry Reintenta el último mensaje
/undo Elimina el último intercambio entre el usuario y el asistente
/title <name> Establece un título para la sesión actual
/compress Comprime manualmente el contexto de la conversación
/rollback [number] Enumera o restaura checkpoints del sistema de archivos
/stop Finaliza todos los procesos en segundo plano que estén en ejecución
/status Muestra información sobre la sesión, el modelo, los tokens y el contexto; desde la serie de versiones v0.20.5 también presenta el modo de razonamiento, las aprobaciones pendientes y el uso del contexto4035
/queue <prompt> Pone un prompt en cola para el siguiente turno. Ojo: tanto /queue como /quit reclaman /q; prevalece el último registro y, en la práctica, /q se resuelve como /quit. Escribe siempre /queue de forma explícita.9
/resume [name] Reanuda una sesión previamente nombrada
/statusbar (alias /sb) Activa o desactiva la barra de estado del contexto y el modelo
/background <prompt> (alias /bg) Ejecuta un prompt en una sesión separada en segundo plano
/btw <question> Pregunta secundaria efímera (sin herramientas y no se conserva)
/plan [request] Carga el skill plan incluido para elaborar un plan en lugar de ejecutarlo
/branch [name] (alias /fork) Crea una rama de la sesión actual
/goal <target> Fija al agente en un objetivo para que se mantenga enfocado entre turnos. El patrón de bucle de Ralph como primitiva de primera clase. Presupuesto de turnos configurable. Incorporado en v0.13.0.18
/subgoal <criterion> Agrega criterios de éxito a un /goal activo sin reiniciar el bucle. Incorporado en v0.14.0.19
/handoff <target> Transfiere la sesión activa —mensajes, llamadas a herramientas y contexto— a otro modelo, personalidad o profile. Incorporado en v0.14.0.19
/worktree [new [name]\|list\|prune [--dry-run]] Inspecciona, crea o recupera git worktrees aislados sin salir de la sesión. new crea un worktree en .worktrees/ dentro del repositorio y traslada allí la sesión; list los enumera; prune realiza la misma recuperación supervisada que hermes worktree prune y, según la documentación, «nunca modifica el árbol donde se ejecuta la sesión»27

Configuración y modelo

Comando Descripción
/config Muestra la configuración actual
/model [model-name] Muestra o cambia el modelo actual
/provider Muestra los proveedores disponibles y el proveedor actual
/personality [name] Establece una capa de personalidad
/verbose Alterna entre los modos de visualización del progreso de las herramientas
/reasoning Administra el esfuerzo de razonamiento y su visualización. v0.19.0 agrega los niveles de esfuerzo max y ultra y hace que /reasoning se aplique únicamente a la sesión, además de admitir anulaciones de esfuerzo por modelo y por posición de MoA en la configuración50
/skin Muestra o cambia la apariencia o el tema de la interfaz
/voice [on\|off\|tts\|status] Activa o desactiva el modo de voz de CLI
/yolo Activa o desactiva el modo YOLO (omite las solicitudes de aprobación). Desde v0.19.0, las reglas de denegación definidas por el usuario siguen bloqueando los comandos coincidentes incluso en el modo YOLO50
/fast Activa o desactiva Fast Mode: procesamiento prioritario para modelos de OpenAI y Anthropic (v0.9.0+)16
/debug Ejecuta diagnósticos rápidos en todas las plataformas (v0.9.0+)16
/subscription Administra tu plan de Nous Portal desde la terminal: consulta el plan y la asignación restante, previsualiza el costo de cambiar a un plan superior o inferior y aplica el cambio con opción de deshacerlo (v0.19.0+)50
/topup Agrega crédito a tu saldo de Nous Portal sin salir de la terminal (v0.19.0+)50

El comando /model es la herramienta principal para cambiar de proveedor durante una sesión:9

/model                              # Show current model and options
/model claude-sonnet-4              # Switch model (auto-detect provider)
/model zai:glm-5                    # Switch provider:model
/model custom:qwen-2.5              # Use model on custom endpoint
/model custom                       # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5        # Named custom provider
/model openrouter:anthropic/claude-sonnet-4   # Back to cloud

v0.19.0 agrega /model --once, una anulación del modelo durante un solo turno que restablece automáticamente el modelo anterior después de la respuesta.50 Desde la serie de versiones v0.20.5, el selector de /model también admite búsqueda difusa: filtra las opciones a medida que escribes.2335

Herramientas, skills e información

Comando Descripción
/tools [list\|disable\|enable] [name...] Administra las herramientas de la sesión actual
/toolsets Enumera los toolsets disponibles
/browser [connect\|disconnect\|status] Administra la conexión CDP local de Chrome
/skills Busca, instala, inspecciona o administra skills
/cron Administra las tareas programadas
/reload-mcp Vuelve a cargar los servidores MCP desde config.yaml
/plugins Enumera los plugins instalados
/help Muestra todos los comandos
/usage Muestra el uso de tokens, el costo y la duración
/insights Muestra análisis de uso de los últimos 30 días
/platforms Muestra el estado de las plataformas de mensajería
/profile Muestra el nombre y el directorio principal del profile activo
/palette Abre la paleta de comandos con búsqueda difusa (también Ctrl+P), que permite buscar de esta forma cualquier comando y skill. Se incorporó en la serie de versiones v0.20.54035

Comandos slash dinámicos de skills

Cada skill instalado se expone automáticamente como un comando slash:9

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw       # Just the skill name loads it and lets the agent ask what you need

Desde v0.19.0, las invocaciones de skills mediante comandos slash se pueden apilar: /skill-a /skill-b do XYZ carga ambos skills en orden dentro de un mismo turno, con autocompletado y texto predictivo para los nombres encadenados.50

También puedes definir comandos rápidos en config.yaml que asignen un nombre corto a un prompt más largo:9

quick_commands:
  review: "Review my latest git diff and suggest improvements"
  deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
  morning: "Check my calendar, unread emails, and summarize today's priorities"

Después, escribe /review, /deploy o /morning en CLI.

Coincidencia por prefijo

Los comandos admiten coincidencias por prefijo: al escribir /h, se resuelve como /help; /mod se resuelve como /model. Cuando un prefijo es ambiguo, prevalece el primer registro según el orden del registro. Los nombres completos de los comandos y los alias registrados siempre tienen prioridad sobre las coincidencias por prefijo.9

Comandos específicos de plataformas de mensajería

Algunos comandos solo funcionan en plataformas de mensajería (Telegram, Discord, Slack, WhatsApp, Signal, correo electrónico y Home Assistant):9

  • /status — muestra información de la sesión (ya no es exclusivo de las plataformas de mensajería; consulta Control de sesiones)
  • /sethome (alias /set-home) — marca el chat actual como página de inicio de la plataforma
  • /approve [session|always] — aprueba un comando peligroso pendiente
  • /deny [reason] — rechaza un comando peligroso pendiente. Desde v0.19.0, /deny <reason> transmite al agente el motivo de tu rechazo para que corrija el rumbo en lugar de volver a intentarlo a ciegas50
  • /update — actualiza Hermes Agent a la versión más reciente
  • /commands [page] — permite explorar todos los comandos y skills por páginas

Algunos, además, son exclusivos de CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9


Herramientas y toolsets

Hermes incluye un amplio registro de herramientas integradas que abarca búsquedas web, automatización del navegador, ejecución en terminal, edición de archivos, memoria, delegación, entrenamiento por refuerzo, entrega de mensajes, integración con Home Assistant y mucho más.10 Las herramientas se organizan en toolsets lógicos que pueden habilitarse o deshabilitarse en cada plataforma.

Categorías generales

Categoría Ejemplos Descripción
Web web_search, web_extract Buscar en la web y extraer el contenido de páginas
Terminal y archivos terminal, process, read_file, patch Ejecutar comandos y manipular archivos
Navegador browser_navigate, browser_snapshot, browser_vision Automatización interactiva del navegador mediante texto y visión
Multimedia vision_analyze, video_analyze, video_generate, image_generate, text_to_speech Análisis y generación multimodales. video_analyze utiliza Gemini como opción principal y ofrece compatibilidad ampliable con proveedores multimodales compatibles (v0.13.0+). La versión v0.14.0 incorpora un sistema unificado de video_generate con backends de proveedores intercambiables y envía los píxeles sin procesar mediante vision_analyze cuando el modelo activo admite visión.1819
Orquestación de agentes todo, clarify, execute_code, delegate_task Planificación, aclaraciones, ejecución de código y delegación en subagentes
Uso de la computadora computer_use Control del escritorio mediante el backend cua-driver; la versión v0.14.0 permite utilizarlo con proveedores distintos de Anthropic que admitan visión.19
Memoria y recuperación memory, session_search Memoria persistente y búsqueda de sesiones
Automatización y entrega cronjob, send_message Tareas programadas y mensajería saliente
Integraciones ha_*, herramientas de MCP, rl_* Home Assistant, MCP y entrenamiento por refuerzo

Entre los nombres habituales de toolsets se encuentran web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant y rl.10

Administración de herramientas

hermes chat --toolsets "web,terminal"       # Use specific toolsets
hermes tools                                # Interactive per-platform tool config
hermes tools --summary                      # Print enabled-tools summary

También puedes activar o desactivar herramientas durante una sesión mediante /tools disable <name> y /tools enable <name>. Esto reinicia la sesión para que el nuevo conjunto de herramientas entre en vigor.9

Backends de terminal

La herramienta de terminal incluye siete backends de ejecución integrados y, desde la versión v0.20.6, este conjunto puede ampliarse mediante plugins, al igual que el selector de proveedores (consulta más adelante):1024

Backend Caso de uso
local Ejecutar en tu computadora (opción predeterminada): desarrollo y tareas de confianza
docker Contenedores aislados: seguridad y reproducibilidad
ssh Servidor remoto: entorno aislado que mantiene al agente alejado de su propio código
singularity Contenedores de HPC: computación en clústeres sin privilegios de administrador
modal Ejecución sin servidor en la nube
daytona Espacio de trabajo aislado en la nube: entorno persistente de desarrollo remoto
vercel_sandbox MicroVM en la nube con Vercel Sandbox: ejecución en la nube con persistencia del sistema de archivos respaldada por instantáneas. Instala hermes-agent[vercel], establece terminal.vercel_runtime (node24, node22 o python3.13) y autentícate con VERCEL_TOKEN, VERCEL_PROJECT_ID y VERCEL_TEAM_ID; la raíz predeterminada del espacio de trabajo remoto es /vercel/sandbox24

Cambia de backend con hermes config set terminal.backend <name> o en config.yaml:

terminal:
  backend: docker      # or: local, ssh, singularity, modal, daytona, vercel_sandbox
  cwd: "."             # Working directory
  timeout: 180         # Command timeout in seconds

Backends mediante plugins (v0.20.6+). Los proveedores externos de entornos aislados ya no necesitan integrarse en el repositorio principal: un plugin registra un TerminalEnvironmentProvider al cargarse mediante PluginContext.register_terminal_environment_provider, y el nombre registrado puede seleccionarse mediante terminal.backend exactamente como si fuera una opción integrada. Los nombres integrados están reservados —el registro rechaza cualquier proveedor cuyo nombre coincida con un backend incluido en el repositorio— y un backend registrado participa automáticamente en todas las interfaces principales (el selector de backends de hermes setup, el estado de las comprobaciones del panel, las verificaciones de hermes doctor, la gestión de rutas y directorios de trabajo de los contenedores y la eliminación de secretos), porque el núcleo consulta el registro en cada punto de clasificación en lugar de utilizar una lista de nombres codificada de forma fija.32

Backend SSH (recomendado por seguridad, ya que el agente no puede modificar su propio código):10

terminal:
  backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Backend Docker:

terminal:
  backend: docker
  docker_image: python:3.11-slim

Recursos de contenedores (se aplica a docker, singularity, modal y daytona):10

terminal:
  container_cpu: 1
  container_memory: 5120          # MB (default 5GB)
  container_disk: 51200           # MB (default 50GB)
  container_persistent: true      # Persist filesystem across sessions

Con container_persistent: true, los paquetes instalados, los archivos y la configuración se conservan entre sesiones.10

Todos los backends de contenedores incorporan medidas de seguridad reforzadas: sistema de archivos raíz de solo lectura (Docker), eliminación de todas las capacidades de Linux excepto DAC_OVERRIDE, CHOWN y FOWNER, bloqueo de la elevación de privilegios, límites de PID (256 procesos), aislamiento completo mediante espacios de nombres y espacio de trabajo persistente mediante volúmenes.10

Procesos en segundo plano

La herramienta de terminal admite la ejecución en segundo plano con administración explícita de procesos:10

terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

process(action="list")                            # Show all running processes
process(action="poll", session_id="proc_abc123")  # Check status
process(action="wait", session_id="proc_abc123")  # Block until done
process(action="log", session_id="proc_abc123")   # Full output
process(action="kill", session_id="proc_abc123")  # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

El modo PTY (pty=true) permite utilizar herramientas interactivas de CLI, como Codex y Claude Code.10

Sudo

Si un comando necesita sudo, Hermes te solicita la contraseña y la almacena en caché durante la sesión. También puedes establecer SUDO_PASSWORD en ~/.hermes/.env.10


Kanban multiagente (v0.13.0+)

La versión v0.13.0 convierte la colaboración multiagente en una capacidad fundamental: un tablero Kanban persistente que registra las tareas, su estado y la identidad de cada trabajador entre agentes y después de los reinicios.18 El tablero permite que un enjambre de trabajadores de Hermes termine realmente el trabajo en vez de quedar paralizado por transferencias fallidas.

Mecanismo Qué hace
Señales de actividad Cada trabajador emite señales mientras tiene asignada una tarea. Si falta una señal, el trabajador se marca como sospechoso y la tarea queda libre para que otro la reclame.
Recuperación Otro trabajador puede retomar una tarea abandonada con todo su estado y los resultados parciales anteriores.
Detección de zombis Los trabajadores que finalizan sin marcar una tarea como completada quedan bloqueados automáticamente y no pueden reclamar nuevos trabajos, lo que evita que el enjambre acumule identidades inactivas.
Filtro de alucinaciones Si un resultado no supera el filtro, la tarea vuelve al tablero con el motivo indicado en lugar de marcarse como completada.
max_retries por tarea Permite reemplazar el límite predeterminado de reintentos para una tarea que sabes que es susceptible a fallos.
Tableros para varios proyectos Un mismo directorio principal de Hermes puede alojar varios tableros independientes.

El tablero Kanban se complementa de forma natural con /goal (el bucle Ralph con objetivo fijo) para definir el objetivo y con la herramienta delegate_task existente para generar trabajadores. El resultado es un patrón de enjambre en el que cada agente comparte una única fuente de verdad sobre qué hacer después, quién lo está haciendo y qué tareas están bloqueadas.

¿Qué es un enjambre de Hermes?

Un enjambre consiste en varios trabajadores de Hermes que se ejecutan en paralelo sobre un mismo tablero Kanban compartido. No es un subsistema independiente que debas habilitar: es una posibilidad que ofrece el tablero. Este proporciona lo único que los agentes paralelos no pueden proporcionarse por sí mismos: una respuesta única y autoritativa a ¿qué debería tomar a continuación y ya hay alguien trabajando en ello?

La versión v0.15.0 convirtió este patrón en una topología compatible mediante la incorporación de una topología de enjambre para coordinar trabajadores en paralelo, la descomposición automática de un objetivo general en subtareas, la selección de modelos por tarea, las tareas programadas y la administración de worktrees, para que los trabajadores paralelos no entren en conflicto en el mismo checkout.53

Problema en una configuración multiagente básica Qué hace el tablero en su lugar
Dos trabajadores toman la misma tarea Se reclama la propiedad de la tarea y se registra la identidad del trabajador
Un trabajador se detiene a mitad de una tarea y el trabajo desaparece Las señales de actividad caducan y la tarea se recupera con los resultados parciales anteriores
Un trabajador que falló sigue «reteniendo» tareas indefinidamente La detección de zombis le impide reclamar nuevos trabajos
Un único modelo costoso para todas las subtareas Selección de modelos por tarea: modelos económicos para subtareas mecánicas
Trabajadores paralelos que editan los mismos archivos La administración de worktrees aísla el checkout de cada trabajador

En la práctica, dale un objetivo al enjambre, deja que la descomposición automática lo divida en tareas del tablero y permite que los trabajadores las reclamen, las ejecuten y devuelvan los resultados. El límite de reintentos se configura por tarea (max_retries), de modo que una subtarea susceptible a fallos no consuma la tolerancia de toda la ejecución. Como el tablero es persistente, el enjambre sobrevive a los reinicios: los trabajadores vuelven a conectarse y reanudan sus labores con el mismo estado.

Un enjambre solo puede ser tan bueno como su descomposición. El tablero coordina a los trabajadores, pero no convierte un objetivo mal dividido en uno bien planteado. Las tareas que compartan un estado oculto seguirán entrando en conflicto, con worktrees o sin ellos.


Sistema de skills

Los skills son documentos de conocimiento bajo demanda que el agente puede cargar cuando los necesita. Siguen un patrón de divulgación progresiva para minimizar el uso de tokens y son compatibles con el estándar abierto de agentskills.io.11

Todos los skills se encuentran en ~/.hermes/skills/, el directorio principal y la fuente de referencia. En una instalación nueva, los skills incluidos se copian desde el repositorio. Los skills instalados desde el hub y los creados por el agente también se guardan aquí.11

Divulgación progresiva

Level 0: skills_list()            [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)         Full content + metadata                 (varies)
Level 2: skill_view(name, path)   Specific reference file                 (varies)

El agente solo carga el contenido completo del skill cuando realmente lo necesita.11

Formato de SKILL.md

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]      # Optional — restrict to OS platforms
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]     # Conditional activation
    requires_toolsets: [terminal]    # Conditional activation
    config:                          # Config.yaml settings
      - key: my.setting
        description: "What this controls"
        default: "value"
        prompt: "Prompt for setup"
---

# Skill Title

## When to Use
Trigger conditions for this skill.

## Procedure
1. Step one
2. Step two

## Pitfalls
- Known failure modes and fixes

## Verification
How to confirm it worked.

Activación condicional

Los skills pueden mostrarse u ocultarse según las herramientas disponibles. Esto resulta especialmente útil para los skills de respaldo: alternativas gratuitas o locales que solo deben aparecer cuando una herramienta prémium no está disponible:11

Campo Comportamiento
fallback_for_toolsets El skill se oculta cuando los toolsets indicados están disponibles
fallback_for_tools Igual, pero comprueba herramientas individuales
requires_toolsets El skill se oculta cuando los toolsets indicados no están disponibles
requires_tools Igual, pero comprueba herramientas individuales

Ejemplo: el skill integrado duckduckgo-search usa fallback_for_toolsets: [web]. Cuando tienes configurada FIRECRAWL_API_KEY, el toolset web está disponible y el agente usa web_search; el skill de DuckDuckGo permanece oculto. Sin la clave de API, el skill de DuckDuckGo aparece automáticamente como alternativa.11

Skills administrados por el agente

El agente puede crear, actualizar y eliminar sus propios skills mediante la herramienta skill_manage. Esta es la memoria procedimental del agente: cuando descubre cómo realizar un flujo de trabajo complejo, guarda el procedimiento como un skill para reutilizarlo en el futuro.11

Cuándo crea skills el agente:11 - Después de completar correctamente una tarea compleja (5 o más llamadas a herramientas) - Cuando encontró errores o caminos sin salida y descubrió el procedimiento correcto - Cuando el usuario corrigió su enfoque - Cuando descubrió un flujo de trabajo complejo

Acciones:11

Acción Uso
create Crear un skill desde cero
patch Realizar correcciones específicas (opción preferida, ya que optimiza el uso de tokens)
edit Realizar reestructuraciones importantes
delete Eliminar un skill por completo
write_file Agregar o actualizar archivos auxiliares
remove_file Eliminar un archivo auxiliar

Hub de skills

Explora, busca, instala y administra skills de registros en línea:611

hermes skills browse                          # Browse all hub skills
hermes skills browse --source official        # Browse official optional skills
hermes skills search kubernetes               # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s       # Preview before installing
hermes skills install openai/skills/k8s       # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check                           # Check for upstream updates
hermes skills update                          # Reinstall changed hub skills
hermes skills audit                           # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo       # Add custom GitHub source

Fuentes integradas del hub:11

Fuente Ejemplo Notas
official official/security/1password Skills opcionales distribuidos con Hermes (confianza integrada)
skills-sh skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Directorio público de skills de Vercel
well-known well-known:https://mintlify.com/docs/.well-known/skills/mintlify Descubrimiento mediante URL en sitios que publican /.well-known/skills/index.json
github openai/skills/k8s Instalaciones directas desde un repositorio o una ruta de GitHub
clawhub Mercado de skills de terceros
lobehub Conversión del catálogo de agentes de LobeHub
browse-sh Fuente de skills de Browserbase

Taps predeterminados de GitHub (puedes explorarlos sin configuración): openai/skills, anthropics/skills, huggingface/skills, NVIDIA/skills, garrytan/gstack. La fuente claude-marketplace se eliminó en la versión 0.20.0; browse-sh la reemplazó en la lista de fuentes.1149

Análisis de seguridad

Todos los skills instalados desde el hub pasan por un analizador de seguridad que comprueba posibles filtraciones de datos, inyecciones de prompts, comandos destructivos, indicios de riesgos en la cadena de suministro y otras amenazas.11

Niveles de confianza:11

Nivel Fuente Política
builtin Se distribuye con Hermes Siempre se considera confiable
official optional-skills/ en el repositorio Confianza integrada, sin advertencias sobre contenido de terceros
trusted Registros confiables (openai/skills, anthropics/skills) Política más permisiva
community Todo lo demás Los hallazgos que no sean peligrosos pueden ignorarse con --force; los veredictos dangerous permanecen bloqueados

--force puede ignorar los bloqueos de políticas que no sean peligrosos para los skills de la comunidad. No permite ignorar un veredicto dangerous del análisis.11

Directorios externos de skills

Puedes indicarle a Hermes que analice directorios de skills adicionales junto con el directorio local:11

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Las rutas admiten la expansión de ~ y la sustitución de variables de entorno ${VAR}. Los directorios externos son de solo lectura: cuando el agente crea o edita un skill, siempre escribe en ~/.hermes/skills/. Si existe un skill con el mismo nombre en ambos lugares, tiene prioridad el local.11


Memoria persistente

Hermes cuenta con una memoria limitada y seleccionada que persiste entre sesiones. Dos archivos conforman la memoria del agente, ambos almacenados en ~/.hermes/memories/:12

Archivo Propósito Límite de caracteres
MEMORY.md Notas personales del agente: datos del entorno, convenciones y aprendizajes 2.200 caracteres (~800 tokens)
USER.md Perfil del usuario: preferencias, estilo de comunicación y expectativas 1.375 caracteres (~500 tokens)

Ambos se incorporan al prompt del sistema como una instantánea inmutable al inicio de la sesión. El agente administra su propia memoria mediante la herramienta memory: add, replace o remove.12

Patrón de instantánea inmutable: la incorporación al prompt del sistema se captura una sola vez al inicio de la sesión y nunca cambia durante ella. Esto es intencional, ya que conserva la caché de prefijo de LLM para mejorar el rendimiento. Los cambios realizados durante una sesión se guardan de inmediato en el disco, pero no aparecen en el prompt del sistema hasta la sesión siguiente.12

Qué guardar

Guarda lo siguiente (el agente lo hace de forma proactiva):12 - Preferencias del usuario: «Prefiero TypeScript en lugar de JavaScript» → user - Datos del entorno: «Este servidor ejecuta Debian 12 con PostgreSQL 16» → memory - Correcciones: «No uses sudo para los comandos de Docker; el usuario pertenece al grupo docker» → memory - Convenciones: «El proyecto usa tabulaciones, líneas de 120 caracteres y cadenas de documentación al estilo de Google» → memory - Trabajo terminado: «Se migró la base de datos de MySQL a PostgreSQL el 15 de enero de 2026» → memory

Omite lo siguiente:12 - Información trivial u obvia - Datos fáciles de volver a descubrir - Volcados de datos sin procesar (son demasiado grandes para la memoria) - Información efímera específica de una sesión - Información que ya se encuentra en los archivos de contexto

Búsqueda de sesiones

Además de MEMORY.md y USER.md, el agente puede buscar en sus conversaciones anteriores mediante la herramienta session_search. Todas las sesiones de CLI y mensajería se almacenan en SQLite (~/.hermes/state.db) con búsqueda de texto completo FTS5. Las consultas devuelven conversaciones anteriores relevantes, resumidas con Gemini Flash.12

Función Memoria persistente Búsqueda de sesiones
Capacidad ~1.300 tokens en total Ilimitada (todas las sesiones)
Velocidad Instantánea (en el prompt del sistema) Requiere búsqueda y resumen con LLM
Caso de uso Datos clave siempre disponibles Encontrar conversaciones anteriores específicas
Administración Seleccionada manualmente por el agente Automática: se almacenan todas las sesiones
Costo en tokens Fijo por sesión (~1.300 tokens) Bajo demanda

Proveedores de memoria externos

Para disponer de una memoria persistente más profunda que la ofrecida por MEMORY.md y USER.md, Hermes incluye ocho complementos de proveedores de memoria externos: Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover y Supermemory.12

Los proveedores externos funcionan junto con la memoria integrada (nunca la sustituyen) y añaden funciones como grafos de conocimiento, búsqueda semántica, extracción automática de datos y modelado de usuarios entre sesiones:612

hermes memory setup         # Pick a provider and configure it
hermes memory status        # Check what's active
hermes memory off           # Disable external provider (built-in only)

Solo puede estar activo un proveedor externo a la vez. La memoria integrada siempre permanece activa.6

Reanudación automática de sesiones (v0.13.0+)

La versión v0.13.0 permite recuperarse de una interrupción mientras el agente está trabajando. El gateway reanuda automáticamente las sesiones interrumpidas después de un reinicio; los reinicios mediante /update conservan el estado de la sesión durante la actualización; y, durante el desarrollo, las recargas de archivos fuente mantienen activa la sesión actual en vez de forzar una nueva.18 En la práctica, esto significa que las tareas prolongadas del gateway y los trabajos ejecutados mediante cron ya no reinician su ventana de contexto cuando se reinicia el proceso.

Checkpoints v2 (v0.13.0+)

En la versión v0.13.0, la persistencia del estado se rediseñó con un almacén único que incorpora depuración real, límites de seguridad para el disco y ningún repositorio paralelo huérfano.18 El sistema de checkpoint anterior acumulaba estados en el disco en los profiles de larga duración; el almacén v2 establece un límite estricto para el almacenamiento local de checkpoints y elimina el registro duplicado que provocaba ese crecimiento. No es necesario cambiar la configuración de cara al usuario; la próxima escritura de un checkpoint utilizará la ruta de v2.


Personalidad y SOUL.md

SOUL.md es la identidad principal de una instancia de Hermes. Ocupa la posición n.º 1 en el prompt del sistema y reemplaza la identidad predeterminada codificada directamente.13

Hermes crea automáticamente un archivo SOUL.md predeterminado en ~/.hermes/SOUL.md (o en $HERMES_HOME/SOUL.md para profiles personalizados). Los archivos existentes del usuario nunca se sobrescriben. Hermes solo carga SOUL.md desde HERMES_HOME; no lo busca en el directorio de trabajo actual. Esto hace que la personalidad sea predecible en todos los proyectos.13

Qué incluir en SOUL.md

Úsalo para definir pautas duraderas de voz y personalidad:13 - tono - estilo de comunicación - grado de franqueza - estilo de interacción predeterminado - aspectos estilísticos que deben evitarse - cómo debe manejar Hermes la incertidumbre, los desacuerdos y la ambigüedad

Úsalo menos para:13 - instrucciones puntuales de un proyecto - rutas de archivos - convenciones del repositorio - detalles temporales del flujo de trabajo

Estos elementos corresponden a AGENTS.md, no a SOUL.md.

SOUL.md frente a AGENTS.md

Esta es la distinción más importante en la administración de la identidad de Hermes:13

SOUL.md — identidad, tono, estilo, valores predeterminados de comunicación y comportamiento relacionado con la personalidad.

AGENTS.md — arquitectura del proyecto, convenciones de código, preferencias de herramientas, flujos de trabajo específicos del repositorio, comandos, puertos, rutas y notas de implementación.

Una regla útil: si debe acompañarte a todas partes, corresponde a SOUL.md. Si pertenece a un proyecto, corresponde a AGENTS.md.13

Personalidades integradas

Hermes incluye personalidades integradas que puedes activar con /personality:1333

Nombre Descripción
helpful Asistente amistoso y de uso general
concise Respuestas breves y directas
technical Especialista técnico detallado y preciso
creative Pensamiento innovador y poco convencional
teacher Educador paciente que ofrece ejemplos claros
kawaii Expresiones adorables, destellos y entusiasmo
catgirl Neko-chan con expresiones felinas
pirate Capitán Hermes, bucanero experto en tecnología
shakespeare Prosa de bardo con un toque dramático
surfer Vibra relajada de surfista
noir Narración de detective duro
uwu Máxima ternura con lenguaje uwu
philosopher Reflexión profunda en cada consulta
hype ENERGÍA AL MÁXIMO

Personalidades personalizadas en config.yaml:13

agent:
  personalities:
    codereviewer: >
      You are a meticulous code reviewer. Identify bugs, security issues,
      performance concerns, and unclear design choices. Be precise and constructive.

Después, actívala con /personality codereviewer.

SOUL.md frente a /personality

SOUL.md define la voz de referencia. /personality es una capa adicional para la sesión.13 Mantén un SOUL.md predeterminado y pragmático; después, usa /personality teacher para una conversación educativa o /personality creative para una lluvia de ideas.


Nous Tool Gateway (v0.10.0+)

A partir de Hermes Agent v0.10.0 (2026-04-16), los suscriptores de pago de Nous Portal obtienen acceso administrado a un conjunto seleccionado de herramientas mediante sus credenciales existentes de Portal, sin tener que administrar claves API adicionales.55 Hermes CLI sigue teniendo licencia MIT y siendo completamente de código abierto. Lo que cambió es que ahora tu autenticación de Portal desbloquea más que la inferencia de modelos.

La vía más rápida para comenzar es hermes setup --portal, que el README presenta como «Un solo comando desde una instalación nueva»: inicia sesión mediante OAuth, establece Nous como proveedor y activa Tool Gateway. A partir de ese momento, hermes portal administra la relación. hermes portal login (la opción predeterminada cuando no se indica ningún subcomando) ejecuta el mismo proceso de incorporación en un solo paso; hermes portal info muestra el «resumen de autenticación de Portal y enrutamiento de Tool Gateway»; hermes portal open abre la página de suscripción en tu navegador predeterminado; hermes portal tools enumera las herramientas del gateway e indica cuáles se enrutan mediante Nous. hermes portal status se mantiene como un alias oculto de compatibilidad con versiones anteriores de info, y la referencia de CLI en la documentación de esa etiqueta todavía denomina al subcomando status, por lo que ambos funcionan.28

Qué incluye el gateway

Herramienta Proveedor Caso de uso
Búsqueda web Firecrawl Recuperación de información actualizada para agentes
Generación de imágenes FAL / FLUX 2 Pro Generación de imágenes en línea sin configurar una clave de FAL
Texto a voz OpenAI TTS Salida de voz en gateways de mensajería
Automatización del navegador Browser Use Navegación y extracción de datos sin interfaz gráfica

Cómo funciona

El gateway se habilita por separado para cada herramienta mediante un nuevo campo de configuración use_gateway. Si tienes credenciales de Portal en hermes auth y habilitas el gateway para una herramienta, las llamadas de esa herramienta se enrutan mediante Portal. De lo contrario, se usa tu clave directa de API (si está disponible).

# config.yaml — per-tool gateway opt-in
tools:
  web_search:
    provider: firecrawl
    use_gateway: true          # route via Nous Portal subscription
  image_generation:
    provider: fal
    use_gateway: true

Precedencia durante la ejecución: cuando el gateway está disponible y una herramienta tiene use_gateway: true, Hermes da preferencia al gateway, incluso si también tienes configurada una clave directa de API. Esto es importante para la facturación: las llamadas realizadas mediante el gateway se descuentan de tu suscripción de Portal, no del saldo de tu clave directa de API.

Cómo habilitar el gateway

hermes model                      # select Nous Portal (OAuth flow)
hermes tools                      # per-platform tool picker integrates gateway tools
hermes status                     # confirms gateway/subscription detection

La suscripción se detecta automáticamente a partir de las credenciales de OAuth de Portal que ya tienes en hermes auth; no hay un paso de inicio de sesión independiente. Desde v0.19.0 también puedes administrar la suscripción desde una sesión: /subscription muestra tu plan y el saldo restante, ofrece una vista previa del costo exacto de una mejora o de cuándo entra en vigor un cambio a un plan inferior, y aplica el cambio con avisos de modificaciones programadas y la posibilidad de deshacerlo; /topup agrega crédito. La aplicación de escritorio cuenta con una pestaña equivalente de configuración de facturación.50

Precios y acceso

Los precios y nombres de los niveles se publican en la página de precios de Nous Portal (https://portal.nousresearch.com/pricing). Esta guía no enumera los niveles porque corresponden al producto Portal, no a Hermes CLI, y cambian independientemente de las versiones de Hermes. Regístrate en https://portal.nousresearch.com/ y consulta la página de precios para conocer los niveles vigentes.

Aviso de obsolescencia

  • La variable de entorno HERMES_ENABLE_NOUS_MANAGED_TOOLS fue eliminada en v0.10.0. Ahora, las herramientas administradas se habilitan mediante el campo de configuración use_gateway de cada herramienta y su disponibilidad depende del estado de tu suscripción de Portal.55

Contexto: lo que esta versión no es

Hermes Agent CLI no requiere una suscripción. El proyecto sigue teniendo licencia MIT y todas sus funciones principales (CLI, skills, memoria, gateway de mensajería, cron, MCP, panel local y BYOK para todos los proveedores) funcionan de principio a fin sin pagarle a nadie. v0.10.0 agrega una opción práctica para los usuarios que ya pagan Nous Portal; no elimina nada de la opción gratuita.


Gateway de mensajería

Hermes puede ejecutarse como un proceso de gateway de larga duración que se conecta con 28 plataformas de mensajería desde un único proceso: Telegram, Discord, Slack, WhatsApp, Signal, SMS, correo electrónico, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, Photon (iMessage), WhatsApp Cloud API, WeCom Callback, Raft, IRC, ntfy, Buzz y un adaptador Webhook genérico.354171819 La cifra de 28 proviene de la tabla de comparación de plataformas de la documentación en la etiqueta v2026.8.31; por debajo de ella, gateway/config.py define 24 miembros integrados del enum Platform (incluidas entradas que no son de chat, como local, api_server, webhook, msgraph_webhook y relay) y resuelve bajo demanda cualquier otro nombre con uno de los 22 directorios de adaptadores incluidos en plugins/platforms/, por lo que contar únicamente los enums o los directorios no dará la misma cifra que la documentación.25 v0.9.0 agregó iMessage mediante BlueBubbles (registro automático de webhooks, asistente de configuración y resistencia ante fallos), además de compatibilidad nativa con WeChat mediante iLink Bot API, con el modo de devolución de llamadas de WeCom para aplicaciones empresariales.16 v0.11.0 agregó QQBot.54 v0.12.0 agregó Microsoft Teams y Tencent Yuanbao.17 v0.13.0 agregó Google Chat como la vigésima plataforma, sobre la misma arquitectura de adaptadores conectables; IRC y Microsoft Teams también se migraron al nuevo patrón de adaptadores con hooks genéricos de plugins env_enablement_fn / cron_deliver_env_var.18 v0.14.0 agrega LINE y SimpleX Chat, y completa de principio a fin la integración con Microsoft Teams mediante autenticación de Graph, un receptor de webhooks, el entorno de ejecución del pipeline y la entrega saliente.19 v0.17.0 (19 de junio de 2026) agrega iMessage sin relay mediante Photon Spectrum (OAuth con código de dispositivo mediante hermes photon login, sin necesidad de un relay de Mac/BlueBubbles), el adaptador oficial de WhatsApp Business Cloud API (que reemplaza el requisito de un proceso puente), grupos de SimpleX y archivos adjuntos nativos, además de Raft como plugin de plataforma incluido.21 Otras dos aparecen en la tabla de la documentación sin destacarse en las notas de la versión: ntfy es un canal ligero de notificaciones push basado en publicación-suscripción mediante HTTP (suscríbete a un tema desde la aplicación móvil de ntfy, envía un mensaje al tema para hablar con el agente y recibe la respuesta en tu teléfono; funciona con el servidor público ntfy.sh o con una instancia autohospedada, sin necesidad de SDK ni de un daemon), mientras que Buzz conecta Hermes con una comunidad de Buzz, la plataforma de código abierto de Block para la colaboración entre personas y agentes mediante el protocolo Nostr; para los mensajes salientes ejecuta buzz CLI y para los entrantes usa una suscripción nativa de Nostr WebSocket. Ambos se configuran mediante hermes gateway setup.25

Configuración

hermes gateway setup                # Interactive platform configuration
hermes gateway install              # Install as user service (systemd/launchd)
hermes gateway start                # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run                  # Run in foreground (debugging)

La configuración interactiva te guía para conectar cada plataforma: tokens de API, identificadores de bots, asignaciones de canales y listas de usuarios permitidos.6

Cómo fluyen los mensajes

Según la documentación de arquitectura del proyecto original:3

Platform event → Adapter.on_message() → MessageEvent
  → GatewayRunner._handle_message()
    → authorize user
    → resolve session key
    → create AIAgent with session history
    → AIAgent.run_conversation()
    → deliver response back through adapter

Todas las plataformas de mensajería pasan por el mismo bucle de conversación de AIAgent que CLI. Por eso los comandos con barra funcionan de manera idéntica en ambos lugares y una tarea cron programada en Telegram puede entregar su resultado en Discord: la diferencia entre plataformas solo existe en el extremo del flujo.3

v0.19.0 agrega enrutamiento de mensajes basado en profiles y entrega duradera. Un único gateway multiplexado que comparte un token de bot puede enrutar servidores, canales o hilos específicos hacia distintos profiles —cada uno con configuración, skills, memoria y secretos totalmente aislados— mediante una anulación GATEWAY_MULTIPLEX_PROFILES; además, una serie de mejoras de robustez evita que un profile mal configurado pueda derribar todo el gateway. Internamente, el índice de enrutamiento se trasladó a state.db (sessions.json ahora es una copia heredada opcional), y las respuestas finales se registran en un libro mayor duradero de obligaciones de entrega antes y después del envío a la plataforma: si el gateway falla cuando una respuesta ya está terminada, esta se vuelve a entregar en el siguiente arranque en lugar de perderse silenciosamente.50

v0.21.1 hace que los límites de las conversaciones solo puedan establecerse de forma explícita. El documento sobre el ciclo de vida de las sesiones en la etiqueta v2026.9.7 define el contrato en cuatro oraciones: «La inactividad y el tiempo transcurrido nunca rotan una conversación. /new y /reset crean un límite explícito; la compresión del contexto continúa administrando historiales extensos. La configuración heredada de temporizadores se ignora. El tipo de datos SessionResetPolicy existente contiene información de compatibilidad inerte, no una política de ejecución». Una suspensión explícita todavía crea un límite en el siguiente turno entrante, la recuperación respeta los límites finalizados en lugar de reabrirlos y la expulsión exclusiva de recursos permite reanudar las conversaciones. Si parece que una sesión de tu gateway «nunca caduca», ahora ese es el comportamiento previsto; rótala manualmente con /new.43

Autorización y vinculación de usuarios

hermes pairing list                    # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending

Los códigos de vinculación impiden que desconocidos hablen con tu gateway. Un usuario envía un código de vinculación desde su plataforma de mensajería; tú lo apruebas con hermes pairing approve y, a partir de ese momento, queda autorizado.6


Tareas programadas (Cron)

Hermes cuenta con un sistema cron de primera clase en el que los trabajos son tareas del agente, no comandos de shell. Cada trabajo programado se ejecuta mediante un AIAgent nuevo con el prompt configurado y skills adjuntas opcionales, y entrega los resultados a cualquier plataforma:36

hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id>         # Trigger now on the next tick
hermes cron remove <id>
hermes cron status           # Check if scheduler is running
hermes cron tick             # Run due jobs once and exit

También puedes crear uno mediante una conversación dentro de un chat de mensajería:

Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.

El agente configurará el trabajo cron mediante sus herramientas. Los trabajos se almacenan de forma persistente en JSON y sobreviven a los reinicios.3

La versión v0.21.0 incorporó memoria y criterio a los trabajos programados. Incluye cuatro mecanismos, todos verificados en la etiqueta v2026.8.31:3537

  • Continuidad. continuity=true incorpora en cada ejecución el resultado más reciente del propio trabajo, de modo que un explorador o monitor «despierta viendo lo que informó la última vez y puede eliminar duplicados y continuar desde donde quedó»; la instrucción incorporada es «evita repetir lo que ya se informó», la primera ejecución no cambia y, de forma interna, la opción se almacena como la entrada reservada self en context_from. Actívala o desactívala con hermes cron create ... --continuity y hermes cron edit <job_id> --continuity / --no-continuity.37
  • Blocs de notas persistentes. Cada trabajo dispone de un pequeño espacio KV para cursores, marcas de agua y listas de seguimiento (16 KB por valor y 64 KB por trabajo; se incorpora al prompt en cada ejecución, por lo que los límites son intencionales), que se modifica mediante hermes cron notepad <job_id> set <key> <value>, comando que el agente en ejecución invoca a través de su herramienta de terminal.37
  • Modo monitor. Un trabajo puede adjuntar una fuente económica monitor_script/monitor_url que se ejecuta primero en cada ciclo: si el resultado no cambia (se compara por bytes exactos), se omite por completo la ejecución del agente —sin llamada a LLM, sin entrega y con una ejecución silenciosa no_change—, mientras que un cambio incorpora un bloque de diferencias y ejecuta el agente con normalidad. Haz que los scripts de monitorización generen resultados estables; de lo contrario, cada ciclo parecerá un cambio.37
  • Nivel de razonamiento por trabajo y entrega a Bot Chat. --reasoning-effort fija el nivel de razonamiento de un trabajo (de none a ultra) y sustituye la configuración global y la específica del modelo durante sus ejecuciones; además, deliver=bot-chat entrega el resultado en la sesión canónica de Bot Chat de un profile como un mensaje entrante real, donde el bot «actúa sobre todo lo que requiera una acción y responde en su chat», en lugar de que una persona se limite a leer un canal.37

Integración con MCP

Hermes admite Model Context Protocol tanto como cliente como servidor:6

Como cliente — conecta Hermes a servidores MCP externos para ampliar su conjunto de herramientas:

hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name>   # Toggle individual tool selection
hermes mcp login <name>       # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all]     # Re-authenticate one OAuth server, or every one

También puedes configurarlo manualmente en config.yaml:14

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Desde la versión v0.19.0, las herramientas de MCP se presentan al modelo con la convención de nombres mcp__server__tool: cada nombre de herramienta incluye el nombre de su servidor, por lo que dos servidores que ofrecen la misma herramienta ya no entran en conflicto. Además, las notificaciones de registro de los servidores MCP aparecen en agent.log.50

La versión v0.21.1 incorpora una opción de código de dispositivo para OAuth de MCP: hermes mcp login <name> acepta --flow {browser,device}; browser es el flujo PKCE existente, mientras que device ofrece un inicio de sesión mediante código de dispositivo conforme a RFC 8628 para máquinas sin interfaz gráfica o remotas. Esta opción sustituye la configuración oauth.flow del servidor. La misma versión aplica la propiedad del profile durante todas las sesiones de OAuth, ignora las cachés dañadas de metadatos de OAuth en lugar de bloquear un servidor y retransmite OAuth de MCP para escritorio mediante callbacks locales del cliente. Ahora, -t/--toolsets también filtra cuáles de los servidores MCP configurados se inician, por lo que una invocación limitada omite el arranque en frío de los servidores que no necesita.44

La versión v0.21.0 convierte la interfaz de MCP para escritorio en un centro de control: los servidores y el catálogo se combinan en una sola página con importación mediante arrastrar y soltar de «cualquier contenido», comprobaciones de estado en segundo plano que avisan cuando la autenticación está por vencer antes de que falle una llamada a una herramienta, una capa de costos y uso de toda la flota que muestra estimaciones de tokens del esquema y el uso de cada servidor durante 30 días, además de enlaces profundos hermes:// que instalan un servidor MCP con confirmación explícita.35

Como servidor — expón las conversaciones de Hermes a otros agentes:

hermes mcp serve
hermes mcp serve -v    # Verbose

Compresión del contexto

Hermes comprime automáticamente las conversaciones largas para mantenerse dentro de la ventana de contexto del modelo. El resumidor de compresión realiza una llamada independiente a LLM; puedes dirigirla a cualquier proveedor o endpoint.4 Desde la versión v0.20.6, la política predeterminada para conservar el tramo final es lean (compression.tail_mode: lean) y, en esa etiqueta, las opciones de modelo, proveedor y endpoint del resumidor se encuentran en auxiliary.compression.*, en lugar de las antiguas compression.summary_*; las claves heredadas se migran automáticamente durante la primera carga (versión 17 de la configuración).3031

compression:
  enabled: true
  threshold: 0.50          # Compress at this % of context limit
  threshold_tokens: null   # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
  target_ratio: 0.20       # Fraction of threshold to preserve as recent tail (legacy tail mode)
  tail_mode: lean          # Tail retention: "lean" (default) or "legacy"
  protect_last_n: 20       # Min recent messages to keep uncompressed
  protect_first_n: 3       # Non-system head messages pinned across compactions

auxiliary:
  compression:
    model: ""              # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
    provider: "auto"       # "auto", "openrouter", "nous", "codex", "main", etc.
    base_url: null         # Custom OpenAI-compatible endpoint (overrides provider)

Qué determina tail_mode. legacy conserva literalmente un tramo final del tamaño indicado por target_ratio; en configuraciones con ventanas grandes o umbrales elevados, esto retiene entre 100.000 y 240.000 tokens por compresión. lean, en cambio, conserva literalmente un tramo final limitado al 2,5 % de la ventana de contexto (con un mínimo de 10.000 y un máximo de 25.000) y traslada la continuidad al resumen: un registro detallado de la sesión para la región comprimida que preserva los identificadores (una llamada al resumidor auxiliar por intento), un índice de anclas extraído mecánicamente (números de PR, SHA, rutas y cadenas de error; usa expresiones regulares y nunca paráfrasis), todos los mensajes reales del usuario citados de forma literal y un puntero de recuperación session_search para que el agente pueda volver a acceder a cualquier contenido resumido. El resultado medido en la documentación con sesiones reales de 500.000 tokens: se conservaron unos 49.000 tokens, en lugar de aproximadamente 162.000. Los resultados antiguos de herramientas dentro del tramo final de lean se reducen a anotaciones de una sola línea que incluyen un puntero de recuperación, y los valores desconocidos de tail_mode utilizan lean como alternativa.31

Opciones de proveedor:431

auxiliary.compression.provider auxiliary.compression.base_url Resultado
auto (predeterminado) sin configurar Detecta automáticamente el mejor proveedor disponible
nous / openrouter / etc. sin configurar Fuerza el uso de ese proveedor y utiliza su autenticación
cualquiera configurado Usa directamente el endpoint personalizado (se ignora el proveedor)

El modelo de resumen debe admitir una longitud de contexto al menos igual a la del modelo principal, ya que recibe toda la sección intermedia de la conversación en una sola llamada. Si su ventana es menor, la llamada falla y los turnos intermedios se descartan sin generar un resumen.431

Advertencias por presión del presupuesto

Cuando el agente trabaja en una tarea compleja con numerosas llamadas a herramientas, puede agotar su presupuesto de iteraciones (500 turnos de forma predeterminada desde la versión v0.20.0, frente a los 90 anteriores) sin darse cuenta. La presión del presupuesto advierte automáticamente al modelo:4

Umbral Nivel Lo que ve el modelo
70 % Precaución [BUDGET: 350/500. 150 iterations left. Start consolidating.]
90 % Advertencia [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.]

Tiempos de espera del streaming

La conexión de streaming de LLM dispone de dos niveles de tiempo de espera que se ajustan automáticamente para proveedores locales (localhost y direcciones IP de la red LAN):4

Tiempo de espera Predeterminado Proveedores locales Variable de entorno
Tiempo de espera de lectura del socket 120 s Aumenta automáticamente a 1800 s HERMES_STREAM_READ_TIMEOUT
Detección de streaming inactivo 180 s Se desactiva automáticamente HERMES_STREAM_STALE_TIMEOUT
Llamada a API (sin streaming) 1800 s Sin cambios HERMES_API_TIMEOUT

El tiempo de espera de lectura del socket aumenta a 30 minutos para los endpoints locales porque los LLM locales pueden tardar varios minutos en realizar el prellenado de contextos grandes antes de producir el primer token.4


Panel web local (v0.9.0+)

Un panel basado en el navegador para administrar Hermes Agent de forma local. Configura opciones, monitoriza sesiones, explora skills y administra tu gateway sin tocar archivos de configuración ni la terminal.16 Inícialo con hermes dashboard. Es la forma más sencilla de comenzar para los usuarios nuevos que prefieren una GUI.

Monitorización de procesos en segundo plano (v0.9.0+)

watch_patterns permite definir patrones que se monitorizan en la salida de los procesos en segundo plano y recibir notificaciones en tiempo real cuando coinciden.16 Puedes vigilar errores, esperar eventos específicos («escuchando en el puerto») o revisar registros de compilación, todo ello sin realizar consultas periódicas. En combinación con notify_on_complete, incorporado en la versión v0.8.0 (que envía notificaciones cuando terminan las tareas en segundo plano), Hermes ofrece ahora una capa completa de observabilidad para procesos en segundo plano.15

Context Engine conectable (v0.9.0+)

La gestión del contexto ahora es un componente conectable mediante hermes plugins. Puedes incorporar context engine personalizados que controlen lo que el agente ve en cada turno mediante filtrado, resumen o inyección de contexto específico del dominio.16 Esto desacopla la estrategia de contexto del bucle central del agente y permite personalizar el contexto para cada proyecto o dominio.

Copias de seguridad y restauración (v0.9.0+)

hermes backup crea un archivo completo de tu configuración, sesiones, skills y memoria. hermes import restaura el contenido de un archivo de copia de seguridad.16 Úsalo para migrar entre computadoras, crear instantáneas antes de realizar cambios importantes o compartir una configuración fiable con tus compañeros de equipo.

Compatibilidad con Termux y Android (v0.9.0+)

Hermes se ejecuta de forma nativa en Android mediante Termux. Las rutas de instalación adaptadas, las optimizaciones de la TUI para pantallas móviles, la compatibilidad con sistemas de voz y el comando /image funcionan directamente en el dispositivo.16

Refuerzo de la seguridad (v0.13.0+)

La versión v0.13.0 corrigió 8 problemas de seguridad P0 y modificó un valor predeterminado en beneficio del usuario.18 La versión v0.14.0 le sigue con la corrección de otros 12 problemas P0 y 50 P1, entre ellos el refuerzo contra ataques de fuerza bruta a sudo y el uso de sudo mediante la entrada estándar, correcciones de mecanismos para evadir la detección de comandos peligrosos, el saneamiento de errores de herramientas antes de reinyectarlos en el modelo, la autenticación de API del plugin del panel, la protección del centro de skills frente a SSRF y el análisis de avisos de seguridad de la cadena de suministro durante la instalación.19

Corrección Qué cambió
Ocultamiento de secretos activado de forma predeterminada Antes debía activarse manualmente. Los registros y las cargas de hermes debug share ocultan los secretos, salvo que se desactive explícitamente esta protección. La versión v0.12.0 había desactivado el ocultamiento de forma predeterminada tras recibir informes de corrupción de cargas útiles; v0.13.0 vuelve a activarlo como la opción de referencia más segura.
Elusión mediante mensajes directos entre servidores de Discord (CVSS 8.1) Las listas de roles permitidos de Discord ahora están restringidas a cada servidor, lo que cierra una vía por la que el rol de un usuario en un servidor autorizaba mensajes directos en todos ellos.
Restricciones predeterminadas de WhatsApp El adaptador de WhatsApp rechaza de forma predeterminada a personas desconocidas y nunca responde en el chat con uno mismo.
Ventana TOCTOU de MCP OAuth Se corrigió una condición de carrera al guardar credenciales en los flujos de MCP OAuth.
TOCTOU de auth.json en CLI Se corrigió una ventana TOCTOU análoga en el componente que escribe las credenciales del almacén de autenticación de CLI.
Protección mínima contra SSRF en el navegador El enrutamiento híbrido aplica una protección mínima contra SSRF hacia metadatos de la nube para bloquear solicitudes que intenten acceder a 169.254.169.254 y direcciones equivalentes.
Análisis de inyección de prompts en cron Los prompts ensamblados, incluido el contenido de los skills cargados, se analizan en busca de inyecciones de prompts antes de ejecutar la tarea cron.
Ocultamiento en hermes debug share Las cargas para compartir información de depuración ocultan el contenido de los registros al momento de subirlos, no solo al escribirlos.

Si mantienes una implementación de Hermes, considera v0.13.0 y v0.14.0 actualizaciones relevantes para la seguridad, no simples lanzamientos de funciones. La versión v0.13.0 corrige la elusión entre servidores de Discord y dos ventanas TOCTOU; v0.14.0 añade otra ronda de refuerzo que abarca el manejo de sudo, la reinyección de errores de herramientas, los APIs de plugins, la protección del centro de skills frente a SSRF y los avisos de seguridad de las dependencias.

v0.21.0 añade una cuarta ronda. Las escrituras en archivos protegidos de instrucciones del agente —AGENTS.md, CLAUDE.md, SOUL.md, .cursorrules, skills y almacenes de memoria— ahora siempre requieren aprobación, de modo que un agente afectado por una inyección de prompts no pueda reescribir discretamente sus propias órdenes permanentes. La protección viene activada de forma predeterminada (security.protected_instruction_files: true, con una lista de extensiones de nombres base basada en fnmatch en protected_instruction_extra_patterns), y el código fuente identifica el vector exacto que bloquea: «una instrucción inyectada que edita AGENTS.md / CLAUDE.md / SOUL.md»; además, señala que los archivos de instrucciones se cargan desde los árboles del directorio de trabajo actual, por lo que «cualquier AGENTS.md ubicado en un lugar desde el que el agente pueda ejecutarse más adelante es un objetivo activo».3539 La misma versión corrige brechas de filtración de secretos en errores de terminal, lecturas de archivos .env, checkpoints y registros de ACP; enseña al sistema de aprobación a reconocer comandos y rutas destructivos de Windows; permite que los permisos de macOS persistan tras las actualizaciones mediante una identidad estable de firma TCC (configuración única: hermes desktop --setup-tcc-identity, solo para macOS, requiere openssl/security/codesign); elimina la entrada de Blender del catálogo de MCP y su skill tras un ataque al proyecto original; y añade análisis de seguridad de nivel 1 a las instalaciones de plugins.3539


Arquitectura para profesionales

Esta sección está dirigida a quienes quieren entender lo que sucede tras bambalinas para poder depurarlo, ampliarlo o analizar su rendimiento. Es una síntesis de la documentación de arquitectura del proyecto original.3

Puntos de entrada → AIAgent

En última instancia, todos los puntos de entrada de Hermes llaman a AIAgent.run_conversation():

┌──────────────────────────────────────────────────────────────────┐
                        Entry Points                              
                                                                  
  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)  
  Batch Runner    API Server                  Python Library     
└──────────┬──────────────┬───────────────────────┬────────────────┘
                                                
                                                
┌──────────────────────────────────────────────────────────────────┐
                     AIAgent (run_agent.py)                       
                                                                  
  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐             
   Prompt         Provider        Tool                      
   Builder        Resolution      Dispatch                  
  └──────┬──────┘  └──────┬───────┘  └──────┬───────┘             
                                                              
  ┌──────┴───────┐ ┌──────┴───────┐  ┌──────┴───────┐             
   Compression    3 API Modes     Tool Registry             
   & Caching      chat_compl      47 tools                  
                  codex_resp      20 toolsets               
                  anthropic                                 
  └──────────────┘ └──────────────┘  └──────────────┘             
└──────────────────────────────────────────────────────────────────┘

Diagrama adaptado de la documentación de arquitectura del proyecto original.3

«47 herramientas / 20 toolsets» frente a «28 herramientas» en tu banner. La cifra de «47 herramientas» corresponde al registro total de herramientas del repositorio original: todas las herramientas cuyo código fuente se incluye con Hermes, distribuidas entre todos los toolsets. Tu CLI en ejecución mostrará una cifra menor en el banner de inicio (la instalación con la que verifiqué esta guía indica 28 tools / 89 skills). No se trata de un error. Muchos toolsets son opcionales y deben habilitarse explícitamente en config.yaml, en toolsets:; entre ellos se encuentran los adaptadores de plataformas de mensajería, la automatización del navegador, las herramientas de extracción de datos más pesadas, etc. El total del registro representa «lo que está disponible»; la cifra del banner indica «lo que está habilitado en tu profile actual». Consulta qué toolsets están activos con hermes tools --list y habilita o deshabilita toolsets individuales mediante el bloque toolsets: de ~/.hermes/config.yaml (o con /tools list, /tools enable <name> y /tools disable <name> dentro de una sesión en ejecución; quitar una herramienta reinicia la sesión para que el agente reconstruya su manifiesto de herramientas).

Los tres modos de API

Hermes abstrae las diferencias entre proveedores en tres modos de API, seleccionados automáticamente durante la ejecución:3

Modo de API Utilizado por
chat_completions OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, la mayoría de los endpoints personalizados y cualquier servidor compatible con OpenAI
codex_responses OpenAI Codex (mediante ChatGPT OAuth)
anthropic_messages Anthropic API (nativa), Anthropic OAuth, proxies compatibles con Anthropic

El solucionador runtime_provider.py asigna tuplas (provider, model) a (api_mode, api_key, base_url) para más de 18 proveedores y gestiona flujos de OAuth, grupos de credenciales y resolución de alias.3

Flujo de datos durante una sesión de CLI

User input  HermesCLI.process_input()
   AIAgent.run_conversation()
     agent.prompt_builder.build_system_prompt()
     runtime_provider.resolve_runtime_provider()
     API call (chat_completions / codex_responses / anthropic_messages)
     tool_calls?  model_tools.handle_function_call()  loop
     final response  display  save to SessionDB

Tomado de la página de arquitectura del proyecto original.3

Orden de composición del prompt

La pila del prompt incluye:13

  1. SOUL.md (identidad del agente, o la alternativa integrada si no está disponible)
  2. Directrices de comportamiento adaptadas a las herramientas
  3. Memoria y contexto del usuario (MEMORY.md, USER.md)
  4. Directrices de skills
  5. Archivos de contexto (AGENTS.md, .cursorrules)
  6. Marca de tiempo
  7. Indicaciones de formato específicas de la plataforma
  8. Capas opcionales sobre el prompt del sistema, como /personality

SOUL.md es la base: todo lo demás se construye sobre él.13

Almacenamiento de sesiones

Almacenamiento de sesiones basado en SQLite con búsqueda de texto completo FTS5. Las sesiones incluyen seguimiento de linaje (relaciones principales y derivadas entre compresiones), aislamiento por plataforma y escrituras atómicas con gestión de contención.3

Sistema de plugins

Hay tres fuentes de detección: ~/.hermes/plugins/ (usuario), .hermes/plugins/ (proyecto) y puntos de entrada de pip. Los plugins registran herramientas, hooks y comandos de CLI mediante una API de contexto. Los proveedores de memoria son un tipo especializado de plugin ubicado en plugins/memory/.3

hermes plugins                       # Interactive enable/disable UI
hermes plugins install <repo>        # Install from Git URL or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list

Periodo de compatibilidad (v0.21.1): los plugins externos deben dejar de usar las rutas de importación anteriores a la descomposición antes del 14 de septiembre de 2026. La descomposición de septiembre de 2026 (PR #102117) reubicó los componentes internos que los plugins solían importar, y una capa temporal COMPAT_MANIFEST.md vuelve a exportar 1.148 nombres públicos trasladados desde sus módulos anteriores, con una advertencia por nombre y proceso (HermesPluginCompatWarning). La capa se eliminará el 14 de septiembre de 2026; a partir de esa fecha, cualquier plugin afectado quedará deshabilitado, no se cargará, y aparecerá un aviso rojo en el banner de CLI, hermes doctor y hermes update, además de un cuadro de diálogo de escritorio que se mostrará una sola vez y el motivo en hermes plugins list. Autores: ejecuten hermes plugins compat <path> (agreguen --json para obtener una salida procesable por máquinas); el comando muestra cada file:line con la ruta anterior -> la ruta nueva y devuelve el código de salida 1 mientras quede algo pendiente. Si dependes de un plugin sin mantenimiento, puedes establecer plugins.allow_deprecated_imports: true en config.yaml para que siga cargándose después de esa fecha, hasta que la reversión de la capa de compatibilidad elimine definitivamente las rutas anteriores. Solo se incluyen los nombres públicos de nivel superior; los nombres privados y los puntos de sustitución mediante monkeypatch para pruebas nunca formaron parte de la interfaz pública y no se restauran.42

Principios de diseño

Tomados de la página de arquitectura del proyecto original:3

Principio Qué significa en la práctica
Estabilidad del prompt El prompt del sistema no cambia en medio de una conversación. No hay modificaciones que invaliden la caché, salvo las acciones explícitas del usuario (/model)
Ejecución observable Cada llamada a una herramienta es visible para el usuario mediante callbacks. Se muestran actualizaciones del progreso en CLI (indicador giratorio) y en el gateway (mensajes de chat)
Interrumpible Las llamadas de API y la ejecución de herramientas pueden cancelarse mientras están en curso mediante entradas del usuario o señales
Núcleo independiente de la plataforma Una sola clase AIAgent sirve para CLI, gateway, ACP, procesamiento por lotes y el servidor de API. Las diferencias entre plataformas residen en el punto de entrada
Acoplamiento débil Los subsistemas opcionales (MCP, plugins, proveedores de memoria y entornos de RL) utilizan patrones de registro y controles mediante check_fn, no dependencias rígidas
Aislamiento de profiles Cada profile tiene su propio HERMES_HOME, configuración, memoria, sesiones y PID del gateway. Varios profiles pueden ejecutarse simultáneamente

Migración desde OpenClaw

Hermes Agent es el sucesor de OpenClaw. Si estás migrando desde una instalación existente de OpenClaw:65

hermes claw migrate --dry-run                    # Preview what would be migrated
hermes claw migrate --preset full                # Full migration including API keys
hermes claw migrate --preset user-data --overwrite   # User data only, no secrets
hermes claw migrate --source /custom/path        # Non-default OpenClaw location

hermes claw migrate lee de ~/.openclaw de forma predeterminada (también detecta automáticamente las carpetas heredadas ~/.clawdbot y ~/.moldbot) y escribe en ~/.hermes.6

Importados directamente (más de 30 categorías): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills de 4 carpetas de origen, modelo predeterminado, proveedores personalizados, servidores de MCP, tokens y listas de usuarios permitidos de las plataformas de mensajería (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), valores predeterminados del agente (esfuerzo de razonamiento, compresión, demora humana, zona horaria y sandbox), políticas de reinicio de sesiones (ahora inactivas: desde la versión v0.21.1, los temporizadores nunca rotan una conversación43), reglas de aprobación, configuración de TTS, configuración del navegador, configuración de herramientas, tiempo de espera de ejecución, lista de comandos permitidos, configuración del gateway y claves de API procedentes de 3 fuentes.6

Archivados para revisión manual: tareas cron, plugins, hooks/webhooks, backend de memoria (QMD), configuración del registro de skills, interfaz de usuario/identidad, registros, configuración multiagente, vinculaciones de canales, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6

La resolución de claves de API consulta tres fuentes en este orden de prioridad: valores de configuración → ~/.openclaw/.envauth-profiles.json.6


Solución de problemas

“No inference provider configured. Run ‘hermes model’ to choose a provider and model”

El primer error que aparece en toda instalación nueva: Hermes aún no tiene un proveedor definido. Significa exactamente lo que dice: ninguna de las 3 vías de autenticación ha proporcionado un proveedor utilizable. Ejecuta:

hermes model

El selector interactivo te guía por todos los proveedores compatibles, incluidos los flujos de código de dispositivo de OAuth (Nous Portal, GitHub Copilot, Anthropic, OpenAI Codex) y los endpoints personalizados para servidores autoalojados. Si esperabas que ya hubiera un proveedor configurado, hermes doctor muestra qué credenciales puede detectar Hermes; las causas habituales son una clave de API configurada en el lugar equivocado (debe estar en .env o establecerse mediante hermes config set, no en el perfil de tu shell), una credencial de OAuth vencida en ~/.hermes/auth.json o un endpoint personalizado de config.yaml que perdió su base_url. Las vías de autenticación se explican en detalle en Autenticación y proveedores.27

“Clave de API no configurada”

Ejecuta hermes model para configurar tu proveedor de forma interactiva o hermes config set OPENROUTER_API_KEY your_key. El comando hermes doctor te indicará exactamente qué claves faltan.7

“Context limit: 2048 tokens” al iniciar (modelos locales)

Hermes detecta automáticamente la longitud del contexto mediante el endpoint /v1/models de tu servidor, pero muchos servidores locales informan valores predeterminados bajos. Establécela de forma explícita en config.yaml:2

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Las llamadas a herramientas aparecen como texto en lugar de ejecutarse

Tu servidor no tiene habilitadas las llamadas a herramientas o el modelo no las admite mediante la implementación del servidor.2

Servidor Solución
llama.cpp Agrega --jinja al comando de inicio
vLLM Agrega --enable-auto-tool-choice --tool-call-parser hermes
SGLang Agrega --tool-call-parser qwen (o el analizador adecuado)
Ollama Las llamadas a herramientas están habilitadas de forma predeterminada; comprueba que tu modelo las admita con ollama show <model>
LM Studio Actualiza a la versión 0.3.6 o posterior y usa un modelo con compatibilidad nativa con herramientas

Las respuestas se cortan a mitad de una oración

Hay 2 causas posibles:2

  1. Límite de salida bajo (max_tokens) en el servidor: SGLang usa de forma predeterminada 128 tokens por respuesta. Establece --default-max-tokens en el servidor o configura model.max_tokens en config.yaml.
  2. Agotamiento del contexto: el modelo llenó su ventana de contexto. Aumenta model.context_length o habilita la compresión de contexto en Hermes.

“Connection refused” desde WSL2 hacia un servidor de modelos alojado en Windows

WSL2 utiliza un adaptador de red virtual con su propia subred; localhost dentro de WSL2 se refiere a la máquina virtual Linux, no al host de Windows. Tienes 2 opciones:2

Red reflejada (Windows 11 22H2 o posterior): edita %USERPROFILE%\.wslconfig:

[wsl2]
networkingMode=mirrored

Después, ejecuta wsl --shutdown y reinicia. Ahora localhost funciona en ambas direcciones.

Alternativa mediante la IP del host (versiones anteriores de Windows): obtén la IP del host de Windows desde WSL2 y úsala en lugar de localhost:

ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host

También necesitas que el servidor de modelos escuche en 0.0.0.0, no en 127.0.0.1: establece OLLAMA_HOST=0.0.0.0 para Ollama, agrega --host 0.0.0.0 para llama-server/SGLang o habilita “Serve on Network” en LM Studio.2

El presupuesto de iteraciones ignora agent.max_turns

Si la línea de actividad muestra N/90 (u otro límite desactualizado), aunque config.yaml indique agent.max_turns: 500, la causa probable es una línea obsoleta de HERMES_MAX_ITERATIONS en ~/.hermes/.env: anteriormente, el asistente de configuración escribía el presupuesto en ambos lugares y, si el puente de inicio se interrumpe por un error previo al analizar la configuración, el valor fantasma de .env prevalece silenciosamente. Desde la versión v0.21.1, hermes doctor detecta este par conflictivo y hermes doctor --fix elimina la línea de .env, de modo que config.yaml queda como fuente autoritativa.41

¿Dónde está todo?

hermes status y hermes dump son tus aliados en este caso. hermes logs list muestra todos los archivos de registro con sus tamaños. hermes config path imprime la ubicación del archivo de configuración. hermes config env-path imprime la ubicación de .env.6


Preguntas frecuentes

¿Cuál es la diferencia entre Hermes Agent y Claude Code?

Claude Code es el CLI oficial de Anthropic, limitado a los modelos de Anthropic. Hermes Agent es un framework de agentes de código abierto de Nous Research que funciona con cualquier proveedor compatible con OpenAI: Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google o tu propio endpoint autoalojado.12 Hermes también incluye un gateway de mensajería para Telegram/Discord/Slack/WhatsApp/Signal que Claude Code no tiene.

¿Puedo usar Hermes con una clave de API de Anthropic?

Sí. Hay 3 formas:2

  1. Establece ANTHROPIC_API_KEY en ~/.hermes/.env y ejecuta hermes chat --provider anthropic --model claude-sonnet-4-6
  2. Ejecuta hermes model y selecciona Anthropic; Hermes utilizará el almacén de credenciales de Claude Code cuando esté disponible
  3. Establece un ANTHROPIC_TOKEN manual (token de configuración o token de OAuth) como alternativa

La opción 2 es preferible si ya utilizas Claude Code en la misma computadora, pues permite que las credenciales renovables de Claude sigan siéndolo.

¿Cómo cambio de proveedor sin perder mi conversación?

Usa /model provider:model dentro de una sesión. El historial de la conversación, la memoria y las skills se conservan:9

/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5

Configuré Anthropic, pero la visión, la web y la compresión no funcionan

En las versiones actuales, esto casi nunca puede suceder como antes. De forma predeterminada (auxiliary.*.provider: "auto"), todas las tareas auxiliares —visión, clasificación de aprobaciones, compresión y títulos de sesiones— se ejecutan en tu modelo de chat principal, por lo que una configuración que solo use Anthropic las atiende con el OAuth que ya tiene. El antiguo valor predeterminado (Gemini Flash mediante OpenRouter → Nous → detección automática de Codex, con una degradación silenciosa cuando ninguno estaba configurado) ya no existe: «ahora auto usa el modelo principal para todos, y las configuraciones específicas por tarea en config.yaml siguen teniendo prioridad».34

Si una tarea auxiliar continúa fallando, busca una configuración específica por tarea que apunte a un proveedor que nunca configuraste (auxiliary.<task>.provider / .model en config.yaml) o claves heredadas obsoletas: desde la etiqueta v2026.8.31, el resumidor de compresión se configura como cualquier otro espacio auxiliar —auxiliary.compression.provider— y las claves heredadas compression.summary_* se migran allí automáticamente (versión 17 de la configuración).31 La extracción web ya ni siquiera es una tarea de LLM («LLM no interviene»), por lo que un error al resumir contenido web no es un problema del modelo auxiliar en las versiones actuales.34 Para volver a vincular explícitamente una tarea a tu proveedor principal:

auxiliary:
  vision:      { provider: "main" }
  compression: { provider: "main" }

¿Cuál es la diferencia entre SOUL.md y AGENTS.md?

SOUL.md define la identidad de tu agente: tono, estilo y valores predeterminados de comunicación. Se encuentra en ~/.hermes/SOUL.md y te acompaña en todas partes. AGENTS.md es específico de cada proyecto: contiene la arquitectura, las convenciones, los comandos y las rutas, y se encuentra en el directorio de tu proyecto.13 Si debe acompañarte en todas partes, corresponde a SOUL.md. Si pertenece a un proyecto, corresponde a AGENTS.md.

¿Cómo ejecuto varias instancias de Hermes en paralelo?

Con profiles. Cada profile tiene su propio HERMES_HOME, configuración, memoria, sesiones y PID del gateway:6

hermes profile create work --clone
hermes profile use work                 # Sticky default
hermes -p work chat -q "..."            # One-off without switching
hermes profile alias work --name h-work # Wrapper script

¿Hermes admite LLMs locales?

Sí, mediante la vía de endpoints personalizados. Hermes funciona con cualquier servidor compatible con OpenAI: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan o uno propio.2 Consulta Endpoints personalizados y autoalojados para conocer la configuración de cada servidor.

¿Por qué el banner de inicio muestra menos herramientas de las que la guía dice que tiene Hermes?

La guía cita 47 herramientas y 20 toolsets del registro de arquitectura del proyecto original: es el total de herramientas cuyo código fuente incluye Hermes entre todos los toolsets. Tu instalación en ejecución muestra un número menor en el banner (la instalación de referencia utilizada para esta guía informa 28 herramientas) porque Hermes solo habilita el conjunto de toolsets predeterminado al iniciar. Muchos toolsets son opcionales: los adaptadores del gateway de mensajería, la automatización del navegador, las soluciones más pesadas de extracción de datos y varias integraciones especializadas deben indicarse explícitamente en toolsets: dentro de ~/.hermes/config.yaml para que se carguen. Total del registro = «lo que está disponible si lo habilitas». Total del banner = «lo que cargó realmente tu profile actual». Usa hermes tools --list para comprobar qué toolsets están activos y cuáles están disponibles, pero deshabilitados. Activa o desactiva toolsets individuales durante la ejecución con /tools enable <name> y /tools disable <name> (al desactivar uno, se reinicia la sesión para que el agente reconstruya su manifiesto de herramientas con la nueva estructura).

¿Cómo gestiona Hermes el modelo de respaldo cuando falla mi proveedor principal?

Configura un bloque fallback_model en config.yaml:2

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Cuando falla el proveedor principal (por un límite de solicitudes, un error del servidor o un fallo de autenticación), Hermes cambia al modelo de respaldo durante la sesión sin perder el historial de la conversación. Esto ocurre como máximo una vez por sesión.

¿Puede el agente mejorar sus propias skills con el tiempo?

Sí; esa es la parte de «mejora continua» de Hermes Agent. El agente puede crear, actualizar y eliminar skills mediante la herramienta skill_manage. Cuando encuentra la manera de realizar un flujo de trabajo no trivial, guarda el método como una skill para reutilizarlo en el futuro.11 El agente crea skills después de tareas complejas (más de 5 llamadas a herramientas), cuando encuentra errores y descubre el procedimiento correcto, cuando corriges su enfoque o cuando descubre un flujo de trabajo no trivial.

¿Existe alguna integración con IDE?

Sí. Hermes puede ejecutarse como servidor ACP (Agent Client Protocol) para VS Code, Zed y JetBrains:6

pip install -e '.[acp]'
hermes acp

Registro de cambios

Fecha Cambio Fuente
2026-09-08 Guía v1.18: Hermes v0.21.1 (etiqueta v2026.9.7, 7 de septiembre) — el parche acumulativo: el mayor intervalo entre etiquetas hasta la fecha («5.139 commits sin fusión», «632 PR fusionadas»), acompañado de una nota del parche deliberadamente breve que aplaza las notas seleccionadas hasta v0.22.0. Nueva sección de novedades antes de la sección Pantheon, con seis grupos verificados mediante fuentes: la descomposición de septiembre + la fecha límite de compatibilidad de plugins del 2026-09-14 (COMPAT_MANIFEST.md: 1.148 nombres trasladados a carga diferida, HermesPluginCompatWarning una vez por nombre, el verificador hermes plugins compat y la vía de escape plugins.allow_deprecated_imports; se añadió un recuadro sobre el periodo de compatibilidad a Sistema de plugins), límites de conversación del gateway solo mediante acciones explícitas (SessionResetPolicy ahora está inactivo; se actualizó Gateway de mensajería y se anotó la lista de migración desde claw), OAuth mediante código de dispositivo de MCP (hermes mcp login --flow device, RFC 8628; se añadieron login y reauth --all al bloque de comandos de MCP; propiedad de los perfiles mediante sesiones de OAuth, omisión de cachés con metadatos malformados, devoluciones de llamada locales del cliente de escritorio y filtros -t para iniciar servidores de MCP), confiabilidad de la delegación (unidades de finalización mediante delegation.independent_completions con un group por tarea y una finalización por llamada de forma predeterminada; transferencia de procesos en segundo plano con orphaned_processes y unread_completions indicados en los resultados; delegation.fallback_providers; cadenas de procesos secundarios validadas por el normalizador; resultados parciales resistentes a fallos; los procesos secundarios nunca heredan el nivel de caché de 1 h; todo ello obtenido del código fuente de la herramienta delegate en la etiqueta), proveedores/modelos (GPT-6 Astra + Astra Pro con niveles fast/flex, restringidos por cuenta en Codex OAuth y con una variante opcional -900k; claude-fable-5.1; gemini-3.7/3.8-flash; qwen3.8-max-0902; Muse Spark 1.3 + el plugin de image_gen muse-image; búsqueda/extracción de Tavily; el entorno de ejecución administrado de llama.cpp; proveedores mediante procesos externos; actualización del catálogo cada 20 minutos mediante model_catalog.ttl_minutes) y la oleada de escritorio (modo de comentarios en el navegador integrado que transporta selector/marcado/estilos por anotación, con lotes agrupados por región; controles estructurados de sesiones + automatización; arrastrar para crear sesiones; importación de sesiones con transcripciones externas; display.resume_last_session; consentimiento para usar el perfil real al abrir por primera vez; catálogo integrado de skills opcionales; configuración regional rusa para escritorio). Solo en el registro de cambios, verificado mediante commits o fuentes: confiabilidad de cron (transferencia tras reinicios reforzada mediante tres commits de corrección verificados, eliminación de duplicados en entregas serializada con retención de terminales, condición de carrera al crear trabajos en pausa resuelta, contenido multimedia de cron en Discord dirigido a su destino con notificación de errores de carga y continuidad conservada durante ciclos de auditoría silenciosos), análisis del shell para aprobaciones (escapes divididos de GNU env y operandos argv0, límites de argv de env y de comentarios del shell, los cuerpos entre comillas de sustituciones de comandos conservan sus límites de comando y approvals.deny dentro de contenedores aislados), el monitor de actividad al iniciar el gateway (hermes_startup_watchdog.py; gateway.startup_watchdog con un plazo de 300 s y salida forzada 75), resiliencia de state.db (recuperación de elementos perdidos mediante .recover de sqlite3, direccionamiento FTS de like_scan y el nuevo docs/state-db-recovery.md), rendimiento (search_files ejecuta ripgrep de forma nativa en hosts POSIX locales, las transcripciones de procesos secundarios delegados quedan excluidas del índice FTS de trigramas en el esquema v30 y se comparte un cliente httpx de OpenAI entre las rutas principales y auxiliares), gateway.trust_env, el selector /model de Slack Block Kit y la entrega de contenido multimedia desde entornos aislados remotos (ni las credenciales ni los enlaces simbólicos que apuntan a ellas salen del entorno aislado); Solución de problemas incorpora la comprobación de diagnóstico del vestigio obsoleto de HERMES_MAX_ITERATIONS. Recuentos actualizados en la etiqueta de v2026.8.31 a v2026.9.7: 39 proveedores estáticos y 39 carpetas de plugins de proveedores, ambos con entradas idénticas a v0.21.0; la afirmación previa al análisis de «38 estáticos, con xai absorbido por el plugin» quedó refutada en el código fuente (la tupla xai sigue en la lista estática; solo se trasladó el archivo, de hermes_cli/models.py a hermes_cli/models_catalog_static.py:311); se actualizó la ruta de prompt_builder.py a agent/prompt_builder.py en el modelo mental y en el flujo de datos de CLI; la afirmación de v0.16 sobre la actualización horaria del catálogo se mantuvo limitada a esa versión y se añadió a su lado la cadencia de 20 minutos. Afirmaciones permanentes verificadas de nuevo y sin cambios: la nota sobre el nombre hermes approvals test, valor predeterminado de 500 para --max-turns (cli.py:400 en la etiqueta; no se propagó el docstring obsoleto que indicaba 60), 2.000 líneas para read_file, límites de delegación de 250/10, compression.tail_mode: lean, Node 26 y 17 configuraciones regionales de CLI. 41424344454647
2026-07-28 Guía v1.12: Ampliación de cobertura guiada por la demanda de búsquedas: dos temas con buena conversión no tenían un encabezado al que llegar. No hay una versión nueva. GSC muestra que hermes swarm y hermes agent swarm convierten entre un 4,4 % y un 6,3 % desde la posición ~8, y hermes smart model routing, un 4,9 % desde la posición 6,7, aunque ninguno de los términos tenía una sección: swarm solo aparecía en el texto de Multi-Agent Kanban y en filas del registro de cambios, mientras que «smart model routing» no figuraba en ningún lugar salvo en una nota al pie. Se añadió ¿Qué es un Hermes Swarm? dentro de Multi-Agent Kanban: define un swarm como trabajadores paralelos que operan sobre un único tablero persistente, documenta la topología de swarm de v0.15.0, la descomposición automática, las sustituciones de modelo por tarea, las tareas programadas y la administración de worktrees, e incluye una tabla con el fallo que evita cada mecanismo. Se cambió el título Rotación y respaldo de proveedores por Smart Model Routing: rotación y respaldo de proveedores, con una introducción que vincula los grupos de credenciales, el modelo de respaldo y el direccionamiento auxiliar como un único sistema. Ningún enlace interno apuntaba al ancla, por lo que el cambio de título no rompe nada. 53 2 6
2026-08-31 Guía v1.17: Hermes v0.21.0 «The Pantheon Release» (etiqueta v2026.8.31, 31 de agosto): llega la versión acumulativa seleccionada. Nueva sección de novedades antes de la sección Herald, organizada según las áreas de funciones de la propia versión: Bot Mode incluido y activado de forma predeterminada en la aplicación de escritorio (perfiles con nombre, avatares deterministas y chats grupales con menciones @), mensajes directos entre bots mediante hermes peer (las respuestas llegan al Bot Chat canónico de cada agente), continuidad de cron (continuity=true, blocs de notas persistentes, omisión de LLM en modo de supervisión y fijación del esfuerzo por trabajo; la sección Tareas programadas incorpora el funcionamiento de los cuatro elementos en la etiqueta), orquestación en vivo de subagentes (delegate_task para listar/dirigir/detener, resultados de procesos secundarios con esquema JSON, valores predeterminados elevados a 250 iteraciones/10 procesos secundarios simultáneos; verificado en el código fuente de config_defaults.py, frente al cual el valor 3/50 de la página de documentación sobre delegación está obsoleto), el centro de comandos de MCP (+ enlaces de instalación hermes://; sección de MCP actualizada), la oleada de potencia de CLI (/palette + Ctrl+P y un /status con registro compartido añadidos a las tablas de comandos con barra diagonal, además de la mención del filtrado mientras escribes en /model; se demostró que el nombre hermes approval-check de las notas de la versión es hermes approvals test en la etiqueta, pues no existe dicho subcomando), el navegador integrado controlado por el agente, la oleada de proveedores/modelos (seis proveedores nuevos; la matriz incorpora filas para Tencent TokenPlan, Nebius Token Factory, Ramp Router y Alibaba Token Plan con variables de entorno citadas de la documentación; model_overrides; advertencias sobre niveles de entrenamiento con datos; plugins de proveedores mediante pip), la oleada de seguridad (las escrituras en AGENTS.md/skills/memory siempre requieren aprobación; security.protected_instruction_files: true y la protección de tools/file_tools.py se verificaron en la etiqueta; barrido de censura de datos; cobertura de aprobaciones en Windows; hermes desktop --setup-tcc-identity; se eliminó Blender MCP; Refuerzo de seguridad incorpora una cuarta oleada), la maduración del gateway, la oleada de 8 skills y la lista de elementos REVERTIDOS (Model Council /council, context engine DCP, servidor del gateway solo mediante WS; la reproducción con marcas de secuencia #94219 SÍ se incluyó; Electron volvió a 40.10.2; grep confirma que la guía nunca documentó ninguna de las funciones revertidas). El enfoque de notas aplazadas de la subsección acumulativa está RESUELTO y ahora apunta a la sección seleccionada; se conservaron los bloques por intervalo como registro de cada etiqueta. Recuentos actualizados en la etiqueta de v2026.8.27 a v2026.8.31: proveedores estáticos, de 38 a 39 (+tencent-tokenplan); carpetas de plugins de proveedores, de 37 a 39 (+nebius-token-factory, +router, ambos con auth_type="api_key"); filas de proveedores en la documentación, de 41 a 45; sin cambios y verificados de nuevo: 28 filas de plataformas en la documentación/24 miembros de la enumeración Platform (lista idéntica)/22 carpetas de adaptadores, _BUILTIN_SUBCOMMANDS idéntico (73, peer presente desde los intervalos de la versión acumulativa, sin version), 7 backends de terminal + registro de plugins (registro idéntico byte por byte), 14 personalidades y 17 configuraciones regionales (archivos idénticos byte por byte/listas idénticas), valor predeterminado lean para la compresión y lista de espacios auxiliares, _startup_fast.py/portal_cli.py idénticos byte por byte. Desviación corregida durante la verificación: hermes chat -q en una TTY ahora inicia una sesión interactiva (el nuevo --oneshot restablece el comportamiento de responder y salir) y el valor predeterminado de --max-turns en la tabla de chat se corrigió de 90 a 500 conforme a la ayuda del analizador en la etiqueta. 35363738394033
2026-08-27 Guía v1.16: Hermes v0.20.6 (etiqueta v2026.8.27, 27 de agosto) – cuarta versión acumulativa. La subsección de versiones acumulativas incorpora su cuarta ventana, según la descripción de la propia versión (~1.313 commits en ~1.557 archivos, +177.113 / −21.682 – ~525 PR fusionados desde v0.20.5): navegación con perfiles reales sujeta a consentimiento (profile predeterminado de Chromium, flujo de cierre con aprobación en Windows), el Browser de escritorio en su propia ventana del sistema operativo, un motor administrado de actualizaciones remotas de SSH y una vía de profiles para flotas, ampliación del catálogo remoto de MCP (más de 50 servidores alojados por proveedores y verificados en producción, incluidos Cloudflare, Grafana Cloud, Better Stack y Railway), cifrado opcional mediante el llavero del sistema operativo para los secretos almacenados, nuevos modelos en el selector (GLM-5.3-Flash, MiniMax M3 gratuito, MiniMax H3 Max para video), almacenamiento en caché de resultados con TTL para web_search/web_extract, tool_search con múltiples consultas y reducción a raíces léxicas, actualizadores que pausan los gateways mediante el socket de control, instalaciones administradas mediante imágenes o paquetes que rechazan actualizaciones inseguras en el lugar, confirmaciones de incidentes duraderos de cron, controles para desplegar vistas previas de enlaces en Slack e identidades compartidas de contenedores de Docker. Dos afirmaciones de la versión contradecían secciones existentes; ambas se confirmaron en la etiqueta y se corrigieron: la compresión lean-tail es la predeterminada (se reescribió Context Compression con las claves presentes en la etiqueta – tail_mode: lean, threshold_tokens, protect_first_n, parámetros del resumidor bajo auxiliary.compression.* con la migración automática de la versión 17 de la configuración; también se corrigió la nota invertida de solución de problemas) y los backends de terminal admiten extensiones mediante plugins (se reformuló como siete backends integrados más un registro de plugins, al estilo del selector de proveedores; los nombres integrados están reservados). Se volvieron a verificar las referencias en la etiqueta y se actualizaron de v2026.8.19v2026.8.27: 38 proveedores estáticos + 37 carpetas de plugins de proveedores, 24 miembros del enum Platform / 22 carpetas de adaptadores / 28 filas en la tabla de documentación, sin subcomando version (73 entradas de _BUILTIN_SUBCOMMANDS, con worktree presente), opciones del analizador y cadenas de ayuda entre comillas sin cambios, BUILTIN_PERSONALITIES sigue teniendo 14 (helpful a hype); locales/ ahora contiene 17 catálogos (en + 16 traducciones; se agregó el recuento en la etiqueta). main se encuentra EN la etiqueta (ahead_by: 0, estado idéntico). También se corrigió una desviación detectada durante la verificación: el valor predeterminado obsoleto del sistema auxiliar – auto ahora dirige todas las tareas auxiliares al modelo principal del chat, en vez de seguir la detección Gemini Flash mediante OpenRouter → Nous → Codex; se reescribió Auxiliary Models con la lista de espacios presente en la etiqueta (se agregaron title_generation, tts_audio_tags, triage_specifier, kanban_decomposer y profile_describer con descripciones breves basadas en fuentes; los espacios web_extract y session_search se eliminaron upstream – ninguno usa ya un LLM – y flush_memories desapareció de los valores predeterminados), y se volvió a fundamentar la entrada de solución de problemas exclusiva de Anthropic. La línea de instalación nueva de la versión usa la URL sin procesar del script de GitHub; la guía conserva la dirección canónica hermes-agent.nousresearch.com/install.sh. Las notas seleccionadas siguen prometidas para v0.21.0. 293031323334
2026-08-26 Guía v1.15: CORRECCIÓN – no hay una versión nueva (la etiqueta más reciente es v2026.8.19 / v0.20.5, del 21 de agosto); las afirmaciones existentes se volvieron a verificar en la etiqueta. Backends de terminal: de seis → siete; se agregó vercel_sandbox a la tabla y al comentario de configuración. Plataformas de mensajería: los recuentos aislados de «22» se conciliaron con las 28 entradas de la tabla comparativa de la documentación en la etiqueta, indicando el criterio de recuento (24 miembros del enum Platform integrado, 22 carpetas de adaptadores incluidos); además, ntfy y Buzz se agregaron a la lista de gateways. Proveedores: «~20 / ~22 de primera clase» se sustituyó por el recuento respaldado por fuentes (38 entradas estáticas de CANONICAL_PROVIDERS más la ampliación automática desde 37 plugins de proveedores incluidos; 41 filas de servicios en la nube o por suscripción en la página de documentación), se eliminó «lista completa», se corrigió la fila de OAuth de Qwen y se agregaron 17 filas a la matriz (OpenCode Free, OpenAI API directo, Vertex AI, Azure Foundry, Bedrock, NVIDIA NIM, Ollama Cloud, StepFun, MiniMax OAuth, Meta AI, NovitaAI, Arcee AI, GMI Cloud, Actual Computer, Tencent TokenHub, CommandCode y Alibaba Coding Plan). hermes versionhermes --version (no es un subcomando en la etiqueta). hermes honcho se marcó como condicionado a un plugin. «--plan de flota» → hermes update --plan. Global Options incorpora --in, --tui, --cli, --dev, --ignore-rules y --ignore-user-config; Top-Level Commands incorpora 34 filas de _BUILTIN_SUBCOMMANDS, incluido hermes worktree list\|prune con sus indicadores; se agregó el comando slash /worktree; se documentaron hermes setup --portal y hermes portal login\|info\|open\|tools. En el momento de la verificación, main estaba 1.104 commits por delante de la etiqueta (desde entonces, todos se incorporaron a v2026.8.27); las notas seleccionadas están prometidas para v0.21.0. 23242526272829
2026-08-24 Guía v1.14: v0.20.5 (etiqueta v2026.8.19, publicada el 21 de agosto). La subsección de versiones acumulativas incorpora su tercera ventana (~746 commits / ~323 PR desde v0.20.4): el nivel web sin claves (rotación gratuita entre 5 proveedores con conmutación por error en anillo — búsqueda web en instalaciones nuevas sin ninguna clave), mejoras de CLI (selector difuso de /model, paleta de comandos con Ctrl+P y /status más completo), hilos para salas grupales de Bot Mode + resúmenes plegables + arrastrar y soltar archivos/PDF, hermes worktree list/prune, comprobantes de hermes update y verificación de --plan para flotas, memoria persistente de cron con nivel de razonamiento por trabajo, protecciones contra bloqueos en la disciplina de ejecución derivadas de los hallazgos de la evaluación de Composio, el proveedor opencode-free sin autenticación y mejoras de rendimiento del escritorio (hidratación que prioriza el primer renderizado, React Compiler en ambos renderizadores). v0.21.0, con todas las notas seleccionadas, sigue pendiente; los resúmenes provienen de la descripción de la ventana de la propia versión. Se actualizó el linaje del encabezado. 23
2026-08-20 Guía v1.13: v0.20.3 (etiqueta v2026.8.16.2, publicada el 17 de agosto) y v0.20.4 (etiqueta v2026.8.18, 18 de agosto). Nueva subsección bajo Herald Release: la serie de versiones acumulativas ahora incorpora funciones, no solo estabilización. v0.20.3 (~250 commits / ~125 PR): migración de SDK de MCP 2.x con compatibilidad para el protocolo sin estado del 28 de julio de 2026, plugin de Bot Mode incluido (hermes-bots) con el protocolo central para compañeros de equipo, plugin del proveedor CommandCode, contratos de ejecución para el uso de la computadora de Cua Driver 0.20, refuerzo de la propiedad en tiempo de ejecución de Python, autorreparación del programador cron, correcciones de pérdida de datos al transferir sesiones y adaptaciones del ecosistema (/worktree, conservación de ediciones manuales con /rollback, análisis de seguridad al instalar plugins). v0.20.4 (~146 commits / ~74 PR): superficie de vidrio/translúcida para escritorio con selector de escarcha, barra lateral con pestañas SESSIONS|BOTS y opción de ocultar/mostrar cada bot, análisis preventivo de nivel 1 con NVIDIA SkillEvaluator al instalar skills (licencia + seguridad), refuerzo del envío de contenido multimedia mediante cron y transparencia de hermes update sobre ramas estacionadas. Ambas versiones indican que todas las notas seleccionadas se publicarán con v0.21.0; los resúmenes provienen de las descripciones de las ventanas de las propias versiones. Se actualizaron la oración del encabezado y el linaje de etiquetas. 48
2026-08-16 Guía v1.12: v0.20.0 «The Herald Release» (3 de agosto, etiqueta v2026.8.3), además de las etiquetas de estabilización v0.20.1 (13 de agosto) y v0.20.2 (16 de agosto). Tres correcciones resuelven instrucciones que ya no funcionan: se requiere Node 26 (el instalador fija NODE_VERSION="26" y rechaza entornos de ejecución anteriores — la indicación de Node v22 en el sitio de documentación está obsoleta, por lo que prevalecen el instalador y las notas de la versión), pip y Homebrew se retiraron en vez de quedar obsoletos («el instalador de shell / Docker / Nix son los canales compatibles») y el límite predeterminado de iteraciones pasó de 90 → 500, lo que invalidó todas las cifras de la tabla sobre presión del presupuesto. El comando de instalación se corrigió para usar la dirección canónica https://hermes-agent.nousresearch.com/install.sh. Superficie eliminada: la fuente de skills claude-marketplace desapareció y fue sustituida por browse-sh en la lista de fuentes; los taps predeterminados de GitHub ahora son openai, anthropics, huggingface, NVIDIA y gstack. El gateway de mensajería se volvió a contar, de 22 → 28 plataformas, enumerando directamente la tabla comparativa de la documentación (esta no publica un total oficial). Windows (nativo) es de nivel 1, no una versión beta temprana; macOS solo es compatible con Apple Silicon. Una nueva sección aborda la propia versión: voz conversacional con interrupción del usuario, A2A v1.0, webhooks firmados para el ciclo de vida saliente, skill de citas fundamentadas, la oleada de CLI con !//init//diff//context//focus y hermes import-agent, fuente de secretos para el asistente de comandos, arranque en frío de hermes -w de ~14 s → ~1,8 s, y artefactos de escritorio junto con un SDK de plugins. Se verificó que no cambiaron: las tres rutas de autenticación, la estructura de ~/.hermes/, hermes update y la lista documentada de herramientas. 49
2026-07-21 Guía v1.11: v0.19.0 «The Quicksilver Release» (20 de julio de 2026, etiqueta v2026.7.20). Se agregó la sección «Novedades de v0.19.0»: reducción de ~80 % en el TTFT del primer turno (envío en frío→despacho de ~4,3 s → ~0,9 s en CLI/gateway/TUI/escritorio/cron), razonamiento transmitido en vivo de forma predeterminada (display.show_reasoning activado), oleada de velocidad de ~20 PR para escritorio (renderización de Markdown en streaming 14× más rápida) + Markdown incremental en la TUI; instalaciones mediante pip/Homebrew obsoletas (solo muestran la advertencia «sistema heredado no compatible»; está prevista la eliminación de la publicación en PyPI/Homebrew) — se corrigieron la sección de instalación y el resumen «En pocas palabras» para usar el instalador de una sola línea; SecretSource conectable con proveedores Bitwarden + 1Password (referencias op://, múltiples bóvedas, precedencia determinista, procedencia por variable); aprobaciones inteligentes de forma predeterminada (revisor LLM independiente por cada comando marcado) + reglas de denegación definidas por el usuario que se mantienen incluso con YOLO + /deny <reason> + se reincorporó el escalamiento de aprobación de pre_tool_call en plugins; facturación desde la terminal con /subscription + /topup + pestaña de facturación en la aplicación de escritorio (se retiró la afirmación de que «no existe un comando de suscripción independiente»); transcripciones de subagentes en vivo + delegación duradera en segundo plano + registro de obligaciones de entrega en state.db; max_async_children quedó obsoleto en favor de límites unificados de concurrencia para la delegación; enrutamiento de mensajes del gateway basado en profiles (un token de bot multiplexado → profiles aislados, GATEWAY_MULTIPLEX_PROFILES, índice de enrutamiento en state.db, sessions.json como réplica heredada opcional); proveedores/modelos: Fireworks AI (puesto n.º 2 en el selector), DeepInfra, Upstage Solar, GPT-5.6 (Sol/Terra/Luna + Pro) de extremo a extremo, grok-4.5 con disponibilidad general, kimi-k3 (se retiró kimi-k2.x), Claude Sonnet 5 totalmente integrado, enabled: false por proveedor + excluded_providers, niveles max/ultra de esfuerzo de razonamiento con ajustes por modelo/posición de MoA y /reasoning limitado a la sesión; CLI/MCP: hermes sessions export (Markdown/Quarto/HTML/solo prompt/traza de HF, --redact), /model --once, invocaciones apiladas de slash-skills, --safe-mode, hermes config get/unset, hermes serve realmente sin interfaz gráfica, nomenclatura MCP mcp__server__tool. También se registran las etiquetas de parches que se habían omitido: v0.18.1 (etiqueta v2026.7.7) y v0.18.2 (etiqueta v2026.7.7.2), 7–8 de julio de 2026 — paquetes acumulativos de parches de infraestructura; la corrección sustancial de v0.18.2 elimina la versión fijada de WhatsApp Baileys para adoptar 7.0.0-rc13 y lograr compilaciones Docker confiables. 50 51
2026-07-16 Se agregó una primera entrada de solución de problemas para el error literal de inicio «No inference provider configured. Run ‘hermes model’ to choose a provider and model» — motivada por la demanda de búsquedas; dirige al selector interactivo, hermes doctor y las tres rutas de autenticación. No hubo cambios en el producto. 2 7
2026-07-01 Guía v1.10: v0.18.0 «The Judgment Release» (1 de julio de 2026, etiqueta v2026.7.1). Se agregó la sección «Novedades de v0.18.0»: se completó toda la lista de pendientes P0/P1 (~692 elementos); Mixture-of-Agents como función de primera clase, con resultados de conjunto etiquetados por modelo y transmisión en vivo; contratos de finalización/goal verifica su propio trabajo ejecutando las comprobaciones del proyecto; /learn (describe un flujo de trabajo → skill reutilizable y compatible con CONTRIBUTING.md); /journey: cronología de memoria/skills + gráfico de memoria en la aplicación de escritorio; distribución en abanico de subagentes en segundo plano (tareas delegadas simultáneas); Projects en la aplicación de escritorio (proyecto/repositorio/línea de trabajo); gateway con escalamiento a cero y coordinación del vaciado; Google Vertex AI (Gemini mediante cuentas de servicio de GCP, actualización automática de OAuth2); /prompt, editor mediante \$EDITOR. Fuente: versiones de hermes-agent. 22
2026-06-21 Guía v1.9: v0.17.0 «The Reach Release» (19 de junio de 2026, etiqueta v2026.6.19). Se agregó la sección «Novedades de v0.17.0». Mensajería: iMessage sin retransmisores mediante Photon Spectrum (hermes photon login, OAuth mediante código de dispositivo), adaptador oficial de API para WhatsApp Business Cloud (sin puente), grupos + archivos adjuntos de SimpleX, plugin de plataforma Raft. Modelos: z-ai/glm-5.2 (1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (OAuth de xAI, 200k); valor predeterminado de xAI → grok-build-0.1; los modelos adaptativos Anthropic eliminan el campo reasoning. Aplicación de escritorio/panel: subagentes en segundo plano con ventanas de supervisión en vivo (delegate_task(background=true)), creador completo de profiles, Skills Hub rediseñado, Automation Blueprints, inicio de sesión seguro con respuesta 401, temas de VS Code Marketplace e interfaz en japonés + chino tradicional. Skills/herramientas: edición de imagen a imagen con image_generate, lote atómico de operations para memory, skill simplify-code, valor booleano write_approval (reemplaza a write_mode). Arquitectura: controlador de solicitudes de datos MCP, CronScheduler conectable + Chronos, ámbito Managed (/etc/hermes), retransmisión entre gateways. Comandos: /version, /billing, hermes curator run --consolidate (activación opcional). Seguridad: se cerró la omisión de la lista de denegación mediante escape del shell, adaptadores de aprobación/gateway con denegación ante fallos, entorno de cron depurado, secretos censurados en volcados de depuración, filtrado de exfiltración por stdio en MCP, actualizaciones de urllib3 + PyJWT por CVE. 21
2026-06-08 Guía v1.8: v0.16.0 «The Surface Release» (5 de junio de 2026, etiqueta v2026.6.5). Se cambió el título de la guía a v0.16 y se agregó la sección «Novedades de v0.16.0». Lo más destacado: Hermes ya no está limitado a la terminal. Aplicación nativa Hermes Desktop (Electron, macOS/Linux/Windows) con instalación en un clic, actualización automática desde la aplicación, chat con transmisión en vivo, función de arrastrar y soltar + pegado de imágenes desde el portapapeles, paleta Cmd+K, archivo/búsqueda de sesiones, selector de modelos en la barra de estado, conexión a un gateway remoto mediante WebSocket seguro (OAuth o usuario/contraseña, hosts por profile, enlaces @session entre profiles) y traducción completa al chino simplificado mediante i18n tipado. Panel de administración en el navegador (panel web → administración completa): activación/desactivación del catálogo MCP, administración de credenciales, creación de webhooks/hooks, configuración de memoria, controles del gateway, página del sistema con comprobación previa a la actualización + Debug Share, nueva página de canales y autenticación conectable (usuario/contraseña, OIDC autoalojado, hermes dashboard register). Comandos nuevos: /undo [N] (CLI/TUI/mensajería), interfaz predeterminada configurable (cli/tui, --cli), /model unificado en la TUI + vista superpuesta de sesiones, hermes portal, hermes prompt-size, hermes sessions optimize. Modelos nuevos: deepseek-v4-flash, MiniMax-M3 (contexto de 1M), qwen3.7-plus, gemini-3.5-flash; OAuth de xAI Grok como integración de primera clase en el iniciador de escritorio; selector difuso de modelos; actualización del catálogo cada hora. Skills: conjunto predeterminado más reducido (Spotify → plugin nativo, Linear → hermes mcp install linear, eliminación de skills inactivas), filtro de relevancia environments: (kanban/docker/s6), fuente de confianza predeterminada NVIDIA/skills, exposición progresiva (por ámbito) de herramientas MCP/plugins. Seguridad: CVE-2026-48710 (BadHost de Starlette) fijado en ≥1.0.1; comprobaciones de SSRF fuera del bucle de eventos; token de portador de Bedrock eliminado del entorno de subprocesos; acceso de lectura protegido para bws_cache.json; docker restart/stop/kill agregado a los patrones peligrosos; depuración de caracteres Unicode invisibles. Se cerraron 2 elementos P0 + 62 P1 (16 etiquetados como seguridad). 20
2026-05-31 Guía v1.7.1: v0.15.1 (29 de mayo de 2026, 01:12 UTC) — parche Velocity. Corrección urgente publicada el mismo día después de Velocity; se fijó la línea de la etiqueta v2026.5.29. Corrige el bucle de recarga con respuesta 401 del panel que afectaba las implementaciones en modo loopback. Docker ya no trata --insecure como implícito; configura HERMES_DASHBOARD_INSECURE=1 explícitamente para volver a activarlo. Los comandos simples de MCP (npx, npm, node) vuelven a resolverse correctamente dentro de contenedores Docker. Se muestran correctamente las etiquetas de fuente y la barra lateral de categorías de la página de skills. Los workers de Kanban responden correctamente a SIGTERM sin dejar procesos huérfanos. El catálogo de Skills.sh se amplió de 858 a 19.932 entradas mediante el descubrimiento de mapas del sitio. 28 commits, 21 PR fusionadas, 9 colaboradores. v0.15.2 (29 de mayo de 2026, 13:37 UTC) — parche de empaquetado de Velocity. Corrige las distribuciones wheel y sdist para incluir los manifiestos plugin.yaml, de modo que las instalaciones desde PyPI funcionen sin cargar por separado el árbol de código fuente. Corrección urgente limitada al empaquetado, 4 colaboradores. 52
2026-05-28 Guía v1.7: Se agregó v0.15.0 (28 de mayo de 2026) — La versión Velocity (etiqueta v2026.5.28). Aspecto destacado: una refactorización masiva y nuevas primitivas de orquestación. Refactorización del código base: run_agent.py se redujo un 76 % (de 16.083 a 3.821 líneas), distribuidas entre 14 módulos cohesivos. Kanban multiagente v2: descomposición automática de objetivos de alto nivel en subtareas, topología de enjambre para coordinar trabajadores en paralelo, selección de modelos por tarea, tareas programadas y administración de worktrees. Rendimiento: un segundo adicional menos en el arranque en frío; reducción del 47 % en las llamadas a funciones por conversación; session_search se rediseñó y ahora es 4.500 veces más rápido, tras eliminar la dependencia de LLM (y su costo de API). Seguridad: la defensa contra Promptware protege frente a la inyección de prompts de la clase Brainworm en tres puntos de control de seguridad; la integración con Bitwarden Secrets Manager sustituye varias claves de API, una por proveedor, por un único token de arranque. Paquetes de skills: permite cargar varias skills simultáneamente con un solo comando con barra diagonal. Orquestador de sesiones en la TUI: administración de varias sesiones dentro de una única ventana de terminal. Nuevos proveedores: Krea 2 (Medium/Large) y compatibilidad con el plugin FAL para generar imágenes; la nueva ronda de integración con xAI agrega un plugin de búsqueda web, OAuth upstream, detección de modelos retirados y pausas naturales en TTS. Estadísticas: 1.302 commits, 747 PR fusionadas y 321 colaboradores de la comunidad. Según las notas de la versión de GitHub, una versión de corrección publicada el mismo día o al día siguiente soluciona el bucle de recarga por el error 401 del panel, una variable de entorno explícita para --insecure de Docker, la resolución de comandos sin ruta de MCP en Docker (npx, npm, node), la restauración de la página Skills, la gestión de SIGTERM en los trabajadores de Kanban y el catálogo completo de Skills con 19.932 entradas mediante el mapa del sitio. 53
2026-05-21 Guía v1.6: Se agregó v0.14.0 (16 de mayo de 2026) — La versión Foundation. Aspecto destacado: una base de instalación y ejecución más ligera, además de una cobertura más amplia de proveedores, gateway, contenido multimedia y verificación. Se agregaron OAuth de SuperGrok con grok-4.3 y un contexto de 1 millón, hermes proxy compatible con OpenAI para proveedores de OAuth, x_search de primera clase, pip install hermes-agent, instalación diferida de dependencias, un inicio unos 19 segundos más rápido, llamadas CDP del navegador 180 veces más rápidas, LINE + SimpleX Chat para un total de 22 plataformas de mensajería, compatibilidad integral con Microsoft Teams, /handoff, /subgoal, botones nativos de aclaración en Telegram/Discord, recuperación del historial de Discord, vision_analyze con píxeles sin procesar, un pie de verificación de cambios en archivos en cada turno, diagnósticos semánticos de LSP tras cada escritura, video_generate unificado, computer_use mediante cua-driver para proveedores distintos de Anthropic, URL en las que se puede hacer clic mediante OSC8, compatibilidad con Zed ACP Registry, el enrutador OpenRouter Pareto Code, NovitaAI, el entorno de ejecución app-server de Codex, el repositorio confiable huggingface/skills, 9 skills opcionales, ctx.llm / tool_override para plugins, búsqueda web con Brave/DDGS, el cambio de nombre de Qwen Cloud, una beta nativa para Windows y la resolución de 12 incidencias P0 y 50 P1. 19
2026-05-07 Guía v1.5: Se agregó v0.13.0 (7 de mayo de 2026) — La versión Tenacity. Aspecto destacado: un tablero Kanban multiagente robusto (latido, recuperación, detección de procesos zombis, control de alucinaciones, max_retries por tarea y tableros multiproyecto) que convierte los enjambres en una primitiva de primera clase, en vez de un patrón de delegación. El comando /goal mantiene al agente centrado en un objetivo entre turnos (el patrón de bucle Ralph como comando con barra diagonal). Nueva herramienta video_analyze, que prioriza Gemini y ofrece compatibilidad ampliable con otros modelos compatibles. Proveedor de TTS xAI Custom Voices con clonación de voz. i18n en 7 idiomas (zh-Hans, ja, de, es, fr, uk, tr) para los mensajes de CLI y gateway; la documentación solo está disponible en zh-Hans. Google Chat como 20.ª plataforma de mensajería mediante el patrón de adaptadores conectables; IRC + Microsoft Teams se migraron al mismo patrón. ProviderProfile ABC + plugins/model-providers/ para incorporar proveedores externos conectables sin modificar el núcleo. Reanudación automática de sesiones después de reiniciar el gateway, ejecutar /update o recargar archivos fuente. Reescritura de Checkpoints v2 con un diseño de almacenamiento único, depuración efectiva y límites de protección para el disco. Resolución de ocho vulnerabilidades P0: ocultamiento de secretos activado de forma predeterminada, omisión de restricciones en mensajes directos entre servidores de Discord (CVSS 8.1), rechazo de desconocidos + silenciamiento de chats propios en WhatsApp, TOCTOU de MCP OAuth, TOCTOU de auth.json de CLI, protección básica del navegador frente a SSRF, análisis de inyección de prompts en cron y ocultamiento de secretos en hermes debug share. Linting posterior a la escritura para Python/JSON/YAML/TOML, modo de cron no_agent solo para scripts, listas de permitidos por plataforma en Slack/Telegram/Mattermost/Matrix/DingTalk y mejoras de MCP (transporte SSE, reenvío de OAuth, etiquetas MEDIA para imágenes). Estadísticas desde v0.12.0: 864 commits, 588 PR fusionadas, 829 archivos modificados, 295 colaboradores de la comunidad y 282 incidencias cerradas (13 P0 y 36 P1). 18
2026-05-06 Guía v1.4: Se agregó v0.12.0 (30 de abril de 2026) — La versión Curator. Aspecto destacado: un Curator autónomo en segundo plano que se ejecuta con el temporizador cron del gateway (ciclo predeterminado de 7 días), evalúa la biblioteca de skills según una rúbrica, elimina las skills obsoletas, consolida las relacionadas y redacta informes de cada ejecución; así, Hermes se mantiene por sí mismo entre sesiones activas. El bucle de mejora continua se actualizó con evaluaciones basadas en rúbricas, preferencia por actualizaciones activas, herencia correcta del entorno de ejecución y toolsets acotados, restringidos a la memoria y las skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, OAuth de MiniMax y Tencent Tokenhub. LM Studio pasó a ser de primera clase. Los manifiestos remotos del catálogo de modelos ahora se actualizan automáticamente sin necesidad de publicar nuevas versiones. Dos nuevas plataformas de mensajería: Microsoft Teams (la 19.ª, mediante una arquitectura de gateway conectable) y Tencent Yuanbao (la 18.ª, con texto + contenido multimedia nativos). Spotify nativo mediante OAuth con PKCE y una skill incluida; plugin de Google Meet para llamadas y transcripciones; proveedor local de TTS Piper. ComfyUI v5 + TouchDesigner-MCP dejaron de ser opcionales y ahora se incluyen de forma predeterminada. Nuevas skills: Humanizer, claude-design, design-md y airtable. Incorporaciones a CLI: modo de ejecución única hermes -z, comprobación previa hermes update --check, comando con barra diagonal /reload-skills y estilos conectables para el indicador de actividad. El arranque en frío visible de la TUI se redujo aproximadamente un 57 % mediante la inicialización diferida del agente y las importaciones diferidas. Seguridad: el ocultamiento de secretos se desactivó de forma predeterminada para evitar la corrupción de cargas útiles; lista de bloqueo estricta para comandos irrecuperables. Estadísticas: 1.096 commits, 550 PR fusionadas y 213 colaboradores de la comunidad. 17
2026-04-25 Guía v1.3: Se agregó v0.11.0 (23 de abril de 2026) — La versión Interface. Reescritura completa de la TUI interactiva con React/Ink, con un backend Python JSON-RPC (tui_gateway); editor de mensajes fijo, transmisión en tiempo real con compatibilidad con el portapapeles OSC-52, teclas estables para los selectores, barra de estado con cronómetro por turno y rama de git, confirmación para /clear, tema claro preestablecido y una capa superpuesta para observar la creación de subagentes. Arquitectura de transporte conectable: la conversión de formatos y el transporte HTTP se trasladaron a agent/transports/ para simplificar la integración de proveedores. AWS Bedrock nativo mediante Converse API. Cinco nuevas vías de inferencia: NVIDIA NIM, Arcee AI, Step Plan, OAuth de Google Gemini CLI y Vercel ai-gateway. GPT-5.5 mediante OAuth de Codex: ahora se puede acceder al nuevo modelo insignia de OpenAI a través de OAuth de ChatGPT Codex sin una clave de API independiente. QQBot (17.ª plataforma de mensajería) con configuración mediante escaneo de QR y transmisión en tiempo real. Ampliación de las capacidades de los plugins: comandos con barra diagonal, envío de herramientas, bloqueo de la ejecución y transformación de resultados. /steer <prompt>: permite orientar al agente durante la ejecución mediante la inserción de una nota que este verá después de su siguiente llamada a una herramienta, sin interrumpir el turno ni invalidar la caché del prompt. Los hooks de shell conectan scripts como hooks del ciclo de vida sin plugins de Python. El modo de entrega directa mediante webhook reenvía las cargas útiles directamente a un chat de la plataforma y omite al agente para distribuirlas a varios destinos. Delegación más inteligente, con roles de orquestador, profundidad de creación configurable y coordinación de archivos. El panel incorpora un sistema de plugins, cambio de tema en tiempo real, i18n y adaptación a dispositivos móviles. Estadísticas desde v0.9.0: 1.556 commits, 761 PR fusionadas, 1.314 archivos modificados, 224.174 inserciones y 29 colaboradores de la comunidad. 54
2026-04-16 Guía v1.2: Se agregó v0.10.0 — Nous Tool Gateway. Los suscriptores de pago de Nous Portal ahora pueden acceder a herramientas administradas (búsqueda web con Firecrawl, generación de imágenes con FAL / FLUX 2 Pro, TTS de OpenAI y automatización del navegador con Browser Use) sin claves adicionales de API. La activación se configura por herramienta mediante el nuevo campo use_gateway. Cuando se configuran ambos, el entorno de ejecución da prioridad al gateway sobre las claves directas de API. Se eliminó la variable de entorno HERMES_ENABLE_NOUS_MANAGED_TOOLS. CLI de Hermes Agent sigue teniendo licencia MIT y siendo completamente gratuito. 55
2026-04-13 Guía v1.1: Se agregaron las funciones de v0.8.0 y v0.9.0. Panel web local, modo /fast, plataformas iMessage + WeChat (16 en total), supervisión de procesos en segundo plano (watch_patterns), context engine conectable, hermes backup/hermes import, Termux/Android, proveedores xAI + MiMo + Google AI Studio + Qwen, comando /debug y refuerzo integral de la seguridad. 15 16
2026-04-10 Guía v1.0: Versión inicial sobre Hermes Agent v0.7.0. Autenticación de proveedores, config, CLI, comandos con barra diagonal, herramientas, skills, memoria, gateway, cron, MCP, compresión, arquitectura, migración desde OpenClaw, solución de problemas y preguntas frecuentes.

Referencias


  1. Nous Research, README del proyecto “Hermes Agent” en GitHub. Fuente principal para la descripción del producto (agente con capacidad de mejora continua, múltiples proveedores, gateway de mensajería, backends de terminal, evolución de skill, programador de cron y delegación) y el comando de una línea de “Instalación rápida”

  2. Nous Research, “Proveedores de IA” en la documentación de Hermes Agent. Fuente principal para la lista completa de proveedores, los métodos de autenticación de cada proveedor (Nous Portal OAuth, código de dispositivo de Codex, tipos de token de Copilot de GitHub, los tres métodos de autenticación de Anthropic, proveedores de IA chinos, enrutamiento de Hugging Face y endpoints personalizados), las tres vías de autenticación (clave API en .env, OAuth mediante hermes model y endpoint personalizado en config.yaml), la sintaxis del comando de barra /model (incluido custom:name:model), las plantillas de configuración de Ollama/vLLM/SGLang/llama.cpp/LM Studio, las instrucciones de red para WSL2, la cadena de detección de longitud de contexto, la configuración del modelo de respaldo, el enrutamiento inteligente de modelos y los proveedores personalizados con nombre. Todos los nombres de variables de entorno, tipos de token, reemplazos de URL base e identificadores de modelos específicos de cada proveedor que aparecen en esta publicación provienen de esta página. 

  3. Nous Research, “Arquitectura” en la guía para desarrolladores de Hermes Agent. Fuente principal para el diagrama general del sistema, la estructura de directorios, el flujo de datos a través de las rutas de sesión y mensajes del gateway de CLI, los tres modos de API (chat_completions, codex_responses, anthropic_messages), la resolución de proveedores mediante runtime_provider.py, la persistencia de sesiones mediante SQLite + FTS5, la lista de plataformas del gateway de mensajería, las fuentes de descubrimiento del sistema de plugins, el aislamiento de profile y los seis principios de diseño. 

  4. Nous Research, “Configuración” en la guía del usuario de Hermes Agent. Fuente principal para la estructura del directorio de configuración, la regla de config.yaml frente a .env (“config.yaml tiene prioridad para la configuración no secreta”), la cadena de precedencia de configuración (argumentos de CLI → entorno → config.yaml → .env → valores predeterminados), la configuración de compresión de contexto (bloque compression.* con threshold, threshold_tokens, target_ratio, tail_mode, protect_last_n, protect_first_n; el modelo, proveedor y endpoint del resumidor se encuentran en auxiliary.compression.* desde la migración a la versión 17 de la configuración), los umbrales de presión del presupuesto (precaución al 70 %, advertencia al 90 %), los tiempos de espera de streaming con ajuste automático para proveedores locales y el bloque completo de configuración de modelos auxiliares (auxiliary: con espacios para vision, web_extract, approval, compression, session_search, skills_hub, mcp, flush_memories). La restricción del proveedor "main" a los espacios de modelos auxiliares, de compresión y de respaldo también proviene de esta página. 

  5. Nous Research, “Migrar desde OpenClaw” en las guías de Hermes Agent. Fuente del flujo de migración de OpenClaw → Hermes. 

  6. Nous Research, “Referencia de comandos de CLI” en la documentación de referencia de Hermes Agent. Fuente principal para cada comando de nivel superior de CLI documentado en esta publicación, incluidos hermes chat, hermes model, hermes gateway, hermes setup, hermes auth, hermes status, hermes cron, hermes webhook, hermes doctor, hermes dump, hermes logs, hermes config, hermes pairing, hermes skills, hermes honcho, hermes memory, hermes acp, hermes mcp, hermes plugins, hermes tools, hermes sessions, hermes insights, hermes claw, hermes profile, hermes completion, hermes update y hermes uninstall. Todas las opciones de subcomandos, descripciones de opciones, el comportamiento del conjunto de credenciales, la sintaxis de filtrado de registros, las opciones de migración de OpenClaw, los comandos de administración de profile y los comandos de instalación de servicios que aparecen en esta publicación provienen de esta página. 

  7. Nous Research, “Instalación” en la guía de introducción de Hermes Agent. Fuente principal para el comando de instalación de una línea, el comportamiento del instalador (requisitos previos, compatibilidad con plataformas, detección automática de Termux y requisitos de Windows/WSL2), la tabla de componentes adicionales opcionales, los pasos de instalación manual y los comandos de verificación. 

  8. Nous Research, “Referencia de comandos de CLI” — consulta específicamente la sección de hermes dump, donde se describen el formato de salida del comando (encabezado, entorno, identidad, modelo, terminal, claves de API, funciones, servicios, carga de trabajo y reemplazos de configuración) y su uso previsto para compartir diagnósticos. 

  9. Nous Research, “Referencia de comandos de barra” en la documentación de referencia de Hermes Agent. Fuente principal para cada comando de barra incluido en esta publicación, la arquitectura de COMMAND_REGISTRY, la separación entre CLI y mensajería, los comandos de barra dinámicos de skill, los comandos rápidos de config.yaml, el comportamiento de coincidencia por prefijo y los comandos exclusivos de mensajería (/status, /sethome, /approve, /deny, /update, /commands). 

  10. Nous Research, “Herramientas y toolsets” en la guía del usuario de Hermes Agent. Fuente principal para la descripción general de las categorías de herramientas, los comandos de uso de toolset, los siete backends de terminal (local, docker, ssh, singularity, modal, daytona, vercel_sandbox), la configuración de contenedores (cpu, memory, disk, persistent), el refuerzo de seguridad de los contenedores, la administración de procesos en segundo plano de API y la compatibilidad con sudo. 

  11. Nous Research, “Sistema de skills” en la guía del usuario de Hermes Agent. Fuente principal para la divulgación progresiva, el formato de SKILL.md, las skills específicas de cada plataforma, la activación condicional (fallback_for_toolsets, requires_toolsets, fallback_for_tools, requires_tools), las skills administradas por el agente mediante skill_manage, los comandos y la lista de fuentes del centro de skills (official, skills-sh, well-known, github, clawhub, claude-marketplace, lobehub), el análisis de seguridad y los niveles de confianza, y los directorios externos de skills. 

  12. Nous Research, “Memoria persistente” en la guía del usuario de Hermes Agent. Fuente principal para los límites de caracteres de MEMORY.md / USER.md, el patrón de instantánea congelada, las acciones de la herramienta de memoria (add, replace, remove), qué guardar y qué omitir, la comparación entre la memoria y la búsqueda de sesiones, y la lista de ocho proveedores externos de memoria (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). 

  13. Nous Research, “Personalidad y SOUL.md” en la guía del usuario de Hermes Agent. Fuente principal para el comportamiento de SOUL.md (se encuentra en HERMES_HOME, nunca se sobrescribe, ocupa el espacio n.º 1 del prompt del sistema y se analiza en busca de riesgos de seguridad antes de incluirse), la distinción entre SOUL.md y AGENTS.md, la lista de personalidades incorporadas (14 personalidades, desde helpful hasta hype), las personalidades personalizadas en config.yaml, el patrón de superposición de /personality y el orden completo de ensamblaje del conjunto de prompts. 

  14. Nous Research, “Usar MCP con Hermes” y Referencia de configuración de MCP en las guías y la documentación de referencia de Hermes Agent. Fuente para el formato de configuración mcp_servers: en config.yaml con los campos command, args, env

  15. Notas de la versión 0.8.0 de Hermes Agent. 8 de abril de 2026. Notificaciones automáticas de procesos en segundo plano, MiMo v2 Pro gratuito en Nous Portal, cambio de /model en vivo entre plataformas, proveedor nativo de Google AI Studio, OAuth de Qwen, tiempos de espera basados en inactividad, botones de aprobación en Slack/Telegram, OAuth 2.1 PKCE de MCP, registro centralizado y expansión del sistema de plugins. 

  16. Notas de la versión 0.9.0 de Hermes Agent. 13 de abril de 2026. Panel web local, modo rápido (/fast), iMessage mediante BlueBubbles, WeChat + WeCom, Termux/Android, supervisión de procesos en segundo plano (watch_patterns), proveedores nativos de xAI + Xiaomi MiMo, context engine conectable, compatibilidad unificada con proxies, refuerzo de seguridad (correcciones de path traversal, shell injection, SSRF y RCE), hermes backup/hermes import, /debug + hermes debug share, 16 plataformas compatibles. 487 commits, 269 PR fusionadas y 24 colaboradores. 

  17. Notas de la versión Hermes Agent v0.12.0. 30 de abril de 2026. «La versión Curator». Curator autónomo en segundo plano que evalúa, depura y consolida la biblioteca de skills en un ciclo predeterminado de 7 días ejecutado mediante el cron del gateway. Se actualizó el ciclo de mejora continua: evaluación basada en rúbricas, preferencia por actualizaciones activas, herencia correcta del entorno de ejecución y toolsets delimitados y restringidos a memoria y skills. Cuatro nuevos proveedores de inferencia: GMI Cloud, Azure AI Foundry, MiniMax OAuth y Tencent Tokenhub. LM Studio pasa a ser una opción de primera clase. Los manifiestos remotos del catálogo de modelos se actualizan automáticamente sin requerir nuevas versiones. Dos nuevas plataformas de mensajería: Microsoft Teams (la 19.ª, mediante una arquitectura de gateway extensible) y Tencent Yuanbao (la 18.ª, con texto y contenido multimedia nativos). Integración nativa con Spotify mediante PKCE OAuth y una skill incluida; plugin de Google Meet para llamadas y transcripciones; proveedor local de TTS Piper. ComfyUI v5 + TouchDesigner-MCP incluidos de forma predeterminada. Nuevas skills: Humanizer, claude-design, design-md y airtable. CLI: modo de ejecución única hermes -z, comprobación previa hermes update --check, comando de barra /reload-skills y estilos extensibles para el indicador de actividad. El inicio en frío de la TUI se redujo cerca de un 57 % mediante la inicialización diferida. Seguridad: la ocultación de secretos está desactivada de forma predeterminada; lista de bloqueo estricta para comandos irrecuperables. Estadísticas desde v0.11.0: 1.096 commits, 550 PR fusionadas y 213 colaboradores de la comunidad. Consulta también: etiqueta de la versión v2026.4.30

  18. Notas de la versión Hermes Agent v0.13.0. 7 de mayo de 2026. «La versión Tenacity». Tablero Kanban multiagente con señal de actividad, recuperación de tareas, detección de procesos zombis, control de alucinaciones, max_retries por tarea y tableros multiproyecto. Comando de barra /goal para fijar objetivos entre turnos (primitiva del ciclo Ralph) con un límite configurable de turnos. Herramienta video_analyze, con Gemini como primera opción y extensibilidad multimodal compatible. Proveedor de TTS xAI Custom Voices con clonación de voz. Internacionalización en 7 idiomas: zh-Hans, ja, de, es, fr, uk y tr (CLI + mensajes del gateway; documentación solo en zh-Hans). Google Chat como la 20.ª plataforma de mensajería mediante un patrón de adaptadores extensibles con enlaces genéricos de plugin env_enablement_fn / cron_deliver_env_var; IRC y Microsoft Teams migraron al mismo patrón. Clase base abstracta ProviderProfile + plugins/model-providers/ para proveedores externos extensibles. Reanudación automática de sesiones después de reiniciar el gateway, ejecutar /update o recargar archivos fuente. Reescritura de Checkpoints v2 con un único almacén, depuración real, mecanismos de protección del disco y sin repositorios paralelos huérfanos. Ocho correcciones de seguridad P0: ocultación de secretos activada de forma predeterminada; omisión de restricciones en mensajes directos entre servidores de Discord (CVSS 8.1, listas de roles permitidos delimitadas por servidor); WhatsApp rechaza de forma predeterminada a desconocidos y nunca responde en el chat con uno mismo; condición TOCTOU al guardar credenciales de MCP OAuth; condición TOCTOU de CLI auth.json en los mecanismos de escritura de credenciales; protección mínima contra SSRF dirigido a metadatos de servicios en la nube desde el navegador con enrutamiento híbrido; análisis de las instrucciones ensambladas por cron —incluido el contenido de las skills— para detectar inyecciones de instrucciones; ocultación del contenido confidencial de los registros al subirlos con hermes debug share. Otros elementos destacados: análisis estático posterior a la escritura para Python/JSON/YAML/TOML; modo de vigilancia no_agent de cron, exclusivo para scripts; listas de permitidos por plataforma en Slack/Telegram/Mattermost/Matrix/DingTalk; mejoras de MCP (transporte SSE, reenvío de OAuth y resultados de imágenes como etiquetas MEDIA). Estadísticas desde v0.12.0: 864 commits, 588 PR fusionadas, 829 archivos modificados, 295 colaboradores de la comunidad y 282 incidencias cerradas (13 P0 y 36 P1). 

  19. Notas de la versión Hermes Agent v0.14.0. 16 de mayo de 2026. «La versión Foundation». Desde v0.13.0: 808 commits, 633 PR fusionadas, 1.393 archivos modificados, 165.061 inserciones, 545 incidencias cerradas (12 P0 y 50 P1) y 215 colaboradores de la comunidad. Incorpora SuperGrok OAuth con grok-4.3 y un contexto de 1 millón, hermes proxy, x_search, distribución mediante PyPI, dependencias diferidas, caché de instrucciones Claude de 1 hora entre sesiones, inicio cerca de 19 segundos más rápido, llamadas CDP del navegador 180 veces más rápidas, LINE y SimpleX Chat para alcanzar 22 plataformas de mensajería, /handoff, botones nativos de aclaración, recuperación del historial de Discord, vision_analyze con píxeles sin procesar, pie de verificación de cambios en archivos por turno, diagnósticos semánticos de LSP, video_generate unificado, computer_use mediante cua-driver, enlaces OSC8, compatibilidad con Zed ACP Registry, enrutador OpenRouter Pareto Code, NovitaAI, entorno de ejecución del servidor de aplicaciones de Codex, huggingface/skills, ctx.llm para plugins, tool_override, búsqueda con Brave/DDGS, refuerzo contra comandos peligrosos, /subgoal, cambio de nombre de Qwen Cloud, versión beta nativa para Windows, un total de 16 configuraciones regionales y amplias actualizaciones de documentación y pruebas. 

  20. Notas de la versión v0.16.0 de Hermes Agent, «The Surface Release», etiqueta v2026.6.5, publicada el 6 de junio de 2026 a las 00:55:58 Z (fecha de la etiqueta de la versión: 5 de junio de 2026); la más reciente al 8 de junio de 2026. Nuevo Hermes Desktop nativo (Electron, macOS/Linux/Windows; conexión a un gateway remoto mediante WebSocket seguro con OAuth o usuario/contraseña; hosts remotos por profile; enlaces @session entre profiles; interfaz en chino simplificado mediante i18n tipado, display.language). El panel web se amplió hasta convertirse en un panel de administración completo (controles para activar o desactivar elementos del catálogo de MCP, gestión de credenciales, creación de webhooks/hooks, configuración de memoria, controles del gateway, página System con comprobación antes de actualizar y Debug Share, y página Channels; autenticación extensible, incluido OIDC autoalojado y hermes dashboard register). Comandos nuevos: /undo [N], interfaz predeterminada configurable (cli/tui, --cli), /model en la TUI y vista superpuesta Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Modelos nuevos: deepseek-v4-flash, MiniMax-M3 (contexto de 1 millón), qwen3.7-plus, gemini-3.5-flash; OAuth de xAI Grok; selector con búsqueda aproximada; actualización horaria del catálogo. Skills: conjunto predeterminado más reducido, filtro de relevancia environments:, NVIDIA/skills como tap confiable predeterminado, divulgación progresiva de herramientas y corrección de falsos éxitos de OAuth en MCP. Seguridad: CVE-2026-48710 (Starlette BadHost) fijada en ≥1.0.1, comprobaciones SSRF fuera del bucle de eventos, eliminación del token de portador de Bedrock del entorno de los subprocesos, lectura protegida de bws_cache.json, incorporación de docker restart/stop/kill a los patrones peligrosos y saneamiento de Unicode invisible; se cerraron 2 P0 y 62 P1 (16 etiquetados como seguridad). Se excluyó el enfoque promocional de las notas de la versión (cantidades de PR/commits y «nada de esto existía hace una semana»); solo se registran datos concretos sobre funciones y versiones vinculados a la etiqueta. Verificación de la sesión actual: 8 de junio de 2026. 

  21. Notas de la versión v0.17.0 de Hermes Agent, «The Reach Release», etiqueta v2026.6.19, 19 de junio de 2026; la más reciente al 21 de junio de 2026. Mensajería: iMessage mediante Photon Spectrum (OAuth con código de dispositivo, hermes photon login, sin retransmisión mediante una Mac); adaptador oficial API de WhatsApp Business Cloud (sustituye el proceso puente); grupos de SimpleX, archivos adjuntos nativos, agrupación de texto y aceptación automática; plugin de plataforma Raft incluido. Modelos/proveedores: z-ai/glm-5.2 (contexto de 1 millón), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (OAuth de xAI, contexto de 200.000); modelo predeterminado de xAI → grok-build-0.1; los modelos adaptativos de Anthropic usan el contrato moderno de razonamiento (sin campo reasoning). CLI/comandos slash: /version, /billing, hermes photon login, hermes curator run --consolidate (opcional), interfaz gráfica de hermes model y clonación de profiles. Desktop: ventanas de seguimiento de subagentes en segundo plano (delegate_task(background=true)), selector de modelos de Composer, atajos reasignables, notificaciones nativas del sistema operativo, borradores por hilo, temas de VS Code Marketplace e interfaz en japonés y chino tradicional. Dashboard: creador completo de profiles, selector global de profiles, renovación de Skills Hub con análisis de seguridad, Automation Blueprints e inicio de sesión seguro (401 detrás de OAuth). Skills/herramientas: edición de imagen a imagen con image_generate en distintos proveedores, operaciones por lotes atómicas con operations de memory, skill simplify-code para revisión paralela y write_approval booleano en sustitución de write_mode. Arquitectura: subagentes en segundo plano (el identificador se devuelve de inmediato y el resultado vuelve a incorporarse como un turno), controlador de solicitudes de MCP para confirmar durante una llamada a una herramienta, herramientas de MCP que se conectan tarde y se exponen entre turnos, CronScheduler extensible y cron administrado con Chronos, ámbito Managed (/etc/hermes fijado por el administrador) y retransmisión entre gateways. Seguridad: se cerró una evasión de la lista de denegación de escapes del shell, comportamiento de cierre seguro cuando falta el módulo de aprobación y en los adaptadores del gateway con políticas propias, saneamiento del entorno de los scripts de tareas cron, ocultación de secretos en volcados de depuración, omisión de metadatos del host en el estado público, detección de patrones de exfiltración mediante stdio de MCP y actualizaciones por CVE de urllib3 y PyJWT. Se excluyó el enfoque promocional de la versión (cantidades de commits/PR). Verificación de la sesión actual: 21 de junio de 2026. 

  22. Notas de la versión v0.18.0 de Hermes Agent (etiqueta v2026.7.1), 1 de julio de 2026 — «The Judgment Release». Revisión de la lista de pendientes prioritarios (se cerraron todos los P0/P1, unos 692 elementos en 12 días); Mixture-of-Agents se puede seleccionar como modelo de primera clase en todas las interfaces, la salida completa de cada modelo de referencia se muestra en su propio bloque etiquetado y la respuesta se transmite en tiempo real; contratos de finalización para /goal (el agente verifica su propio trabajo ejecutando las comprobaciones del proyecto); comando /learn (convierte cualquier cosa en un skill reutilizable con solo describirla, con cumplimiento automático de CONTRIBUTING.md); cronología visual de memoria/skills /journey con edición y un grafo de memoria para Desktop; distribución en abanico de subagentes en segundo plano (varias tareas delegadas simultáneas); Desktop Projects (modelo de proyecto/repositorio/lane); gateway con reducción a cero y coordinación de drenaje; compatibilidad con Google Vertex AI (Gemini mediante cuentas de servicio de GCP, actualización automática de tokens OAuth2); comando $EDITOR de /prompt. Verificación de la sesión actual el 1 de julio de 2026 (PST) en la página de versiones de GitHub; v0.18.0 es la versión más reciente. 

  23. Notas de la versión v0.20.5 de Hermes Agent (etiqueta v2026.8.19, fecha de lanzamiento indicada: 19 de agosto; publicada el 21 de agosto de 2026; obtenida mediante la API de GitHub el 24 de agosto de 2026; versión preliminar: false). Descripción textual del periodo: «~746 commits en ~1.250 archivos (+111.500/-20.701): ~323 PR fusionados, incluidos hilos de salas grupales de Bot Mode, resúmenes de conversaciones plegables, avatares con rostros de blob y archivos PDF/adjuntos con arrastrar y soltar; el nivel web sin claves (rotación gratuita entre 5 proveedores con conmutación por error en anillo y búsqueda web en instalaciones nuevas sin ninguna clave); una oleada de mejoras de CLI (selector aproximado de /model, paleta de comandos con Ctrl+P y /status más completo); disciplina de ejecución y protecciones contra bloqueos en tiempo de ejecución derivadas de los hallazgos de la evaluación de Composio; comprobantes de hermes update y verificación --plan para flotas; hermes worktree list/prune; el proveedor sin opencode y con autenticación cero; aclaración mediante varias preguntas; mejoras de rendimiento en Desktop (hidratación de Bot Mode priorizando el primer renderizado, indicadores de carga del compositor y React Compiler en ambos renderizadores); y tareas cron con memoria persistente y esfuerzo de razonamiento configurable por tarea». La versión reitera: «Las notas completas y seleccionadas de este periodo se publicarán con v0.21.0». 

  24. Backends de terminal en la etiqueta v2026.8.31 (verificados de nuevo para la versión 1.17 de la guía; agent/terminal_env_registry.py es idéntico byte por byte a su versión de v2026.8.31, los datos del docstring de tools/terminal_tool.py no han cambiado y tools/environments/ aún contiene los mismos 7 módulos de backend, ahora junto con un auxiliar path_utils.py): docstring del módulo tools/terminal_tool.py, textualmente: «Una herramienta de terminal que ejecuta comandos en entornos locales, Docker, Modal, SSH, Singularity, Daytona y Vercel Sandbox» y, en la lista de selección de entornos, la entrada vercel_sandbox: «Ejecutar en sandboxes de Vercel Sandbox en la nube»; el módulo de backend tools/environments/vercel_sandbox.py existe en la etiqueta junto con daytona.py, docker.py, local.py, modal.py, singularity.py y ssh.py. El README de la etiqueta: «7 backends de terminal: local, Docker, SSH, Singularity, Modal, Daytona y Vercel Sandbox». La página de documentación Tools & Toolsets (fuente website/docs/user-guide/features/tools.md en la etiqueta) incluye vercel_sandbox en una tabla como «microVM de Vercel Sandbox en la nube» para la «ejecución en la nube con persistencia del sistema de archivos respaldada por instantáneas», muestra el comentario de configuración # or: docker, ssh, singularity, modal, daytona, vercel_sandbox e indica: «Autentícate con los 3 valores VERCEL_TOKEN, VERCEL_PROJECT_ID y VERCEL_TEAM_ID. … Los entornos de ejecución compatibles son node24, node22 y python3.13; Hermes usa /vercel/sandbox como raíz predeterminada del espacio de trabajo remoto». En v2026.8.31, el paquete tools/environments/ también incluye infraestructura compartida (base.py con la ABC BaseEnvironment, file_sync.py, modal_utils.py y managed_modal.py); el docstring del paquete cuenta Managed Modal como un modo de Modal, no como un octavo backend: «Modal también dispone de los modos directo y administrado por Nous, que se seleccionan mediante terminal.modal_mode». 

  25. Recuento de plataformas de mensajería en la etiqueta v2026.8.31 (verificado nuevamente para la versión 1.17 de la guía; idéntico a v2026.8.31: 28 filas en la tabla de documentación, los mismos 24 miembros del enum Platform y los mismos 22 directorios de adaptadores). La página de documentación de Messaging Gateway (fuente website/docs/user-guide/messaging/index.md en la etiqueta) contiene una tabla de «Comparación de plataformas» con 28 filas: Telegram, Discord, Slack, Google Chat, WhatsApp, WhatsApp Cloud API, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, Photon (iMessage), QQ, Yuanbao, Microsoft Teams, LINE, ntfy, Raft, IRC, Buzz, SimpleX. gateway/config.py define class Platform(Enum) con 24 miembros explícitos (local, telegram, discord, whatsapp, whatsapp_cloud, slack, signal, mattermost, matrix, homeassistant, email, sms, dingtalk, api_server, webhook, msgraph_webhook, feishu, wecom, wecom_callback, weixin, bluebubbles, qqbot, yuanbao, relay) y documenta: «Las plataformas de plugins utilizan miembros dinámicos creados según se necesiten mediante _missing_(), por lo que Platform("irc") funciona sin modificar este enum». El árbol plugins/platforms/ de la etiqueta contiene 22 directorios de adaptadores: a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp. Descripciones de las plataformas: la página de ntfy, textualmente: «ntfy es un servicio sencillo de notificaciones de publicación-suscripción basado en HTTP. Funciona con el servidor público gratuito alojado en ntfy.sh o con cualquier instancia autoalojada… suscríbete a un tema desde la aplicación móvil de ntfy, envía mensajes al tema para hablar con el agente y recibe la respuesta en tu teléfono». La página de Buzz, textualmente: «El adaptador de Buzz conecta Hermes con una comunidad de Buzz —la plataforma de código abierto de Block para la colaboración entre humanos y agentes, creada sobre el protocolo Nostr— y retransmite mensajes entre los canales de Buzz (o mensajes directos) y el agente. El tráfico saliente ejecuta externamente el binario buzz CLI… el entrante utiliza una suscripción nativa de Nostr WebSocket». Ambas páginas indican: «Ejecuta hermes gateway setup y selecciona… para seguir una guía paso a paso». 

  26. Recuento de proveedores en la etiqueta v2026.8.31 (verificado nuevamente para la versión 1.17 de la guía; v0.21.0 CAMBIÓ estos recuentos respecto de las 38 entradas estáticas, los 37 directorios de plugins y las 41 filas de documentación de v2026.8.31). hermes_cli/models.py declara CANONICAL_PROVIDERS: list[ProviderEntry] con 39 entradas estáticas (nous, fireworks, openrouter, moa, novita, lmstudio, anthropic, openai-codex, openai-api, alibaba, xai-oauth, xiaomi, tencent-tokenhub, tencent-tokenplan, nvidia, copilot, copilot-acp, huggingface, gemini, vertex, deepseek, xai, zai, kimi-coding, kimi-coding-cn, stepfun, minimax, minimax-oauth, minimax-cn, ollama-cloud, arcee, gmi, kilocode, opencode-zen, opencode-go, bedrock, azure-foundry, ai-gateway, qwen-oauth), seguidas del comentario «Extiende automáticamente CANONICAL_PROVIDERS con cualquier proveedor registrado en providers/ que aún no esté en la lista anterior. Basta con agregar plugins/model-providers// para exponer un nuevo proveedor en el selector de modelos»; el bucle omite únicamente los tipos de autenticación oauth_device_code, oauth_external, external_process, aws_sdk, copilot y vertex (sin cambios). El árbol plugins/model-providers/ de la etiqueta contiene 39 directorios de proveedores (nebius-token-factory y router se agregaron durante el periodo de v0.21.0); los nueve que no tienen una entrada estática (actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage) se resuelven como el tipo de autenticación api_key: siete declaran auth_type="api_key" explícitamente (incluidos ambos plugins nuevos), mientras que commandcode y opencode-free heredan auth_type: str = "api_key" de providers/base.py. La página de documentación de AI Providers (fuente website/docs/integrations/providers.md en la etiqueta) presenta tablas con 45 proveedores identificados por nombre, además de una fila «Endpoint personalizado» (filas agregadas desde v2026.8.31: Ramp Router, Nebius Token Factory, Tencent TokenPlan, Alibaba Cloud (Token Plan), citadas en 36); todos los nombres de variables de entorno, identificadores de proveedores, alias y notas de autenticación de las nuevas filas de la matriz se citan de esa tabla, entre ellos: «OpenCode Free | Sin clave: no se necesita ninguna clave API ni cuenta (proveedor: opencode-free, alias: free, opencode_free). Selecciónalo mediante hermes model o /model free; las solicitudes se envían de forma anónima», «Google Vertex AI | … OAuth2 mediante una JSON de cuenta de servicio o ADC; requiere facturación de GCP», «AWS Bedrock | … cadena estándar de credenciales de AWS mediante boto3» y «CommandCode | … Funciona con los planes GOAT/Pro/Max/Provider (no con el plan Go de $1, que no incluye acceso a API)». La fila de Meta AI proviene del bloque de claves API de primera clase de la misma página: «Meta Model API (familia Muse Spark)… hermes chat --provider meta-ai --model muse-spark-1.2… Requiere: MODEL_API_KEY». Cerebras aparece únicamente en la tabla «Otros proveedores compatibles» de la página (https://api.cerebras.ai/v1, «inferencia con chips a escala de oblea»), por lo que figura debajo de la fila de endpoint personalizado y no como proveedor de primera clase. 

  27. Superficie de CLI en la etiqueta v2026.8.31 (verificada nuevamente para la versión 1.17 de la guía; los textos citados de ayuda de las opciones globales y todos los datos sobre _BUILTIN_SUBCOMMANDS permanecen sin cambios desde v2026.8.31: el frozenset es idéntico, con 73 entradas, mientras que hermes_cli/_parser.py solo cambió dentro de hermes chat, como se documenta en 40). Las opciones globales y sus textos de ayuda provienen de hermes_cli/_parser.py: --in («Cambia a DIR antes de iniciar o reanudar. Al combinarse con ‘–resume latest’ o -c, se elige la sesión más reciente para el espacio de trabajo de DIR y la sesión permanece en DIR (se omite la restauración del directorio de trabajo registrado)»), --ignore-user-config («Ignora ~/.hermes/config.yaml y usa los valores predeterminados integrados (las credenciales de .env se siguen cargando)»), --ignore-rules («Omite la inserción automática de AGENTS.md, SOUL.md, .cursorrules, la memoria y las skills precargadas»), --tui («Inicia la TUI moderna en lugar del REPL clásico»), --cli («Fuerza el REPL clásico de prompt_toolkit (anula display.interface=tui)»), --dev («Con –tui: ejecuta las fuentes de TypeScript mediante tsx (omite la compilación de dist)») y --version/-V («Muestra la versión y sale»). hermes_cli/_startup_fast.py aplica la ruta rápida únicamente a argv in (["--version"], ["-V"]), y el frozenset _BUILTIN_SUBCOMMANDS de hermes_cli/main.py no contiene ninguna entrada version; la Referencia de comandos de CLI documenta hermes --version («Muestra información de la versión»), pero no hermes version. Las descripciones de los comandos son los textos help= del analizador en hermes_cli/main.py y hermes_cli/subcommands/*.py para esa etiqueta (por ejemplo, approvals: «Herramientas de solicitud de aprobación (extrae del historial propuestas para la lista de permitidos)»; pause: «Parada de emergencia: pausa la ejecución de cron/kanban y los nuevos turnos del gateway»; sync: «Skill Sync: sincroniza tus skills entre dispositivos y con tu equipo»; verify: «Detecta la receta de ejecución de un proyecto y realiza una prueba de humo»; login: «Obsoleto. Usa hermes auth para administrar credenciales, hermes model para seleccionar un proveedor o hermes setup para realizar la configuración completa»), cotejados con la tabla de comandos de nivel superior de la documentación. hermes update --plan se encuentra en hermes_cli/subcommands/update.py: «Muestra el plan de actualización y sale sin cambiar nada: el tipo de instalación (git/docker/nix), todos los servicios de Hermes en ejecución en todos los profiles, junto con su supervisor y la versión del código que ejecutan, y cómo se reiniciará cada uno. Es de solo lectura y seguro para una flota activa»; no existe ningún comando fleet en _BUILTIN_SUBCOMMANDS. hermes worktree está registrado en hermes_cli/main.py (ayuda: «Audita y recupera worktrees de git acumulados y ramas fusionadas») con list (alias ls, audit; «Clasifica cada árbol: antigüedad, tamaño, veredicto y motivo [acción predeterminada]»), prune («Elimina los árboles seguros y las ramas locales completamente fusionadas»), --repo, --dry-run («Muestra el plan sin cambiar nada»), --trees-only («Elimina únicamente los worktrees; deja intactas las ramas locales») y --branches-only («Elimina únicamente las ramas locales fusionadas; deja intactos los worktrees»). El comando slash /worktree es _handle_worktree_command en hermes_cli/cli_commands_mixin.py (bloque de sintaxis: /worktree, /worktree new [name], /worktree list, /worktree prune [--dry-run]); la sección «Limpieza de worktrees» de la guía del usuario de CLI añade: «Dentro de una sesión, /worktree prune [--dry-run] hace lo mismo (y nunca modifica el árbol donde se ejecuta la sesión)». 

  28. Comandos de Nous Portal en la etiqueta v2026.8.31 (verificados nuevamente para la versión 1.17 de la guía; hermes_cli/portal_cli.py es idéntico byte por byte a su versión de v2026.8.31). El README de la etiqueta, en la sección «Omite la recopilación de claves de API: Nous Portal», indica: «Un solo comando desde una instalación nueva: hermes setup --portal… Este inicia sesión mediante OAuth, establece Nous como proveedor y activa Tool Gateway. Puedes comprobar en cualquier momento qué está conectado con hermes portal info». hermes_cli/portal_cli.py registra portal (ayuda: «Configura Nous Portal [inicio de sesión, selección de modelo y Tool Gateway]; consulta también portal info») con login («Inicia sesión en Nous Portal y lo configura [opción predeterminada; incorporación en un solo paso]»), info («Muestra un resumen de la autenticación de Portal y el enrutamiento de Tool Gateway»), open («Abre la página de suscripción de Portal en tu navegador predeterminado»), tools («Enumera las herramientas de Tool Gateway e indica cuáles se enrutan mediante Nous») y el comentario de código «status se conserva como alias oculto y retrocompatible de info». La página de documentación de Tool Gateway muestra hermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one go y hermes portal info # Portal auth + Tool Gateway routing summary; la Referencia de comandos de CLI para la misma etiqueta todavía documenta hermes portal [status|open|tools]

  29. Comparación de GitHub de API, NousResearch/hermes-agent, v2026.8.19...main, obtenida el 26 de agosto de 2026: ahead_by: 1104, behind_by: 0. La API de versiones publicadas enumera v2026.8.19 (Hermes Agent v0.20.5, publicada el 2026-08-21T12:16:39Z) como la etiqueta más reciente, cuyas notas indican: «Las notas de versión completas y seleccionadas para este periodo se publicarán con la versión v0.21.0, que documentará todo a partir de v0.20.0». Se volvió a comprobar el 27 de agosto de 2026 con la nueva etiqueta: v2026.8.27...main devuelve ahead_by: 0, behind_by: 0, status: identical; ahora main coincide exactamente con la etiqueta v0.20.6. 

  30. Notas de la versión Hermes Agent v0.20.6 (etiqueta v2026.8.27, fecha de lanzamiento indicada: 27 de agosto; publicada el 2026-08-27T12:06:53Z; obtenida mediante la GitHub de API el 27 de agosto de 2026; versión preliminar: false). Descripción textual: «Versión de corrección. Esta etiqueta reúne las aproximadamente 525 solicitudes de incorporación de cambios fusionadas desde v0.20.5 en una versión estable etiquetada para consumidores posteriores (imágenes de Docker, implementaciones alojadas e instalaciones nuevas)». Descripción textual del periodo: «Desde v0.20.5 (v2026.8.19, etiquetada el 21 de agosto), este periodo incorporó aproximadamente 1.313 commits en unos 1.557 archivos (+177.113 / -21.682): cerca de 525 solicitudes de incorporación de cambios fusionadas, entre ellas la navegación con profiles reales sujeta a consentimiento (usa tu profile predeterminado de Chromium para la navegación local, con un flujo en Windows que requiere aprobación para cerrarlo); una ventana propia del sistema operativo para Browser de escritorio, además de un motor administrado de actualizaciones remotas de SSH y un panel de profiles de la flota; una gran ampliación del catálogo remoto de MCP (más de 50 servidores alojados por proveedores y verificados en vivo, incluidos Cloudflare, Grafana Cloud, Better Stack y Railway); almacenamiento en caché de resultados con TTL para web_search/web_extract; compresión lean-tail como opción predeterminada; tool_search con múltiples consultas y derivación de palabras; cifrado opcional mediante el llavero del sistema operativo para los secretos almacenados (se acabaron las solicitudes del llavero de macOS en cada inicio); actualizadores que pausan los gateways mediante el socket de control en vez de terminar sus árboles de procesos; instalaciones administradas mediante imágenes o paquetes que rechazan las actualizaciones inseguras en el mismo lugar (fase 3 de #91277); confirmaciones de incidentes persistentes de cron y errores más claros por discrepancias de código; controles para las vistas previas de enlaces en Slack; identidades de contenedor de Docker compartidas; backends conectables para el entorno de terminal; y nuevos modelos en los selectores (GLM-5.3-Flash, MiniMax M3 gratis y MiniMax H3 Max video)». La publicación reitera: «Las notas de versión completas y seleccionadas para este periodo se publicarán con la versión v0.21.0, que documentará todo a partir de v0.20.0: aspectos destacados, áreas funcionales y créditos completos de los colaboradores. No se omite nada de este periodo». 

  31. Compresión en la etiqueta v2026.8.31, verificada nuevamente en v2026.8.31 para la guía v1.17: tail_mode: str = "lean", la validación ("legacy", "lean"), el valor predeterminado "lean" de agent_init, la migración a la versión 17 de la configuración y la nota siguiente sobre el comentario auxiliar desactualizado siguen vigentes en la nueva etiqueta (context_compressor.py incorporó una ruta de reintento para resúmenes fijados que no modifica ninguno de los valores predeterminados citados). agent/context_compressor.py establece de forma predeterminada tail_mode: str = "lean" en ContextCompressor.__init__, con el comentario “Modo de cola reducido (#compaction-v2): ‘lean’ = cola de recencia pequeña y limitada + sección de resumen con mensajes del usuario reproducidos literalmente + punteros de recuperación; ‘legacy’ = cola de 0.20window (comportamiento publicado)” y la validación self.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean". agent/agent_init.py lee compression.tail_mode con el valor predeterminado "lean"; su comentario cuantifica ambos modos: “‘lean’ (predeterminado) conserva una cola literal limitada del 2,5 %, de 10K-25K, con mecanismos de punteros de recuperación… ‘legacy’ restaura la cola literal anterior a #87326, equivalente a 0.20threshold, que en configuraciones con ventanas grandes o umbrales elevados acumula entre 100K y 240K tokens por compresión”. La página de documentación sobre la configuración (fuente website/docs/user-guide/configuration.md en la etiqueta) muestra el bloque compression: con enabled, threshold: 0.50, threshold_tokens: null, target_ratio: 0.20, tail_mode: lean (con la anotación en v2026.8.31: “‘lean’ (predeterminado: cola limitada del 2,5 %, entre 10K y 25K, con un registro detallado de la sesión + índice de anclas + punteros de recuperación de session_search en el resumen, todo a partir de UNA llamada al resumidor auxiliar; ~3 veces menos tokens retenidos después de la compresión) o ‘legacy’ (cola literal de 0.20×threshold)”), protect_last_n: 20 y protect_first_n: 3; coloca los controles del resumidor en auxiliary.compression (model, provider, base_url) y señala: “Las configuraciones anteriores con compression.summary_model, compression.summary_provider y compression.summary_base_url se migran automáticamente a auxiliary.compression.* durante la primera carga (versión 17 de la configuración). No necesitas realizar ninguna acción manual”. La migración corresponde a _migrate_to_17 en hermes_cli/config_migrations.py (“Versión 16 -> 17: eliminar las claves heredadas compression.summary_”). La página para desarrolladores sobre la compresión del contexto (fuente website/docs/developer-guide/context-compression-and-caching.md en la etiqueta) incluye tail_mode en una tabla con el valor predeterminado lean, indica “Resultado en sesiones reales de 500K tokens: ~49K retenidos frente a ~162K” y “Los resultados antiguos de herramientas dentro de la cola lean se reducen a fragmentos de una línea que incluyen un puntero de recuperación”, y contiene la advertencia sobre el modelo de resumen (en v2026.8.31): “El modelo de resumen debe tener una ventana de contexto al menos tan grande como la del modelo principal del agente. […] El compresor elimina entonces los turnos intermedios sin un resumen, lo que provoca la pérdida silenciosa del contexto de la conversación”. (Hay un punto desactualizado en el proyecto original: en la “Referencia completa de la configuración auxiliar” de la página de configuración, el espacio auxiliary.compression aún lleva el comentario “Tiempo de espera de la compresión del contexto (independiente de la configuración compression.)”; el código de migración, el selector auxiliar interactivo de hermes model y la propia sección de compresión de la página son las fuentes más recientes y coincidentes). 

  32. Backends de terminal conectables en la etiqueta v2026.8.31 (verificados nuevamente para la guía v1.17; agent/terminal_env_registry.py es idéntico byte por byte a su versión de v2026.8.31). La cadena de documentación del módulo agent/terminal_env_registry.py, reproducida literalmente, indica: “Mapa central de backends de terminal conectables registrados. Los plugins lo completan durante la carga mediante PluginContext.register_terminal_environment_provider; tools.terminal_tool._create_environment lo consume” y “Los nombres de los backends integrados están reservados: register_provider rechaza cualquier proveedor cuyo nombre coincida con uno de ellos, por lo que un plugin nunca puede suplantar las implementaciones docker/modal/… incluidas en el árbol”; deliberadamente, “aquí no se resuelve el proveedor activo: el backend activo es el que indiquen TERMINAL_ENV / terminal.backend, exactamente como ocurre con los backends integrados”. Su frozenset BUILTIN_BACKEND_NAMES contiene los siete backends, además del alias del modo interno managed_modal: local, docker, singularity, modal, managed_modal, daytona, vercel_sandbox, ssh. La nueva página de documentación Plugins de proveedores de entornos de terminal (fuente website/docs/developer-guide/terminal-environment-plugin.md en la etiqueta), reproducida literalmente, señala: “Hermes ejecuta comandos de shell mediante un conjunto conectable de backends de terminal. Los backends integrados (local, Docker, Singularity, Modal, Daytona, Vercel Sandbox, SSH) se encuentran en el repositorio principal, dentro de tools/environments/. En cambio, los proveedores externos de entornos aislados se integran como plugins: un repositorio de plugin independiente instalado en ~/.hermes/plugins/ que registra un backend, el cual el usuario selecciona exactamente como uno integrado mediante terminal.backend en config.yaml”; presenta en una tabla las superficies que controla un proveedor registrado (envío de comandos, selector de backend de hermes setup, estado de sondeo del panel, comprobaciones de hermes status/hermes doctor, indicaciones del entorno en el prompt del sistema, manejo de rutas/cwd del contenedor, eliminación de secretos y aislamiento del entorno por sesión) y expone el objetivo del diseño: “Declarar estos indicadores en el proveedor elimina la clásica categoría de errores ‘el nuevo backend omitió el punto de clasificación N’: el núcleo consulta el registro en cada punto en lugar de usar una lista de nombres codificada de forma rígida”. 

  33. Verificación general en la etiqueta v2026.8.31 (guía v1.17). Idiomas: el árbol locales/ contiene 17 catálogos de mensajes: en.yaml más 16 traducciones (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh), idénticos a v2026.8.27. Personalidades: BUILTIN_PERSONALITIES en hermes_cli/personality.py contiene las mismas 14 entradas, desde helpful hasta hype (helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype); el archivo es idéntico byte por byte a su versión de v2026.8.27. Recuentos que CAMBIARON en la etiqueta: 39 entradas estáticas de CANONICAL_PROVIDERS (antes eran 38) y 39 directorios en plugins/model-providers/ (antes eran 37); consulta 26 y 36. Recuentos sin cambios: 24 miembros del enum Platform (lista de miembros idéntica en gateway/config.py, que solo incorporó un campo room_link_url para gateway), 22 directorios de adaptadores en plugins/platforms/ y 28 filas en la tabla comparativa de plataformas de la documentación; _BUILTIN_SUBCOMMANDS contiene las mismas 73 entradas (peer y worktree están presentes, todavía no incluye version ni approval-check, el nombre utilizado en las notas de la versión para hermes approvals test); hermes_cli/_startup_fast.py y hermes_cli/portal_cli.py son idénticos byte por byte a sus versiones de v2026.8.27

  34. Enrutamiento de modelos auxiliares en la etiqueta v2026.8.31 (verificado nuevamente para la versión 1.17 de la guía; el bloque predeterminado "auxiliary" de la nueva etiqueta contiene la misma lista de espacios, notas de eliminación y opciones no asociadas a espacios, y las citas de la documentación que aparecen a continuación se mantienen textualmente). La página de documentación de configuración (fuente website/docs/user-guide/configuration.md en la etiqueta), textualmente: «De forma predeterminada (auxiliary.*.provider: "auto"), Hermes dirige cada tarea auxiliar al modelo de chat principal: el mismo proveedor y modelo que elegiste en hermes model. No necesitas configurar nada para comenzar, pero ten en cuenta que, al usar modelos de razonamiento costosos (Opus, MiniMax M2.7, etc.), las tareas auxiliares generan un costo considerable»; su nota «Por qué “auto” usa tu modelo principal»: «Las versiones anteriores asignaban a los usuarios de agregadores (OpenRouter, Nous Portal) una opción predeterminada económica del proveedor. Esto resultaba inesperado: quienes pagaban una suscripción a un agregador veían que otro modelo gestionaba su tráfico auxiliar. Ahora, auto usa el modelo principal para todos, mientras que las anulaciones por tarea en config.yaml siguen teniendo prioridad»; y, sobre la extracción web: «(La extracción web no es una tarea auxiliar: web_extract y las instantáneas del navegador truncan el contenido extenso de manera determinista y almacenan el texto completo para paginarlo con read_file; no interviene ningún LLM.)» La lista de espacios canónica es el bloque predeterminado "auxiliary" de hermes_cli/config_defaults.py en la etiqueta: vision, compression, skills_hub, approval, review, mcp, title_generation, memory_query_rewrite, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer, goal_judge, curator, monitor, background_review, moa_reference y moa_aggregator (además de las opciones no asociadas a espacios transient_retries, free_only, openrouter_model y stream_only_base_urls); los espacios incluyen provider, model, base_url, api_key, timeout, extra_body y un reasoning_effort por tarea. Notas de eliminación del mismo archivo, textualmente: «web_extract ya no usa un LLM auxiliar: las páginas se truncan y almacenan con un puntero a read_file (sin resumen), y las instantáneas del navegador siguen el mismo patrón. El antiguo bloque auxiliary.web_extract.* se eliminó aquí. Los valores existentes en los archivos config.yaml de los usuarios son restos inofensivos y se ignoran» y «session_search ya no usa un LLM auxiliar (PR #27590: la herramienta con formato único devuelve directamente el contenido de la base de datos)»; el bloque no contiene ninguna clave flush_memories. Las descripciones breves de los espacios son los comentarios del mismo archivo («Especificador de triaje: desarrolla una descripción breve y preliminar de la columna Triage del Kanban para convertirla en una especificación concreta y después la pasa a todo. Se invoca mediante hermes kanban specify»; «Descomponedor de Kanban: descompone una tarea de triaje en un grafo de tareas secundarias que se asignan a perfiles especializados según su descripción. Se invoca mediante hermes kanban decompose y el despachador de descomposición automática de Kanban»; «Descriptor de perfiles: genera automáticamente una descripción de 1 o 2 oraciones sobre aquello para lo que resulta adecuado un perfil. Se invoca mediante hermes profile describe <name> --auto y el botón de generación automática del panel»; «Evaluador de objetivos: determina si la respuesta más reciente de una ejecución de /goal satisface el objetivo o contrato»; «Curador: bifurcación para revisar el uso de skills»; «Revisión en segundo plano: bifurcación de mejora automática posterior al turno que decide si debe guardar un recuerdo o modificar una skill»), los comentarios de referencia completa de la página de configuración («Inserción de etiquetas de audio ocultas para TTS de Gemini 3.1»; «Títulos de sesión generados automáticamente. Si el idioma está vacío, se usa el de la conversación»; auxiliary.title_generation.enabled: false desactiva los títulos automáticos) y la tabla de configuración de la página de documentación de Kanbanauxiliary.kanban_decomposer | Modelo que produce el grafo de tareas (invocado por Decompose)»; «auxiliary.profile_describer | Modelo que genera automáticamente las descripciones de los perfiles (invocado por hermes profile describe --auto)»). Ruta interactiva: ejecuta hermes model y elige «Configurar modelos auxiliares» para acceder a un selector por tarea (vision, title_generation, tts_audio_tags, compression, approval, triage_specifier, kanban_decomposer, profile_describer, delegation); la entrada Delegation se guarda en delegation.* en el nivel superior porque los subagentes «son agentes secundarios completos, no llamadas LLM auxiliares». 

  35. Notas de la versión 0.21.0 de Hermes Agent, «The Pantheon Release», etiqueta v2026.8.31, con fecha de lanzamiento indicada del 31 de agosto y publicada el 2026-08-31T19:29:49Z. Línea de estadísticas textual: «Desde la versión 0.20.0: ~5.800 confirmaciones · ~2.475 PR fusionadas · ~5.680 archivos modificados · ~869.000 inserciones · ~135.000 eliminaciones · ~2.100 incidencias cerradas · más de 760 colaboradores». Presentación textual: «The Pantheon Release. La versión 0.20.0 convirtió a Hermes en el heraldo: habló y llevó el mensaje a otros agentes. En la versión 0.21.0, los dioses se reúnen» y «Esta versión reúne todo lo incluido en las etiquetas de parches de infraestructura v0.20.1-v0.20.6; esos periodos están documentados en su totalidad aquí». Citas textuales de las áreas funcionales utilizadas anteriormente: modo Bot: «El modo Bot ahora forma parte integral de la aplicación de escritorio y está activado de manera predeterminada: cada profile de agente recibe un nombre, un rostro de avatar determinista (con controles para aleatorizarlo o bloquearlo) y un lugar en una lista compartida» y «Antes, “multiagente” se refería a la infraestructura; ahora parece una aplicación de chat llena de compañeros de trabajo» (#87886, #88243, #89386, #96726); hermes peer: «Las respuestas llegan al Bot Chat canónico de cada agente, por lo que las conversaciones entre agentes son duraderas y pueden inspeccionarse, en lugar de enviarse y olvidarse» (#88725, #88178, #91487); cron: «continuity=true transfiere el resultado de cada ejecución a la siguiente (para que un monitor pueda eliminar duplicados comparándolos con lo que ya informó), cada trabajo recibe un bloc de notas duradero y los trabajos en modo monitor omiten por completo el LLM cuando nada ha cambiado» (#91447, #80774, #81139, #81138); delegation: «consulta los agentes secundarios en ejecución, reorienta uno mientras trabaja mediante una corrección de rumbo o detenlo antes de tiempo y conserva el resultado parcial. Añade validación opcional mediante el esquema JSON a los resultados de los agentes secundarios, muestra el costo de cada delegation en los resultados y aumenta los valores predeterminados (250 iteraciones y 10 agentes secundarios simultáneos)» (#85232, #81144, #81142, #86506, #86745); MCP: «enlaces profundos hermes:// que instalan un servidor MCP con confirmación explícita» (#87525-#87581); CLI: «Ctrl+P abre una paleta de comandos con búsqueda aproximada, el selector de /model filtra a medida que escribes, /status muestra el modo de razonamiento, las aprobaciones pendientes y el uso del contexto, y la barra de estado puede mostrar en tiempo real el porcentaje de aciertos de caché, la latencia y los tokens por segundo, con controles independientes para cada campo» (#90730, #90717, #90745, #98250, #98282, #97666); navegador: «Hermes ahora navega, hace clic y lee directamente» (#90197, #89366); proveedores: «Meta Model API (Muse Spark) llega como proveedor integrado, junto con CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router y Actual Computer» (#88565, #88308, #97917, #97916, #97915 y recuperación de #79644/#26491); seguridad: «Los archivos protegidos de instrucciones del agente (AGENTS.md, skills y almacenes de memoria) ahora siempre requieren aprobación de escritura para que un agente afectado por una inyección de instrucciones no pueda reescribir discretamente sus propias órdenes permanentes» (#81152), además de la revisión general de ocultamiento de datos (#80965), la cobertura de aprobaciones en Windows (#84428), la identidad TCC (#95091) y la eliminación del MCP de Blender (#83404). Sección de cambios revertidos, textualmente: «Modo Model Council (/council): se incorporó y luego se revirtió; no está incluido en esta versión»; «Context engine DCP: se incorporó y luego se revirtió; no está incluido en esta versión»; «Servidor gateway exclusivamente WS (#94245): se fusionó y luego se revirtió (#96118); FastAPI permanece en la ruta de arranque de la aplicación de escritorio. La repetición de eventos con marcas de secuencia (#94219) SÍ se incluyó»; «Electron volvió a la versión 40.10.2; se eliminó el anclaje del intérprete de TCC (reemplazado por el enfoque basado en la identidad de firma que sí se incluyó)». La sección de correcciones de errores concluye: «…y aproximadamente dos mil incidencias cerradas más; durante este periodo se fusionaron en promedio unas 85 PR al día». 

  36. Nuevos proveedores en la etiqueta v2026.8.31. hermes_cli/models.py incorpora ProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)") (entrada estática n.º 39), los modelos de catálogo hy4-preview, hy3, hy3-preview y un grupo del selector únicamente visual "tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"]). plugins/model-providers/ incorpora nebius-token-factory/ y router/; ambos declaran auth_type="api_key", por lo que la extensión automática los incluye. La cadena de documentación del plugin de router dice textualmente: «Perfil de proveedor para Ramp Router, el gateway de LLM de Ramp: un único endpoint compatible con OpenAI Responses en https://api.router.com/v1, que distribuye cada solicitud entre proveedores ascendentes (OpenAI, Anthropic, xAI, Fireworks, …) y gestiona del lado del servidor los mecanismos de respaldo y los controles de gasto» … «Responses API es el protocolo nativo.» … «Los ID de modelo válidos son aquellos que devuelve GET /v1/models para la clave (las cuentas BYOK ven entradas adicionales), por lo que este perfil no incluye fallback_models: el selector depende de la consulta en vivo, siguiendo la recomendación del propio Router de nunca codificar nombres de modelos de forma fija». En la etiqueta, la página de documentación de proveedores de IA contiene una tabla con 45 proveedores identificados, además de la fila Custom Endpoint; estas son las cuatro filas incorporadas desde v2026.8.27, citadas textualmente: «Ramp Router | RAMP_ROUTER_API_KEY en ~/.hermes/.env (proveedor: router; alias: ramp-router, ramp, router.com; gateway nativo de Responses, catálogo en vivo limitado a la cuenta)»; «Nebius Token Factory | NEBIUS_API_KEY en ~/.hermes/.env (proveedor: nebius-token-factory; alias: nebius, nebius-tf, tokenfactory)»; «Tencent TokenPlan | TOKENPLAN_API_KEY en ~/.hermes/.env (proveedor: tencent-tokenplan, alias: tokenplan, tencent-lkeap; endpoint de Anthropic Messages)»; «Alibaba Cloud (Token Plan) | ALIBABA_TOKEN_PLAN_API_KEY en ~/.hermes/.env (proveedor: alibaba-token-plan; endpoint para China continental: alibaba-token-plan-cn): nivel de tokens de tarifa plana de Model Studio». model_overrides se encuentra en hermes_cli/config_defaults.py en la etiqueta ("model_overrides": {}; las entradas explícitas model_overrides.<provider>.<model_id> prevalecen sobre el catálogo y las entradas _default solo completan los vacíos de los modelos que el catálogo no contempla). 

  37. Continuidad de cron en la etiqueta v2026.8.31. La página de documentación de cron (fuente website/docs/user-guide/features/cron.md en la etiqueta) dice textualmente: «Configura continuity=true y el trabajo incorporará en cada ejecución su propio resultado más reciente. Normalmente, los trabajos recurrentes comienzan cada ejecución sin memoria: un rastreador de noticias vuelve a informar sobre las mismas historias y un monitor vuelve a alertar sobre la misma condición. Con la continuidad activada, el trabajo despierta sabiendo qué informó la vez anterior, por lo que puede evitar duplicados y retomar desde donde terminó»; «En ejecuciones posteriores, el resultado anterior se antepone con indicaciones de continuidad (“evita repetir lo que ya se informó”) … Internamente, la opción se almacena como la entrada reservada self de context_from.»; «Desde CLI: hermes cron create "every 6h" "Scan for news" --continuity, y hermes cron edit <job_id> --continuity / --no-continuity para activarla o desactivarla en un trabajo existente. La misma opción aparece en el editor de cron del dashboard y en el cuadro de diálogo de rutinas de Bot Mode para escritorio». Esfuerzo por trabajo, textualmente: «Un trabajo puede fijar su propio nivel de razonamiento, independientemente del modelo fijado: uno de none, minimal, low, medium, high, xhigh, max, ultra. Cuando se configura, sustituye tanto agent.reasoning_effort global como agent.reasoning_overrides por modelo para las ejecuciones de ese trabajo»; se configura mediante hermes cron create/edit --reasoning-effort high. Entrega a Bot Chat, textualmente: «bot-chat entrega el resultado en la sesión canónica “Bot Chat” de un profile como un mensaje real … aquí, el destinatario es el propio bot: recibe el resultado como mensaje entrante, actúa sobre cualquier asunto que requiera atención y responde en su chat». Notepads: la cadena de documentación del módulo cron/notepad.py: «Un pequeño espacio de trabajo clave-valor que cada trabajo cron puede usar para conservar el estado entre activaciones programadas (cursores, marcas de agua y listas de seguimiento)»; establece los límites «MAX_VALUE_BYTES (16 KB)» y «MAX_JOB_TOTAL_BYTES (64 KB)» («el notepad se incorpora al prompt en cada ejecución, por lo que un crecimiento ilimitado inflaría el prompt de cada activación»), y señala que «La vía de escritura es CLI (hermes cron notepad <job_id> set <key> <value>), que el agente en ejecución invoca mediante su herramienta de terminal; no se añade ninguna herramienta al modelo». Modo monitor: la cadena de documentación de cron/monitor.py: «Compatibilidad de cron con el modo monitor: detección de cambios con supresión mediante hash», que adjunta una «fuente de monitor de bajo costo (monitor_script o monitor_url)»; «sin cambios -> la ejecución del agente se omite por completo (sin LLM ni entrega); el ciclo se registra como una ejecución silenciosa no_change»; «El resultado se compara como BYTES EXACTOS, sin eliminar marcas de tiempo ni normalizar espacios en blanco. Los scripts de monitor deben generar resultados estables … o cada ciclo parecerá un cambio.»; «habilitador: #80774». 

  38. Orquestación de subagentes en vivo en la etiqueta v2026.8.31. En «Control de un subagente en ejecución» de la página de documentación sobre delegación (fuente website/docs/user-guide/features/delegation.md en la etiqueta), la superficie de control es {"action": "list"}, {"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"}, {"action": "stop", "subagent_id": "sa-0-1a2b3c4d"}; textualmente: «list devuelve los subagentes secundarios activos de la conversación: subagent_id, objetivo, estado, running_seconds, accepting_steer y la ruta de la transcripción en vivo»; «stop finaliza un subagente secundario anticipadamente en el siguiente límite de iteración; el resultado parcial se reincorpora a la conversación como un mensaje normal de finalización»; las acciones de control están «limitadas al árbol de subagentes creados por el propio invocador: una conversación nunca puede ver ni controlar los subagentes secundarios de otra sesión, y estas acciones nunca consumen el límite de creación de subagentes por turno, por lo que stop sigue funcionando incluso después de alcanzar el límite»; la entrega de instrucciones reconoce con claridad la condición de carrera («Estar en cola no significa haberse entregado, pero nunca se presenta como un éxito ficticio»; pending_steer se incorpora a los resultados y se marca missed_steer cuando un subagente secundario termina primero). Valores predeterminados: hermes_cli/config_defaults.py establece delegation.max_iterations: 250 («límite de iteraciones por subagente; cada uno recibe su propio presupuesto, independiente del valor max_iterations del agente principal») y delegation.max_concurrent_children: 10 («límite unificado de concurrencia: número máximo de subagentes secundarios en paralelo por lote Y número máximo de unidades de delegación simultáneas en segundo plano (background=true) … (Sustituye al obsoleto max_async_children.)»). Queda un punto desactualizado en el proyecto original: la propia página de documentación sobre delegación todavía indica «3 tareas de forma predeterminada» y muestra «max_iterations: 50 … (valor predeterminado: 50)» en su referencia de configuración; el archivo config_defaults.py distribuido y las notas de la versión («valores predeterminados aumentados: 250 iteraciones y 10 subagentes secundarios simultáneos») son las fuentes más recientes y coincidentes. 

  39. Oleada de seguridad en la etiqueta v2026.8.31. Archivos de instrucciones protegidos: los valores predeterminados de hermes_cli/config_defaults.py incluyen security.protected_instruction_files: True (comentario: «Escrituras en archivos de instrucciones del agente (AGENTS.md/CLAUDE.md/SOUL.md/…)»), junto con protected_instruction_extra_patterns: [] (fnmatch sobre el nombre base); tools/file_tools.py implementa la barrera —«Archivos de instrucciones del agente protegidos (barrera de aprobación que siempre pregunta)»— mediante _PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...}) y describe el modelo de amenazas textualmente: «vector: una instrucción inyectada que edita AGENTS.md / CLAUDE.md / SOUL.md» y «los archivos de instrucciones del contexto del proyecto se cargan desde árboles del directorio de trabajo; cualquier AGENTS.md ubicado donde el agente pueda ejecutarse posteriormente es un objetivo activo». Identidad de TCC: hermes desktop --setup-tcc-identity está implementado en hermes_cli/main.py: _desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"), «Configuración única para hermes desktop --setup-tcc-identity», con las protecciones «(–setup-tcc-identity solo está disponible en macOS; se omitirá)» y «(–setup-tcc-identity requiere openssl, security y codesign …)». El barrido de ocultamiento de datos (#80965, #80964, #81675, #81686, #88232), la cobertura de aprobaciones en Windows (#84428), la eliminación de MCP de Blender (#83404) y el análisis de instalación de plugins de nivel 1 (#80728) se documentan en las notas de la versión.35 

  40. Cambios en la superficie de CLI en la etiqueta v2026.8.31. COMMAND_REGISTRY, en hermes_cli/commands.py, registra CommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...) y CommandDef("status", "Show session, model, token, and context info", "Session", ...): /status es un comando de sesión del registro compartido, no exclusivo de mensajería. No hay ninguna entrada approval-check en _BUILTIN_SUBCOMMANDS (73 entradas, idénticas a las de v2026.8.27); la ejecución de prueba que las notas de la versión v0.21.0 denominan hermes approval-check (#81137) es hermes approvals test. La ayuda del analizador en hermes_cli/subcommands/approvals.py, en esa etiqueta, dice: «Prueba el dictamen de aprobación de un comando (nunca lo ejecuta)», con --backend («Tipo de backend de terminal que se evaluará (valor predeterminado: local …») y --json. hermes_cli/_parser.py cambió únicamente dentro de hermes chat: la ayuda de -q/--query ahora indica «Consulta que se ejecutará. En una TTY real, la solicitud inicia una sesión interactiva (se envía literalmente como el primer turno); al combinarla con –oneshot o -Q, o en una terminal que no sea TTY, responde y sale»; una nueva opción --oneshot documenta «Con -q/–query-file: responde la consulta y sale (comportamiento heredado de consulta única), en lugar de iniciar una sesión interactiva. Está implícito con la entrada/salida estándar en una terminal que no sea TTY y mediante -Q/–quiet»; y --max-turns documenta «Cantidad máxima de iteraciones de llamadas a herramientas por turno de conversación (valor predeterminado: 500, o agent.max_turns en la configuración)». 

  41. Notas de la versión Hermes Agent v0.21.1, etiqueta v2026.9.7, fecha de lanzamiento declarada: 7 de septiembre; publicadas el 7 de septiembre de 2026 a las 22:17 UTC. El contenido es deliberadamente escueto; textualmente: una «versión de parche» que «agrupa el estado actual de main desde v0.21.0 para implementaciones etiquetadas y consumidores posteriores»; estadísticas del periodo: «5.139 commits sin fusión en 4.364 archivos modificados (+601.014 / -768.419)» y «632 PR fusionadas» al momento de la preparación; y «Las notas de la versión completas y seleccionadas para este periodo se publicarán con v0.22.0». Comprobación en un clon local: git rev-list --count --no-merges v2026.8.31..v2026.9.7 = 5.140 y git diff --shortstat = +601.018 / -768.423; las cifras del contenido corresponden a la instantánea anterior al commit de lanzamiento y difieren exactamente en el commit de lanzamiento. El mayor periodo anterior entre etiquetas adyacentes es v2026.7.20..v2026.7.30, con 2.790 commits sin fusión (se midieron en el clon local todos los pares adyacentes desde v2026.3.12). La comprobación de doctor incluida en la sección de solución de problemas está en hermes_cli/doctor_config.py:330-362 en esa etiqueta (_drift_max_iterations_ghost): un valor obsoleto de HERMES_MAX_ITERATIONS en .env prevalece sobre agent.max_turns cuando el puente de inicio se interrumpe debido a un error anterior al analizar la configuración (incidencia #17534), y hermes doctor --fix elimina la línea de .env. Verificación de la sesión actual: 8 de septiembre de 2026. 

  42. COMPAT_MANIFEST.md en la etiqueta v2026.9.7 (raíz del repositorio, 3.869 líneas). Textualmente: «La descomposición de septiembre de 2026 (PR #102117) dividió los grandes módulos de Hermes Agent en archivos específicos»; «Las rutas internas de importación no son una API estable»; «Esta capa es temporal y se eliminará el 14 de septiembre de 2026. Se incorporó como un solo commit y se elimina revirtiendo ese commit». La tabla de lo que sucede (antes del 14 de septiembre de 2026: aviso amarillo que identifica el plugin, la fecha y hermes plugins compat; el plugin «se carga; cada resolución de una ruta anterior emite HermesPluginCompatWarning una vez»; a partir del 14 de septiembre de 2026: «aviso rojo: plugin DESHABILITADO» y «no se carga; hermes plugins list muestra el motivo»; en Desktop: «modal que aparece una sola vez»); la vía de escape, textualmente: «plugins.allow_deprecated_imports: true en config.yaml mantiene cargados los plugins afectados después de esa fecha, hasta que la reversión elimine realmente las rutas». Recuento por tipo: moved-lazy, 1148; import, 592; restored-def, 290; restored-helper, 41; restored-import, 17; module-stub, 3; unrestorable, 34. Alcance: únicamente nombres públicos de nivel superior; «Tampoco se conservan los puntos de sustitución mediante monkeypatch de las pruebas». Analizador del verificador en hermes_cli/subcommands/plugins.py:104-112: hermes plugins compat [path] [--json]; descripción textual: «Analiza estáticamente todos los plugins externos habilitados para detectar importaciones de rutas de módulos anteriores a la descomposición (consulta COMPAT_MANIFEST.md) e imprime archivo:línea, ruta anterior -> ruta nueva. Finaliza con el código 1 cuando algún plugin está afectado». Estructura de la descomposición verificada en esa etiqueta: agent/ = 214 módulos de nivel superior + 7 subpaquetes (lsp, monitoring, pet, proxy_sources, secret_sources, transports, verify), hermes_cli/subcommands/ = 61 módulos, CANONICAL_PROVIDERS en hermes_cli/models_catalog_static.py:311, con 39 entradas cuyos slugs son idénticos a los de la lista de v2026.8.31 en hermes_cli/models.py (incluida la tupla estática xai; plugins/model-providers/ aún contiene 39 carpetas), el antiguo prompt_builder.py de nivel superior ya no existe (ahora es agent/prompt_builder.py) y run_agent.py sigue siendo la ubicación de AIAgent en la raíz. 

  43. docs/session-lifecycle.md en la etiqueta v2026.9.7, sección «6. Límites explícitos de la conversación», textualmente y completa: «La inactividad y el tiempo transcurrido nunca rotan una conversación. /new y /reset crean un límite explícito; la compresión del contexto continúa gestionando los historiales extensos. Se ignora la configuración heredada de temporizadores. El tipo de datos SessionResetPolicy existente contiene datos de compatibilidad inertes, no una política de ejecución. Una suspensión explícita sigue creando un límite en el siguiente turno entrante. La recuperación respeta los límites finalizados explícitos e históricos en vez de volver a abrirlos. La expulsión motivada únicamente por recursos y la depuración de elementos huérfanos de WebSocket permiten reanudar las conversaciones». 

  44. Autorización de MCP en la etiqueta v2026.9.7. Analizador: hermes_cli/subcommands/mcp.py:55-66: login («Fuerza una nueva autenticación para un servidor MCP basado en OAuth») acepta --flow con las opciones browser/device; texto de ayuda literal: «Flujo de OAuth (reemplaza oauth.flow): PKCE mediante navegador o código de dispositivo RFC 8628»; reauth («Vuelve a autenticar un servidor MCP con OAuth, o todos ellos (–all)») acepta un nombre opcional, además de --all. El flujo de código de dispositivo se incorporó durante este periodo: commit f5afe8bd40, «función: autorizar servidores MCP mediante códigos de dispositivo desde CLI». Refuerzo complementario, según el asunto de los commits del periodo: f914c9b070, «corrección (mcp): aplicar la propiedad del profile en todas las sesiones de OAuth»; f94307a7f7, «corrección: ignorar cachés dañadas de metadatos de OAuth de MCP»; e3ba651b6d, «corrección (desktop): retransmitir OAuth de MCP mediante devoluciones de llamada locales del cliente». Inicio filtrado por toolset: tools/mcp_tool_discovery.py:412-426; el filtro existe para que «hermes -z -t <toolsets>» pueda «omitir el inicio en frío de servidores que quien realiza la llamada no necesita», y un filtro vacío omite por completo la carga de MCP. 

  45. Confiabilidad de la delegación en la etiqueta v2026.9.7, consultada en el código fuente de la herramienta delegate. Unidades de finalización: tools/delegate_tool_dispatch.py:326-341 (_units_of) — texto literal: «Desactivado de forma predeterminada (delegation.independent_completions): la llamada completa es UNA unidad y regresa como un solo mensaje. Una ráfaga de finalizaciones por tarea (un turno nuevo cada una) fragmentaba los orquestadores que no estaban preparados para ello»; las unidades son una por cada group de tareas distinto (en orden de primera aparición), más una por cada tarea sin agrupar, y cada una vuelve a entrar en la conversación por separado; commit dentro del periodo c89f3b8800 «fix(delegation): una finalización por llamada de forma predeterminada; las unidades en cola ya no quedan bloqueadas». Transferencia de procesos en segundo plano: commit 3c0d90e8ef «feat(delegation): los subagentes transfieren los procesos en segundo plano al padre; los procesos restantes se identifican, no se consideran confiables»; en la etiqueta, tools/delegate_tool_child_run.py:744-763 (account_background_processes) registra en el resultado los procesos transferidos, enumera los que siguen ejecutándose sin haber sido transferidos como orphaned_processes y los que finalizaron sin que su salida se leyera como unread_completions (con el tramo final de la salida) antes de que cleanup los termine; según el docstring, el padre «debe enterarse de eso por medio del entorno de ejecución» en lugar de confiar en que un hijo afirme que hay un «observador en ejecución»; el verbo de transferencia es process_manage(action="handoff") (solo para hijos), que cambia ProcessSession.owner_task_id mediante process_registry.transfer_ownership mientras mantiene el bloqueo del registro (tools/AGENTS.md, sección Delegation, en la etiqueta). Superficie de respaldo: delegation.fallback_providers en hermes_cli/config_defaults.py, comentario literal: «Para un hijo sin fijar, null = heredar la cadena del padre; [] = desactivar el respaldo. Un hijo fijado por proveedor, endpoint o modelo no recibe respaldo, a menos que esta configuración declare uno explícitamente»; validación de la cadena en tools/delegate_tool_config.py:417-425 (_resolve_child_fallback_chain): «El normalizador canónico descarta las entradas con formato incorrecto». Durabilidad ante fallos: tools/async_delegation.py:222-246 registra de forma persistente cada hijo finalizado de una unidad con varios hijos que aún está en ejecución, en la propia fila de la unidad ("partial": True), por lo que un fallo antes de que esta termine conserva los hijos ya finalizados. Nivel de caché: tools/delegate_tool.py:106-112 (_apply_child_cache_ttl), texto literal: «Un hijo delegado nunca utiliza el nivel de caché de 1 h»; si un hijo lleva _cache_ttl == "1h", se cambia a "5m"

  46. Proveedores y modelos en la etiqueta v2026.9.7. Niveles de Astra: hermes_cli/models_catalog_static.py:22-25openai/gpt-6-astra-fast «precio 2x, nivel prioritario», -flex «precio 0,5x, nivel flexible», además de -pro-fast/-pro-flex; gpt-6-astra y -pro se encuentran en OPENROUTER_MODELS y no forman parte del conjunto de exclusión _OPENROUTER_ONLY, por lo que Nous Portal también los ofrece. Restricción de acceso a Astra y 900K: hermes_cli/codex_models.py:96-101 («El acceso a Astra está restringido por cuenta: solo el catálogo activo específico de la cuenta puede anunciarlo») y agent/model_metadata.py:1447-1462 — Codex OAuth anuncia 272K, gpt-6-astra admite 900K, con el comentario «se anuncian 272K; entrada de 920.043 aceptada, 1.000.043 rechazada (prueba en vivo del 4 de septiembre de 2026)», y CODEX_CONTEXT_VARIANT_SUFFIX = "-900k" es un «sufijo de activación exclusiva del selector; nunca se envía por la conexión» (el contexto de Astra del lado de OpenRouter es de 1.050.000, según model_metadata.py:334). Nuevas entradas del catálogo en el mismo archivo estático (líneas 30-42): anthropic/claude-fable-5.1, google/gemini-3.8-flash y gemini-3.7-flash, qwen/qwen3.8-max-0902 y qwen/qwen3.8-flash, meta/muse-spark-1.3 y -contributor (contexto de 1M según agent/model_metadata.py:349). muse-image: plugins/image_gen/meta-ai/__init__.py («API del modelo de Meta (muse-image): compatible con OpenAI (https://api.meta.ai/v1)», con modelos que incluyen muse-image-1.0). Tavily: hermes_cli/config_defaults.py:2522-2525, texto literal: «Clave de API de Tavily para búsqueda y extracción web nativas para IA (opcional; funciona sin clave cuando se selecciona Tavily)», herramientas web_search y web_extract; el bloque web señala que Tavily «se habilita de forma opcional sin clave mediante hermes tools; no forma parte del anillo». Entorno de ejecución administrado de llama.cpp: el paquete hermes_cli/local_runtime/ («Entorno de ejecución administrado de llama.cpp»), el bloque de configuración en config_defaults.py:2327 («binarios oficiales, un servidor supervisado»; referencia a la documentación user-guide/local-models) y la interfaz de escritorio apps/desktop/src/api/local-models.ts. Proveedores de procesos externos: agent/auxiliary_client.py:4740-4799 (_resolve_external_process_branch, «proveedores external_process de PROVIDER_REGISTRY, servidos mediante su profile registrado», indexados por el profile registrado «para que se resuelva un proveedor ACP externo»). Frecuencia del catálogo: migración de configuración 39 -> 40 en hermes_cli/config_migrations.py:622-627 («model_catalog.ttl_hours -> ttl_minutes (valor predeterminado: 20)», mensaje para el usuario «El catálogo de modelos ahora se actualiza cada 20 minutos (model_catalog.ttl_minutes)»), mientras que hermes_cli/model_catalog.py respeta el valor heredado ttl_hours «solo cuando ttl_minutes conserva su valor predeterminado». 

  47. Oleada de novedades de escritorio en la etiqueta v2026.9.7. Modo de comentarios: website/docs/user-guide/desktop.md en la etiqueta, estructura textual literal: «haz clic en Anotar en la barra del navegador de vista previa; después, haz clic en cualquier elemento (o arrastra para dibujar un recuadro) sobre la página activa y escribe una nota; cada comentario guardado permanece en la página como un marcador numerado»; «Guardar un marcador nunca envía un turno»; «Agregar N comentarios adjunta al editor una captura recortada por marcador y una breve instrucción que identifica cada comentario»; «Cada comentario de elemento incluye su selector CSS, su marcado y los estilos calculados relevantes para el diseño, de modo que el agente pueda encontrar el elemento en tu código fuente en vez de adivinarlo a partir de la imagen»; «Los valores de los campos de contraseña y ocultos, así como cualquier atributo que parezca una clave o un token, se ocultan en la página antes de que el marcado salga de ella»; «Los lotes grandes llegan agrupados según la parte de la página donde se encuentra cada comentario, por lo que una veintena de comentarios se convierte en unas cuantas unidades de trabajo, en vez de una tarea por comentario»; «como los grupos son subárboles separados del DOM, por lo general afectan archivos distintos, lo que permite asignarlos con seguridad a trabajadores paralelos». Commits dentro del periodo: 10f2a20966 «feat(desktop): agregar el modo de comentarios al navegador integrado en la aplicación»; e4bda3ff77 «feat(desktop): los comentarios del navegador incluyen el selector, el marcado y los estilos del elemento»; controles de sesión 8cb2bcc8c1 «exponer controles de sesión estructurados» + bfddf556bf «cargar controles de sesión estructurados» + dffd8d62c2 «agregar controles de automatización de sesiones»; 6b1e12c7f4 «arrastrar para crear sesiones desde Nueva sesión, grupos de proyecto + controles y profile»; 9186e3ebc5 «vista de importación de sesiones para transcripciones de agentes de programación externos»; a1c25d393a «catálogo integrado de skills opcionales en Capacidades → Skills, con instalación mediante un solo clic»; configuración regional en ruso a922dad9d8 «feat(desktop): agregar la configuración regional rusa (ru)» + 269e5bde33 (registra ru en las pruebas y la documentación de las configuraciones regionales; apps/desktop/src/i18n/ru.ts se incorporó durante el periodo, mientras que locales/ de CLI conserva 17 catálogos). display.resume_last_session: hermes_cli/config_defaults.py:777, valor predeterminado True, comentario literal: «La aplicación de escritorio vuelve a abrir el último chat o página después de un inicio en frío (también en Configuración → Apariencia)». Consentimiento para usar el profile real: apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx («Solicitud de consentimiento al abrir por primera vez la navegación con el profile real», que aparece cuando se abre un panel del navegador mientras browser.use_real_profile está desactivado; al aceptar, se escribe la misma clave de configuración que utiliza el interruptor de Capacidades; «Ahora no» la silencia durante la ejecución actual de la aplicación y «No volver a mostrar» conserva la preferencia entre inicios). 

  48. Notas de la versión Hermes Agent v0.20.3 (etiqueta v2026.8.16.2, fecha de lanzamiento indicada: 16 de agosto; publicada el 17 de agosto de 2026) y notas de la versión v0.20.4 (etiqueta v2026.8.18, 18 de agosto de 2026); ambas obtenidas mediante la API de GitHub el 20 de agosto de 2026 (versión preliminar: false). Texto literal de v0.20.3: «la migración de SDK de MCP 2.x y la compatibilidad con el protocolo sin estado del 28 de julio de 2026, el plugin Bot Mode (hermes-bots) incluido con el protocolo central para compañeros de equipo, el plugin del proveedor CommandCode, el refuerzo de la propiedad del entorno de ejecución de Python en subprocesos (aislamiento de PYTHONHOME/PYTHONPATH) y los contratos del entorno de ejecución Cua Driver 0.20 para el uso de la computadora». Texto literal de v0.20.4: «el trabajo sobre las superficies de vidrio y translucidez de la aplicación de escritorio (vidrio mate, selector de efecto escarchado y preselección en macOS), la barra lateral con pestañas SESSIONS|BOTS y la opción de ocultar o mostrar cada bot, … el análisis consultivo NVIDIA SkillEvaluator de nivel 1 al instalar skills (comprobaciones de licencia + seguridad)». Ambas versiones: «Las notas de versión completas y seleccionadas para este periodo se publicarán con v0.21.0». 

  49. Notas de la versión v0.20.0 de Hermes Agent, «The Herald Release», etiqueta v2026.8.3, 3 de agosto de 2026, con las etiquetas de estabilización v2026.8.13 y v2026.8.16. Citas textuales de las notas de la versión: «Node 26 required across installers/heal/upgrade»; «brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels)»; «default iteration limit 90 → 500»; «claude-marketplace source removed». El requisito mínimo de Node se confirmó de manera independiente en el código fuente del instalador, en scripts/install.sh: NODE_VERSION="26" y la validación «Node.js $(node –version) is too old (Hermes requires Node >=26)»; el comentario del encabezado también documenta la instrucción canónica de una sola línea curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash. Cabe señalar una contradicción: la página de instalación de la documentación todavía indica Node v22 y está desactualizada respecto de ambas fuentes. Los niveles de compatibilidad de las plataformas provienen de compatibilidad de plataformas; las fuentes de skills y los taps predeterminados, de skills; y la cifra de 28 plataformas se obtuvo enumerando la tabla comparativa de mensajería, que no publica un total oficial. Todas las fuentes se consultaron y verificaron el 16 de agosto de 2026. 

  50. Notas de la versión v0.19.0 de Hermes Agent, «The Quicksilver Release», etiqueta v2026.7.20, 20 de julio de 2026; la versión más reciente al 21 de julio de 2026. Estadísticas desde v0.18.0: alrededor de 2.245 commits, unos 1.065 PR fusionados, cerca de 3.300 incidencias cerradas y más de 450 colaboradores de la comunidad. Eje central de rendimiento: reducción de aproximadamente un 80 % en el TTFT del primer turno y del tiempo de envío en frío hasta el despacho, de unos 4,3 s a cerca de 0,9 s, en CLI/gateway/TUI/escritorio/cron (PR #59332); razonamiento transmitido en vivo de forma predeterminada, con display.show_reasoning activado y representación de la respuesta token por token (PR #59389); una oleada de mejoras de velocidad en el escritorio que abarcó unos 20 PR, incluido un renderizado de Markdown en streaming 14 veces más rápido; Markdown incremental en la TUI. Las instalaciones mediante pip/Homebrew quedaron obsoletas y ahora solo muestran una advertencia de «legacy no compatible»; está previsto retirar la publicación en PyPI/Homebrew (PR #57225). Interfaz conectable SecretSource con proveedores de Bitwarden y 1Password, referencias op://, varias bóvedas, precedencia determinista y procedencia por variable (PR #59498). Aprobaciones inteligentes de forma predeterminada (un revisor LLM independiente por cada comando marcado), reglas de denegación definidas por el usuario que se mantienen incluso con YOLO y /deny <reason> (PR #62661, #59164, #54518); se reincorporó el escalamiento de aprobación pre_tool_call de los plugins (PR #60504). Facturación desde la terminal mediante /subscription y /topup, además de una pestaña de facturación en la aplicación de escritorio (PR #51639). Archivos de transcripción en vivo de los subagentes y delegación duradera en segundo plano (PR #67479, #63494); registro de obligaciones de entrega en state.db (PR #67181); max_async_children quedó obsoleto en favor de límites unificados de concurrencia para la delegación (PR #56955). Enrutamiento del gateway basado en profile, junto con GATEWAY_MULTIPLEX_PROFILES; el índice de enrutamiento se trasladó a state.db y sessions.json quedó como réplica heredada opcional (PR #64835, #65700, #60589, #59203). Proveedores/modelos: Fireworks AI con integración de primera clase en la posición n.º 2 del selector (PR #62593), DeepInfra, Upstage Solar, GPT-5.6 Sol/Terra/Luna + Pro de extremo a extremo (PR #61616), disponibilidad general de grok-4.5, kimi-k3 (se retiró kimi-k2.x), Claude Sonnet 5 con integración completa, enabled: false por proveedor y excluded_providers (PR #67971); niveles max/ultra de intensidad de razonamiento, con ajustes por modelo y por posición de MoA, además de /reasoning limitado a la sesión (PR #62650, #64458). CLI/MCP: hermes sessions export a Markdown/Quarto/HTML/solo prompt/traza de HF con --redact (PR #60186), /model --once (PR #67113), invocaciones apiladas de slash-skills (PR #57987), --safe-mode, hermes config get/unset (PR #65540), hermes serve verdaderamente sin interfaz gráfica (PR #55923) y nomenclatura mcp__server__tool de MCP (PR #52750). Se excluyó el enfoque promocional de las notas de la versión; los elementos revertidos durante el periodo (el firewall de salida iron-proxy, el skill dynamic-workflow y las acciones del proveedor de memoria) no se registraron deliberadamente como funciones publicadas. Verificación realizada en la sesión actual el 21 de julio de 2026. 

  51. Etiqueta de la versión v0.18.1 de Hermes Agent y etiqueta de la versión v0.18.2, 7–8 de julio de 2026. Paquetes acumulativos de parches de infraestructura para la línea v0.18; la corrección sustancial de v0.18.2 elimina la versión fijada de WhatsApp Baileys y adopta la 7.0.0-rc13 para que las compilaciones de Docker sean confiables. Ambos periodos de parches están consolidados y documentados por completo en las notas de la versión v0.19.0. 

  52. Notas de la versión v0.15.1 de Hermes Agent y notas de la versión v0.15.2 de Hermes Agent. v0.15.1 (29 de mayo de 2026, 01:12 UTC) es el hotfix de Velocity publicado el mismo día: corrige el bucle de recarga con error 401 del panel en modo loopback; Docker ahora exige establecer explícitamente HERMES_DASHBOARD_INSECURE=1; los comandos simples de MCP (npx, npm, node) se resuelven en contenedores Docker; se restauraron las etiquetas de origen y la barra lateral de categorías de la página Skills; los workers de Kanban responden a SIGTERM; el catálogo Skills.sh aumentó de 858 a 19.932 entradas mediante el mapa del sitio. 28 commits, 21 PR fusionados y 9 colaboradores. v0.15.2 (29 de mayo de 2026, 13:37 UTC) es un hotfix exclusivamente de empaquetado que incluye los manifiestos plugin.yaml en las distribuciones wheel y sdist, para que las instalaciones desde PyPI funcionen sin cargar el código fuente por separado. 4 colaboradores. 

  53. Notas de la versión v0.15.0 de Hermes Agent y la página de versiones de Hermes Agent. «The Velocity release», etiqueta v2026.5.28. Estadísticas: 1.302 commits, 747 PR fusionados y 321 colaboradores de la comunidad. Refactoriza run_agent.py en un 76 % (de 16.083 a 3.821 líneas distribuidas en 14 módulos). Añade la plataforma Kanban multiagente (descomposición automática, topología de enjambre, ajustes de modelo por tarea, tareas programadas y administración de worktrees). session_search se rediseñó para ser 4.500 veces más rápido y se eliminó la dependencia LLM. Defensa contra promptware para protegerse de inyecciones de prompt de la clase Brainworm en tres puntos críticos de seguridad. La integración con Bitwarden Secrets Manager sustituye varias claves API específicas de cada proveedor por un solo token de arranque. Los paquetes de skills permiten cargar varios skills con un único comando de barra diagonal. Orquestador de sesiones en la TUI para administrar varias sesiones en una sola ventana de terminal. Compatibilidad con Krea 2 (Medium/Large) y el plugin FAL para generar imágenes. La ronda de integración con xAI añade un plugin de búsqueda web, OAuth upstream, detección de modelos retirados y pausas naturales de TTS en la salida de voz. Una versión de parche mencionada en GitHub corrige el bucle de recarga con error 401 del panel, exige definir explícitamente la variable de entorno HERMES_DASHBOARD_INSECURE=1 para usar --insecure en Docker, resuelve los comandos simples de MCP (npx, npm, node) en Docker, corrige el renderizado de la página Skills y el manejo de SIGTERM en los workers de Kanban, incorpora mediante el mapa del sitio el catálogo completo de Skills con 19.932 entradas y agrega un pequeño conjunto de mejoras en la entrega de archivos .md, la seguridad de las sondas del gateway, la ocultación de URL web, la capacidad de visión del kanban-worker y los valores predeterminados de observación retrospectiva. 

  54. Notas de la versión v0.11.0 de Hermes Agent. 23 de abril de 2026. «La versión de la interfaz»: reescritura completa en React/Ink de la CLI interactiva, con un backend Python JSON-RPC (tui_gateway); arquitectura de transporte modular (agent/transports/); compatibilidad nativa con AWS Bedrock mediante Converse API; cinco nuevas rutas de inferencia (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 mediante Codex OAuth; QQBot como la 17.ª plataforma de mensajería, con configuración mediante escaneo de código QR; superficie ampliada para plugins (comandos slash, despacho de herramientas, bloqueo de ejecución y transformación de resultados); /steer <prompt> para orientar al agente durante la ejecución mediante la inyección de contexto después de la siguiente llamada a una herramienta, sin interrumpir la caché del prompt; hooks de shell para eventos del ciclo de vida sin plugins Python; modo de entrega directa mediante webhook, que reenvía las cargas útiles directamente al chat de una plataforma; delegación más inteligente con roles de orquestador, profundidad de generación configurable y coordinación de archivos; sistema de plugins para el panel, cambio de tema en tiempo real, i18n y adaptación a dispositivos móviles. Estadísticas desde v0.9.0: 1.556 commits · 761 PR fusionadas · 1.314 archivos modificados · 224.174 inserciones · 29 colaboradores de la comunidad. Consulta también: etiqueta de la versión Hermes Agent v0.11.0 GitHub

  55. Notas de la versión v0.10.0 de Hermes Agent. 16 de abril de 2026. «La versión de Tool Gateway». Integración con Nous Tool Gateway para suscriptores de pago de Nous Portal: acceso administrado a la búsqueda web de Firecrawl, la generación de imágenes con FAL / FLUX 2 Pro, OpenAI TTS y la automatización del navegador con Browser Use, sin claves API adicionales. Activación individual por herramienta mediante el nuevo campo de configuración use_gateway. Durante la ejecución, se prioriza gateway sobre las claves API directas cuando ambas opciones están configuradas. Integración completa con hermes tools y hermes status. Sustituye la variable de entorno obsoleta HERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementación de @jquesnelle (emozilla). La CLI de Hermes Agent conserva la licencia MIT y sigue siendo totalmente de código abierto; gateway es una integración con el producto de suscripción Portal existente, no un muro de pago para la CLI. Consulta también: Nous Portal para conocer los precios de suscripción y registrarte. 

NORMAL hermes.md EOF