Hermes Mobile Beta ya está aquí: qué hacen de verdad las apps de iOS y Android (y dónde siguen fallando)


Le pasas la tarea de investigación a Hermes en tu escritorio, coges el móvil y te vas hacia el ascensor. A la altura del tercer piso más o menos te cae encima: le diste un alcance demasiado amplio. Solo papers. Nada de blog posts.

Hace un año eso significaba o bien llevar la idea dando vueltas en la cabeza hasta volver al escritorio, o bien abrir Telegram y escribir un párrafo de contexto en una ventana de chat. Desde esta semana hay una respuesta oficial: una app de Hermes para el móvil. Este artículo no es otro anuncio de “por fin ha llegado la app”. Cubre las tres cosas que de verdad importan: qué se ha publicado, si puedes instalarlo hoy y qué partes aguantan una vez que lo hagas.

El móvil es un mando a distancia. El agente no se mueve.

Esto es lo que más se malinterpreta de Hermes Mobile, y el anuncio oficial lo dice sin rodeos: la app se conecta a tu propio gateway de Hermes. El modelo, las tools, la memoria, los archivos del proyecto — todo se queda en la máquina donde ya estaba corriendo. El móvil se ocupa de tres cosas: hablar, seguir el progreso y tocar aprobar.

  App móvil (chat / voice / aprobaciones / estado)
        |  conexión autenticada (dirección directa, túnel SSH o Tailscale)
        v
  Tu gateway (hermes dashboard o hermes serve, puerto 9119 por defecto)
        |
        v
  Modelos | tools | skills | archivos del proyecto | cron

Con esa separación clara, casi todo el comportamiento de la beta tiene sentido. El informe de un tester del 31 de octubre lo clava: a los 55 minutos aproximadamente la app de Android se congeló y luego murió, mientras el mismo turno seguía corriendo en el servidor y terminó con normalidad — el único rastro en el backend fue un WebSocket cerrándose con código 1006 (issue #147323). La interfaz se cayó; el trabajo no.

Y al revés también. Cuando el móvil dice que no puede conectar, rara vez la parte rota es la app. O el camino del móvil al gateway está mal, o la auth del propio gateway no pasó.

Qué ha llegado realmente

El 30 de octubre de 2026, en NousCon (Nueva York), Nous Research abrió una beta móvil oficial y mandó a todo el mundo a hermes-agent.nousresearch.com/mobile. Esa página hace exactamente una cosa: eliges plataforma y te entrega una invitación.

Elemento Realidad
iOS Invitación pública de Apple TestFlight
Android Firebase App Distribution, no Google Play
Nombre del paquete ai.nousresearch.hermes.mobile
Versión 1.0.0; los builds que aparecen en los informes de testers son versionCode 21
Estado en tiendas Ninguna de las dos plataformas está en una tienda de apps; no hay fecha de disponibilidad general anunciada

Según el anuncio oficial, la propuesta son tres cosas: chat en streaming, aprobar tool calls desde el móvil y gestionar bots y rutinas sobre la marcha.

Hay un detalle que merece su propio párrafo. Cinco días antes de la beta, Nous avisó públicamente de que todavía no había apps oficiales de Hermes en las tiendas, y de que las apps de terceros que tomaban prestados el nombre y el aspecto eran más probablemente estafas que proyectos de la comunidad. Así que no la busques en las tiendas. Empieza por la página oficial.

También hay una colisión de nombres que conviene conocer: la entrada de Hermes Mobile en nuestro directorio de ecosistema es un cliente de Android hecho por la comunidad, sin relación con este lanzamiento. Mismo nombre, proyecto distinto.

¿Puedes instalarlo hoy? Comprueba las dos puertas primero

Que la beta esté abierta no significa que la invitación funcione al hacer clic. Hoy, 2 de noviembre, he comprobado los dos enlaces, y esta es la parte que casi nadie cubre.

La invitación de iOS está muerta ahora mismo. La página oficial reparte testflight.apple.com/join/U8e1zmbc, que devuelve un 404 — la página escueta de 896 bytes de Apple con “Not Found”, no una pantalla de “esta beta está llena”. La distinción importa: una beta llena sigue renderizando la página de la app y te dice que está llena; un 404 significa que el enlace público en sí ya no está vivo (revocado, caducado o reemplazado). Mientras tanto, /mobile sigue respondiendo 200 y sigue sirviendo ese mismo enlace viejo. Varios usuarios reprodujeron el 404 con user agents de escritorio, de iPhone y de TestFlight, además de parámetros para saltarse la caché (issue #147556, y el hilo de comentarios de la issue #147269).

La invitación de Android está al límite de capacidad. Abres el enlace de Firebase, inicias sesión con Google y te encuentras un mensaje sin rodeos: This app is at the tester limit, junto con el consejo de pedirle al desarrollador que libere huecos. Varias personas, en máquinas y cuentas distintas, confirmaron el mismo resultado (ver los comentarios de la issue #147269).

Así que el estado real de la cuestión es este: hay gente que ya está ejecutando la app y abriendo bugs; el resto está atascado en la puerta esperando huecos o un enlace arreglado. No es tu red, ni es un bloqueo regional.

Qué aspecto debe tener tu backend

Una instalación por sí sola te deja un cascarón vacío. La app necesita algo con lo que hablar. A partir de la configuración que se repite en los informes de los testers, la lista de comprobación es esta:

  1. Arranca el gateway. Normalmente hermes dashboard (puerto 9119 por defecto, con auth del dashboard) o hermes serve para la superficie web. Consulta la referencia del comando hermes dashboard para ver los flags.
  2. Hazlo enrutable desde el móvil. La misma Wi-Fi es el camino fácil. Fuera de la red, Tailscale es lo que más usan los testers; la app también tiene un modo de túnel SSH.
  3. No expongas el puerto 9119 a internet abierta. Detrás de ese puerto hay un agente que puede ejecutar comandos y leer archivos. Llega a él a través de un rango de Tailscale, o pon Tailscale Serve delante para HTTPS y apunta webapp.public_url a ese origen.
  4. Elige un método de auth. La app admite dos rutas: inicio de sesión en el navegador con una cuenta de Nous (el callback cae en /auth/callback), o modo Direct con una dirección más una contraseña usando el basic_auth del dashboard.
  5. Instala el plugin de push si quieres notificaciones. El gateway necesita hermes-mobile-push, y hoy no es descubrible en el catálogo — hermes plugins search hermes-mobile-push devuelve No catalog entries matched, así que hay que dejarlo a mano en el directorio de plugins de usuario (issue #147651). Sin él, no esperes un push de “respuesta terminada”.
  6. Mantén el backend razonablemente al día. Los backends de los informes son en su mayoría v0.22.5 (2026.9.24).

Una cosa más antes de empezar: “conectar” no es un único modo. Está Direct (dirección más inicio de sesión en navegador o contraseña), un túnel SSH & Mosh y una marcación directa contra la dirección del dashboard. Fallan de formas distintas, que es justo lo que muestra la siguiente sección.

Qué funciona ya en 1.0.0

No hay lista oficial de funcionalidades, y el sitio de documentación aún no tiene guía de configuración móvil. Así que esta tabla está montada con informes reales de testers, cada uno con un número de issue que puedes comprobar tú mismo.

Capacidad Estado Notas
Chat en streaming Funciona Las respuestas largas y el Markdown se renderizan; existen pantallas de sesiones, Projects y Artifacts
Selector de modelo Funciona, con bugs de visualización Lee /api/model/options del gateway; un backend devolvió 69 ids en el grupo nous y 407 en custom:openrouter
Live Voice Funciona, gestiona interrupciones No es accesible desde un chat vacío por defecto; ver el workaround de abajo
Aprobación de tool calls Anunciada Aprobar desde el móvil es cómodo y, en la misma medida, una superficie de riesgo
Bots y rutinas Anunciadas Las entregas de cron llegan a Bot Chat pero se renderizan mal en la app; ver abajo
Página de sistema Funciona Muestra la dirección del host, la versión de Hermes, la fecha de release, el health y el modo de auth
Notificaciones push Incompletas Llega una notificación de “pensando”, la de finalización no; confirma antes el plugin de push
Informes HTML inline Ausentes Los dashboards generados llegan como archivos descargables, no renderizados en el chat

Live Voice tiene un workaround realmente útil, documentado en la issue #147322: por defecto, un chat recién creado no tiene forma de arrancar live voice hasta que envías primero un mensaje de texto. Cambia Settings → Chat → Collapsed Voice Button de voice message a live voice y tanto los chats nuevos como el tile de ajustes rápidos entran directos en una sesión de live voice; los voice messages normales se pueden seguir grabando desde el compositor. En palabras del reporter: el arranque con un solo toque importa mucho cuando vas conduciendo. La voz en sí, interrupciones incluidas, funciona bien.

Seis asperezas que conviene conocer antes de instalar

Esto es una beta, y estos son issues abiertas, no rumores.

1. Las sesiones largas se comen la memoria. La cronología del mismo tester es precisa: unos 55 minutos alternando entre live voice y respuestas largas en streaming, luego un ANR (el hilo principal esperando al recolector de basura), y trece segundos después java.lang.OutOfMemoryError con el heap completo de 256 MB, en un Galaxy S25 con Android 17 (#147323). Pasó una vez, y es exactamente el tipo de escenario que merece la pena vigilar.

2. Las respuestas largas no hacen scroll. El mismo reporter abrió también el scroll a trompicones y las respuestas en streaming que no se pueden desplazar hasta quedar a la vista (#147321).

3. Las burbujas de chat recortan su texto. En el primer pintado, la parte inferior de la burbuja queda cortada a media línea, tanto en el lado del usuario como en el del agente; te desplazas y vuelves y se renderiza entera — el contenido está intacto, la altura medida está mal (#147723).

4. Los nombres de modelo se truncan unos dentro de otros. deepseek/deepseek-v4.1-flash y deepseek/deepseek-v4.1-flash-1017 se muestran ambos como deepseek/deepseek-v4.1-fl… en un móvil, así que los únicos caracteres que los distinguen son justo los que se cortan (#147319).

5. El inicio de sesión puede abrir el callback dos veces. En Android, de forma intermitente: el navegador aterriza en una página de error invalid_grant mientras la app en realidad inicia sesión sin problema. El log del gateway muestra dos peticiones a /auth/callback separadas por 697 ms, la segunda canjeando un código ya consumido — una pestaña duplicada perdedora renderizada en pantalla (#147738). “Funcionó pero me dijo que falló” es la forma más rápida de hacer que alguien repita un flujo que ya estaba bien.

6. Los WebSocket del chat reciben un 403 en gateways remotos. La auth pasa, luego el WebSocket es rechazado y la app dice “Hermes te ha autenticado, pero ha rechazado la conexión del chat”. El upgrade lleva un ticket en un subprotocolo y ninguna cabecera Origin de un peer que no sea loopback, así que se trata como una marcación local nativa del Desktop y se cierra antes de que el filtro del ticket llegue a ejecutarse (#147361). Cambiar a SSH & Mosh tampoco es automáticamente la solución: en iOS, el SSH y la auth del dashboard salieron bien en el servidor mientras la app informaba de un error de credenciales (#147726).

Otras dos operativas que vale la pena guardar en marcadores. Primera: el plugin hermes-session-reset-policy nunca se dispara para sesiones con source=gui — es decir, la ruta dashboard / Desktop / móvil — así que esas sesiones nunca se reinician por inactividad; un usuario registró 47 compactaciones de contexto en seis horas y luego dejó de recibir respuestas en el móvil (#147660). Segunda: las entregas de cron con deliver: bot-chat se renderizan en la app como mensajes escritos por el usuario, mientras que esa misma entrega aparece correctamente estilizada como mensaje saliente del bot en Telegram (#147573).

En cuanto al informe de “no hay notificación cuando la respuesta termina” (#147345), el propio reporter lo cerró, sospechando que faltaba un componente. Dado que el plugin de push no está en el catálogo, esa explicación encaja: probablemente no sea un sistema de notificaciones roto, sino un eslabón que falta en la cadena. Si quieres la imagen completa de las notificaciones en Hermes en general, nuestra guía de notificaciones y atención cubre la parte de configuración.

Una prueba de aceptación de diez minutos en cuanto entres

No empieces instalando un montón de plugins. Pasa primero una tarea de bajo riesgo por todo el camino. Esta secuencia toca cada modo de fallo de los de arriba:

  1. Chat nuevo, pregunta algo que se responda en una línea. Confirma que el streaming funciona.
  2. Pide una respuesta larga — mil palabras o más — y fíjate en si el scroll aguanta el ritmo.
  3. Manda la app a segundo plano, vuelve y comprueba que la sesión y todo su contenido sobreviven.
  4. Arranca una sesión de live voice, interrúmpela a media frase y mira si retoma el hilo.
  5. Dispara una tool call que necesite aprobación. Apruébala o recházala desde el móvil.
  6. Abre la página de sistema y compara la versión del backend y su health con lo que reporta el host.
  7. Apunta tres cosas: número de build de la app, versión del sistema operativo del móvil y el hermes --version del backend. Esas tres convierten un “no funciona” en un bug report con el que alguien puede trabajar.

Si todavía estás en el paso del backend, empieza por la guía de instalación y luego lee cómo se reparten el trabajo la web app y la app de escritorio — la app móvil habla con los mismos endpoints de la webapp, y el inicio de sesión viaja por el mismo handoff (el artículo sobre el inicio de sesión de Nous y el handoff entre apps entra más en detalle).

Qué cambia realmente este lanzamiento

Junta todas las asperezas y el posicionamiento sigue siendo claro: Hermes Mobile no es “el agente, metido a la fuerza en un móvil”. Es “tú, fuera de la oficina”.

La forma antigua de juzgar a un agente era contar tools y modelos. Ahora hay una segunda pregunta: cuando estoy lejos de mi escritorio, ¿puedo llegar a él, añadir una frase, aprobar un comando y que el trabajo siga avanzando? Esa pregunta importa más que una lista de funcionalidades, porque decide si alguna vez le vas a confiar a un agente una tarea larga en un servidor.

La respuesta honesta hoy: sí, pero no lo apuestes todo al móvil. Lanzar tareas cortas, revisar el progreso, añadir un requisito, aprobar un comando, dictar una idea — todo eso funciona. Esperar que el móvil cargue por sí solo con una tarea de varias horas, con cada notificación llegando a tiempo, es sobrevalorarlo.

Cuando reemplacen la invitación de iOS y Firebase libere huecos, vuelve a mirar la misma página oficial. Y pasa de los enlaces a APK que aparecen en hilos sueltos: el agente de tu máquina se merece una procedencia mejor que esa.