Basta de entrecerrar los ojos ante un (1) solitario: Hermes ya hace parpadear la pestaña, la barra de tareas y tus notificaciones


Son las cuatro de la tarde. Dejaste Hermes en una pestaña para que avanzara con una tarea y luego te pasaste a otra ventana a escribir código. En algún momento se detuvo y se quedó esperando a que aprobaras un comando rm -rf, y el título de la pestaña pasó discretamente de «Hermes» a «Hermes (1)». Ese (1) se perdió entre una docena de pestañas. Cuando volviste dos horas después, seguía ahí, sin hacer nada.

Esto no es un problema exclusivo de Hermes; es el modo de fallo por defecto de cualquier asistente en segundo plano: la señal que usa para llamar tu atención es demasiado débil. Tan débil que tienes que ir a buscarla, y buscarla es el primer hábito que abandonas cuando te pones ocupado.

Hermes ahora lo aborda como un problema de atención que merece una solución de verdad. La Webapp alterna el título de la pestaña y marca el favicon con un punto ámbar. La app de escritorio hace parpadear la barra de tareas mientras la ventana no tiene el foco —un rebote en el Dock en macOS, una indicación de urgencia en Linux—. Y cuando concedes el permiso, el navegador lanza una notificación real del sistema que te devuelve a ese chat al hacer clic.

Antes era un (1). Ahora son tres capas

La estratificación merece explicación, porque es deliberadamente contenida: cada capa responde a una pregunta distinta sobre cuánta certeza tiene Hermes de que no estás mirando.

Capa Cuándo se dispara Qué ves Cuándo se detiene
Parpadeo del título Pestaña de la Webapp oculta o sin foco El título alterna cada segundo entre el título de la notificación (por ejemplo, Approval needed — <chat>) y el título normal Cuando vuelves a la pestaña
Punto en el favicon Lo mismo Un punto ámbar (#f59e0b) sobre el icono Cuando vuelves a la pestaña
Notificación del navegador Tú mismo pulsaste Permitir Una ventana emergente del sistema; al hacer clic se enfoca la pestaña y se abre esa sesión Cuando la descartas o haces clic en ella
Parpadeo de la barra de tareas Ventana de escritorio sin foco cuando se dispara una notificación del sistema Parpadeo en la barra de tareas de Windows, rebote en el Dock de macOS, indicación de urgencia en Linux Cuando la ventana recibe el foco

Fíjate en el reparto de tareas: el parpadeo de la pestaña no necesita permiso alguno. Si ocurre el evento y la pestaña no está delante, parpadea. Las notificaciones del navegador requieren permiso explícito, porque los navegadores ignoran —y a veces penalizan— las peticiones de permiso que no arrancan de un gesto del usuario. Antes de permitirlo, el parpadeo es la única señal. Después, ambas trabajan juntas.

Por qué la notificación del navegador necesita un clic tuyo

Esto merece su propia sección, porque explica la experiencia de «configuré las notificaciones y no vi ninguna».

El comportamiento anterior pedía permiso en el momento en que llegaba el evento: se dispara un evento y Hermes llama a Notification.requestPermission(). Pero Chrome, Safari y Firefox exigen que la petición de permiso la inicie un gesto del usuario: un clic o una pulsación de tecla. Una petición lanzada por un evento en segundo plano se ignora o se bloquea en silencio, así que ni siquiera llegas a tener la opción de decir que no.

Ahora el permiso se pide en exactamente dos sitios, ambos dentro de Ajustes y ambos con un clic tuyo:

  • Ajustes → Notificaciones → Notificaciones del navegador → Permitir
  • o el botón Enviar notificación de prueba que está al lado

Hermes nunca pregunta al cargar la página ni pregunta desde un evento. Si nunca haces clic, solo hace parpadear el título y no muestra nada más. Es un intercambio deliberado: mejor interrumpirte una vez menos que pelearse con las reglas del navegador.

Hay un segundo detalle: la API de notificaciones del navegador solo existe en un contexto seguro. http://localhost y http://127.0.0.1 cuentan como seguros, y también una dirección HTTPS como Tailscale serve. Pero si abriste la Webapp desde otra máquina como http://192.168.x.x:8317, eso es HTTP plano y las notificaciones no están disponibles. La fila de ajustes lo dice directamente —indica que hace falta HTTPS, por ejemplo Tailscale serve— y el parpadeo del título sigue funcionando. Por eso precisamente el parpadeo se construyó para no depender de nada.

Escritorio: un parpadeo en la barra de tareas, un rebote en el Dock

La app de escritorio toma otro camino: ya tenía notificaciones nativas del sistema operativo. Lo que le faltaba era algo que hacer cuando se dispara una notificación con la ventana en segundo plano y la notificación se la traga el modo No molestar.

Ahora, cuando se dispara una notificación del sistema con la ventana sin foco, el proceso principal de Electron llama a BrowserWindow.flashFrame(true): el icono de la barra de tareas parpadea en Windows, el del Dock rebota en macOS y la ventana emite una indicación de urgencia en Linux. El foco lo corta de inmediato (flashFrame(false)). El parche original vino de un colaborador de la comunidad y se incorporó conservando la autoría.

La regla de diseño importante es que nunca roba el foco. Un parpadeo significa «eh, hay algo que te necesita»; no arrastra tu ventana al frente ni navega a ningún sitio por sí solo. El movimiento solo ocurre cuando haces clic en una notificación.

Encenderlo y apagarlo: usa los interruptores que ya existen

Las nuevas señales no introducen un sistema de ajustes paralelo. Reutilizan los ajustes de notificaciones de escritorio (Ajustes → Notificaciones, descritos por dispositivo):

  • Activar notificaciones es el interruptor maestro. Apagado silencia todos los tipos, así que tampoco parpadea nada.
  • Siete tipos de evento tienen su propio interruptor: Aprobación necesaria, Entrada necesaria, Respuesta lista, Turno fallido, Tarea en segundo plano terminada, Alertas de crédito, Notificaciones de plugins.
  • Un tipo que apagas no parpadea ni notifica. Si «Respuesta lista» es el que te molesta, apaga ese tipo en lugar de toda la función.
  • Enviar notificación de prueba demuestra que el camino funciona: la app de escritorio usa el canal nativo, y la Webapp pide permiso primero y luego publica «Las notificaciones funcionan».

En la Webapp, el comando es hermes webapp. Para comprobar si el gateway está sirviendo la Webapp y qué dirección registró, usa hermes webapp --status. La dirección que imprime es tu prueba de si estás en un contexto seguro.

Cuando aun así no consigue llamar tu atención

Algunos límites honestos, para que no te pases una tarde preguntándote por qué no pasa nada:

  • No parpadea nada mientras la ventana tiene el foco. Las alertas de finalización siempre fueron para cuando no estás; si estás mirando la ventana, Hermes da por hecho que estás atento.
  • Una dirección LAN en HTTP plano no recibe notificaciones del navegador, solo el parpadeo del título.
  • El modo No molestar se come las notificaciones del sistema, pero no el parpadeo de la pestaña ni el de la barra de tareas: de eso va precisamente la estratificación.
  • Un navegador suspendido (un portátil dormido, por ejemplo) no mostrará nada mientras duerme. Cuando la pestaña vuelve a ser visible, el parpadeo se reanuda.
  • Hacer clic en una notificación abre el chat; nunca aprueba nada por ti. Las aprobaciones siguen siendo manuales.

¿Puedes usarlo ya?

El cambio llegó a main el 2026-10-30 (PR #146882, que implementa una petición de la comunidad; el parche original #146542 se rescató con su autor acreditado) y ya está en la v0.22.6 (2026-11-02): actualiza con el instalador o con hermes update y lo tienes.

Para probarlo ahora tienes que seguir main (una instalación desde el código fuente), o esperar a la próxima versión. Cuando salga, acuérdate de pulsar Permitir una vez en Ajustes; si no, solo verás el parpadeo del título, concluirás que la función está rota y volverás a vigilar si aparece un (1).

Si el problema contrario es el que te molesta —demasiados avisos de «trabajo terminado»—, escribimos sobre cómo Hermes agrupa las tareas en segundo plano terminadas en una sola notificación: /es/blog/hermes-background-notification-batching/. Ese artículo va de demasiada señal; este va de demasiado poca. El mismo problema desde los dos extremos.