Inicia sesión una vez y tus apps conectadas te siguen: el handoff del free tier llega limpio


Un viernes por la tarde por fin creas una cuenta. Llevabas tres semanas usando el free tier con Gmail, Notion y tu calendario conectados. Abres los ajustes, inicias sesión, ves un mensaje de bienvenida y luego abres la página de Connectors. Vacía. Cada app necesita autorizarse otra vez.

No era un fallo. Iniciar sesión reemplazó la identidad del free tier por tu cuenta y dejó las apps conectadas en la identidad anterior, que ya nada en la máquina usaba. Tres PRs fusionados el 23 de octubre de 2026 reconstruyen ese camino de principio a fin.

Tres asperezas de antes

  1. Actualizar ejecutaba otro flujo. Iniciar sesión sobre el free tier registraba el free tier para la transferencia, mostraba una página de consentimiento especial con su propio código, hacía polling hasta que la transferencia terminaba y solo entonces obtenía el token de la cuenta. Sin un free tier en disco, /login y hermes auth upgrade se negaban a arrancar.
  2. Las apps había que reconectarlas a mano. El inicio de sesión guardaba la cuenta encima del free tier; las apps se quedaban detrás de él.
  3. Abrir la página de Connectors creaba una identidad en segundo plano, aunque nunca hubieras conectado nada. Y la oferta de «iniciar sesión» solo aparecía para quien estaba en el modelo de prueba gratuita, así que quien usaba su propia key y conectaba apps nunca la veía.

Ahora: un simple device login y luego el handoff

#143235 convierte cada inicio de sesión con Nous en un simple device login. El escritorio, /login en la CLI, la TUI y las apps de chat, y también hermes auth upgrade, ejecutan un único flujo: mostrar la página de dispositivo normal y el código, esperar la aprobación (o el vencimiento, o la cancelación) y guardar la cuenta. Sin página de consentimiento especial, sin polling de transferencia.

Después viene lo que importa: una vez que el guardado termina, #143234 pide al Nous Portal que mueva las apps conectadas del free tier a esa cuenta, usando el token de inicio de sesión de la propia cuenta. Los detalles son lo que lo hace confiable:

  • Ninguna llamada de red en el momento de guardar. Hermes solo anota «movimiento pendiente»; el movimiento ocurre cuando el guardado ya ha terminado.
  • Sin confirmación. El resultado se muestra después.
  • Antes de que salga cualquier petición, Hermes comprueba que el token pertenece a la cuenta que reemplazó al free tier. Las apps solo van a esa cuenta. Si iniciaste sesión con otra cuenta antes de que corriera un reintento, el estado dice que el movimiento espera a la primera cuenta.
  • Si el Portal está ocupado o no responde, se reintenta más tarde, incluso después de reiniciar.
  • hermes auth status nous pasa de un logged in pelado a «sesión iniciada, más qué se movió o qué hay que reconectar».

#143248 arregla la tercera aspereza: abrir la página de Connectors no crea nada. La página lista apps desde el catálogo público del Portal, que no necesita inicio de sesión. Conectar una app es lo que crea la identidad en ese momento, y la página cambia a tu propio catálogo, tus cuentas y tus reglas. Si conectaste una app pero no estás en la prueba, recibes tu propia oferta — «Keep your connected apps» — en lugar de la de la prueba.

La pista de la CLI también se corrigió: hermes connectors solía decirte que ejecutaras hermes login, un comando que ya no existe. Ahora dice hermes auth upgrade.

Lo que realmente escribes

La superficie quedó más simple, no más complicada: todos los caminos llevan al mismo sitio.

hermes auth status nous     # cuenta o free tier, más el estado del handoff
hermes auth upgrade         # inicia sesión con una cuenta Nous y conserva tus connectors

Dentro de una sesión es /login, en todas las superficies: escritorio, CLI, TUI y plataformas de mensajería. hermes model y hermes auth add nous conservan sus propios flags (--portal-url, --ca-bundle, --insecure), pero por debajo ejecutan el mismo device login e imprimen el mismo resultado de handoff.

El flujo de escritorio también está unificado: una cancelación se detiene en menos de un segundo y no guarda nada; un código vencido muestra una pantalla de tiempo agotado en vez de un error genérico; y la pantalla de resultado te dice quién inició sesión y qué se movió.

Límites que conviene saber de antemano

  • Los clientes antiguos siguen llamando a los endpoints viejos. El PR dice que los endpoints de transferencia antiguos del servidor no se retiraron en este cambio, porque versiones anteriores de Hermes todavía los llaman.
  • El texto de la nueva oferta está solo en inglés por ahora (se señala en #143248); los demás idiomas caen en él.
  • El catálogo público de la página de Connectors depende de que antes se despliegue una ruta del Portal. Mientras no esté viva, quien no tenga identidad Nous no ve apps alojadas en la página; el resto no se ve afectado.
  • Abrir la lista de herramientas de una app, renombrar o eliminar una cuenta y guardar reglas siguen creando la identidad; para entonces ya has elegido una app, así que es una petición explícita. hermes connectors list y la comprobación de estado del agente también crean una identidad, a propósito.

En qué se diferencia del artículo anterior sobre el free tier

El 13 de octubre escribimos sobre el guest token con scope para los connectors del free tier: un token cuyo único scope es connectors:invoke y que se salta el desafío del navegador. Este artículo es el capítulo siguiente: qué pasa con esas conexiones cuando una cuenta real reemplaza a la identidad gratuita. Para las reglas de nombres con varias cuentas de connector, consulta la guía de cuentas con nombre; para el resto de hermes auth (add, list, reset, priority, refresh), la referencia de comandos es la versión corta.

Estado del lanzamiento

Los tres PRs se fusionaron en main el 23 de octubre de 2026 como un solo stack. La última versión publicada sigue siendo la v0.22.4 del 21 de octubre, así que estos comportamientos solo están en main hasta que la próxima versión llegue al canal estable. En la v0.22.4 el flujo de inicio de sesión sigue siendo el antiguo: revisa la guía de canales de actualización antes de dar por hecho que ya lo tienes.