Un interruptor, dos escritorios: los modos de interfaz Simple / Advanced de Hermes

Le recomiendas la app de escritorio de Hermes a un colega que no escribe código. La abre y se queda tres segundos congelado: una barra de profiles a la izquierda, una statusbar abajo, un panel de terminal a la derecha, cada tool call del transcript desplegado en un muro de JSON, diffs con color encima de eso, y “Subagentes” y “Procesos en segundo plano” en la barra lateral. Pregunta: “¿Dónde escribo?” Después cierra la ventana.
Lo mismo les pasa a los veteranos, pero en la dirección contraria: cuando solo quieres pensar en una cosa, toda esa instrumentación es ruido. El nuevo modo de interfaz de la app de escritorio (#118587) existe para esos dos públicos — Simple y Advanced.
Qué es cada modo
En una línea: Advanced es la app tal como está hoy, y Simple es chat primero. Y hay una regla firme en la frontera — un modo cambia lo que se muestra, nunca lo que Hermes puede hacer.
Lo que Simple aparta:
| Oculto en Simple | Notas |
|---|---|
| Statusbar | La franja de instrumentación en vivo |
| Barra de profiles | Excepción: se queda si un segundo profile la convierte en la única forma de cambiar |
| Paneles de terminal / explorador de archivos / revisión | Los paneles en sí |
| Vista técnica de los tool call y diffs de código en línea | Los muros de JSON y los diffs con color del transcript |
| Filas de Artifacts y Scheduled jobs en la barra lateral | Más cualquier fila aportada etiquetada como de nivel Advanced |
| Botones de HUD, volteo y barra lateral derecha del titlebar | Incluidas las herramientas de titlebar aportadas |
| Grupos de estado de Subagentes y Procesos en segundo plano | Dos de los grupos de estado |
| La fila git del compositor, y las filas de filtro de PR y profile | Los pequeños controles alrededor del input |
| El pensamiento arranca colapsado | Colapsado, no eliminado |
Lo que Simple mantiene a propósito: la conversación en sí, Sessions y Bots, Nueva sesión, Capabilities y Messaging (son la forma en que cualquiera configura Hermes, así que se quedan), Ajustes y el editor de diseño en el titlebar, todos los atajos de teclado, ⌘K, Todos, Goal, Queue, los chips de preview, los avisos de facturación y plan gratuito, y el focus_pane del agente. Además, la combinación Ctrl más acento grave sigue abriendo el terminal de la sesión actual: se conserva una salida de emergencia.
El editor de diseño de Simple queda reducido al selector de modo más dos tarjetas, “Barra lateral a la izquierda” y “Barra lateral a la derecha”. Las plantillas, los decks guardados y Guardar diseño actual son cosa de Advanced.
Cómo se cambia
Tres puntos de entrada, un único estado detrás de ellos:
- el selector de modo en el editor de diseño;
- Ajustes → Appearance → Window & layout;
- la fila en ⌘K.
Por debajo es una acción reasignable, view.toggleSimpleMode, y la elección persiste bajo la clave hermes.desktop.interfaceMode.v1.
Por qué esta implementación le gana a un preset
Esta es la parte más instructiva del cambio. En muchas apps, un “modo simple” es un preset: al entrar reescribe tus preferencias una por una, y al salir tiene que reconstruir lo que había antes — así que o saca una instantánea de todo, o adivina, y cuando adivina mal tu diseño se ha perdido.
Hermes tomó el otro camino: un modo es una entrada del resolver, no un preset que escribe preferencias. Hay exactamente una regla de precedencia, en exactamente un sitio:
effective(surface) = sessionReveal ?? policy[mode] ?? userPreference
Léelo como tres capas, de mayor a menor prioridad:
sessionReveal— lo que revelas para esta sesión. Si sacas el terminal en Simple con Ctrl más acento grave, eso cae en una capa de sesión y se limpia al reiniciar o al cambiar de modo. Así que un modo es un valor por defecto, no un candado — y una revelación de sesión no puede filtrarse hacia la preferencia que fijaste en el otro modo.policy[mode]— ypolicy.advancedes un objeto vacío. Ese es el detalle que sostiene todo: Advanced lo muestra todo no porque esté configurado para ello, sino porque no sobrescribe nada, de modo que por construcción caes en tus propias preferencias. En palabras del código, Advanced es la ausencia de modo, codificada en el almacenamiento como “ninguna clave”.userPreference— el fallback.
Tres consecuencias que merece la pena detallar:
- Las instalaciones existentes no ven ningún cambio al actualizar. Como la política de Advanced es vacía, no se escribe absolutamente nada en tu almacenamiento.
- Simple hace sombra a una preferencia en lugar de sobrescribirla. Nunca reescribe tu selección de diseño, así que salir de Simple restaura exactamente la configuración previa — nada que instantanear, nada que reparar.
- Un modo no puede mover las preferencias del otro modo. Y cuando una acción es de verdad una intención de diseño (por ejemplo, elegir un diseño que abre paneles), una escritura ensombrecida se descarta en lugar de aplicarse — porque “enséñamelo ahora” y “cambia mi diseño por defecto” son peticiones distintas.
Hay un detalle de ingeniería muy bonito en cómo se mantiene contenido: los componentes nunca llegan a conocer la palabra “modo”. Cada store de preferencias envuelve su propio átomo en modeBound y luego exporta el átomo efectivo con el nombre que ya importaba cada consumidor, así que ningún consumidor cambió una línea. Las superficies de tipo lista etiquetan sus elementos con un tier y ejecutan un único filtro shownInMode en el filtro que ya tenían. El concepto de modo tiene por tanto un único dueño, en lugar de filtrarse a decenas de componentes como condicionales sueltos.
Cuál usar
- Dar la app a alguien que no programa → Simple. Su trabajo es la conversación; una statusbar y los diffs son solo presión.
- Depurar Hermes, vigilar subagentes, leer argumentos de herramientas → Advanced. Esa información es justo la que quieres.
- Concentrarte en escribir → pasa a Simple temporalmente. No tocará tu diseño, y volver atrás no hace nada.
Si quieres montar el workflow de escritorio antes de cambiar de modo, diseños y espacios de trabajo cubre el editor de diseño en sí, el hub de skills de escritorio cubre de dónde vienen las capacidades, y leer, previsualizar, navegador trata precisamente de los paneles que Simple esconde. La base bajo los atajos está en la guía de la paleta de comandos.
Para cerrar
La forma típica en que un “modo simple” sale mal es siendo un preset que reescribe las preferencias del usuario: cambia de un lado a otro unas cuantas veces y ya nadie recuerda cuál era el diseño original. Aquí, un modo es solo una entrada del resolver en la capa de visualización, Advanced se define como la política vacía y Simple se define como sombra. El resultado: las actualizaciones son invisibles, el cambio no pierde nada y una revelación temporal se puede recuperar. No desaparece ninguna capacidad — simplemente se guarda parte de ella.