Guía
La guía completa.
Console para Hermes Agent. Todo lo que necesitas para pasar de cero a hablar con tu agente: instalar la app, preparar tu servidor con una línea y escanear un código. Cada comando está aquí.
Empieza aquí
Console es la app Android que se conecta directamente al Hermes Agent que funciona en tu servidor, PC o VPS. Habla con el Gateway y el Dashboard del propio Hermes; no hace falta instalar nada más.
- Instala Console en el móvil (necesitas la versión 1.2.15 o posterior).
- Pega una línea en el equipo donde vive Hermes. Lo deja listo para la app y muestra un código.
- Escanea el código con la app. Ya estás conectado.
El código lleva la dirección del equipo, su clave y el acceso al Dashboard, así que no escribes nada. Tampoco necesitas saber si los puertos están listos ni buscar claves.
Si algo de lo tuyo es distinto (ya lo preparaste, no sabes la contraseña del Dashboard, vienes de una instalación antigua, usas Docker), baja a su sección.
1. Instala Console
Desde Google Play, con Obtainium o con el APK de las versiones de GitHub. Necesitas Android 7 o superior y Console 1.2.15 o posterior.
Elige un camino y quédate con él: Google Play y GitHub/Obtainium firman la app de forma distinta y Android no deja actualizar de uno a otro. Instala solo versiones publicadas oficialmente.
Al abrir Console verás «Conecta con tu Hermes» y un botón «Escanear código». Déjala ahí y pasa al paso 2.
2. Prepara tu servidor
curl -fsSL https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.sh | shirm https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.ps1 | iexPega la línea de tu sistema en el equipo donde vive Hermes: un VPS, un homelab, un mini-PC o tu ordenador, con Linux, macOS o Windows. Todo ocurre en la ventana donde la pegas; no se abre ninguna otra y los servicios siguen en segundo plano sin ventana propia.
- Mac y Linux: en una Terminal.
- Windows: en Windows PowerShell 5.1 o superior abierto como administrador. El instalador añade una regla de firewall limitada a tu red privada y nunca pide permisos por su cuenta.
- Windows con WSL2: usa también la línea de Windows, en PowerShell de Windows y fuera de WSL; así se configuran bien la red, el firewall y el arranque.
Verás el sello xPetaLab | CONSOLE y siete pasos numerados, de 1/7 a 7/7: Looking at this computer, Checking Hermes, Preparing the services, Starting Hermes in the background, Setting up the Dashboard sign-in, Checking that your phone can reach it y Making your code. Si Hermes no estaba instalado, lo instala. Si ya lo estaba, conserva tus claves y accesos: puedes repetir la línea cuantas veces quieras.
La primera vez el Dashboard tarda en construirse; en un equipo lento puede llevar varios minutos. Espera: el instalador sigue trabajando y no da un fallo falso.
Solo cuando todo está comprobado, de verdad y por la dirección que usará el móvil, aparece SCAN THIS CODE WITH CONSOLE y el código. Al final también lo dice: Needs Console 1.2.15 or newer on the phone.
Si Hermes aún no tiene modelo de IA, elige tu proveedor y modelo desde el Dashboard, dentro de la app.
3. Escanea el código
- Deja el código visible en la pantalla del equipo.
- En el móvil, en Console, pulsa «Escanear código» y apúntalo. La cámara se pide solo en esa pantalla.
- Console te dice con palabras sencillas a qué se va a conectar y comprueba la dirección, la clave del chat y el acceso al Dashboard antes de guardar nada. Confirma.
- Verás «Conectado». Ya puedes hablar con Hermes.
¿No tienes cámara a mano, o el código está en el propio móvil? El instalador imprime también un enlace que empieza por hermes://pair: cópialo y usa «Tengo un enlace» en la app.
El código y el enlace llevan la clave de tu Hermes y el acceso al Dashboard. Trátalos como una contraseña: no los compartas ni publiques capturas.
Si el instalador guardó una contraseña del Dashboard que él mismo creó, también la enseña una vez, por si quieres entrar en el Dashboard desde un navegador.
Ya lo preparé: ver el código otra vez
curl -fsSL https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-pair.sh | shirm https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-pair.ps1 | iexSi ya ejecutaste la preparación y solo necesitas el código (para otro móvil, o porque lo cerraste), esta línea lo vuelve a mostrar sin reinstalar ni reiniciar nada: no cambia nada en el disco.
Antes comprueba de nuevo el Gateway y el Dashboard por la dirección que usa el móvil. Si alguno está caído o no acepta el acceso, no enseña ningún código y te pide repetir la preparación completa (el paso 2). En Windows y WSL2, otra vez en PowerShell de Windows y fuera de WSL.
En la app, la ayuda «No tengo código» («Saca el código en tu ordenador») trae estas mismas líneas listas para copiar o enviar al ordenador, con el botón «Ya había preparado este ordenador» para este caso.
No sé la contraseña del Dashboard
curl -fsSL https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.sh | sh -s -- --new-access& ([scriptblock]::Create((irm https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.ps1))) -NewAccessConsole te la pide si el Dashboard ya tenía una contraseña que el instalador no conoce (nunca cambia una por su cuenta). Si no la recuerdas, no se puede leer: se hace una nueva.
Esta línea crea un acceso nuevo al Dashboard, cierra las sesiones abiertas con el anterior (también la de un móvil o un navegador que quieras echar) y muestra un código nuevo. Escanéalo como en el paso 3. En Windows se ejecuta en PowerShell, igual que la preparación.
Si la contraseña está escrita a mano en el archivo .env de Hermes (HERMES_DASHBOARD_BASIC_AUTH_*), ese archivo manda y el comando no lo edita: te lo dice y muestra el código con el acceso que haya ahí. En un equipo Unix sin systemd ni launchd, para antes los dos servicios; el mensaje nombra los dos comandos.
Vengo de una instalación antigua
curl -fsSL https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.sh | sh -s -- --retire-bridge& ([scriptblock]::Create((irm https://raw.githubusercontent.com/xP3ta/hermes-setup/main/hermes-mobile-setup.ps1))) -RetireBridgeHasta Console 1.2.14, la preparación instalaba un tercer servicio, el Mobile Bridge (puerto 9131). Console 1.2.15 y las siguientes ya no lo usan: hablan directamente con el Gateway y el Dashboard de Hermes, y una instalación nueva no lo instala ni lo descarga.
- Actualiza la app. Una Console anterior a la 1.2.15 necesita el bridge, que una instalación nueva ya no trae: pon la 1.2.15 o posterior en el móvil. Al primer arranque tras actualizar, Console revisa cada conexión una vez, borra los datos del bridge que guardaba y te avisa si alguna necesita entrar en el Dashboard.
- Repetir la línea de preparación no rompe nada. Prepara el Gateway y el Dashboard, y si el bridge sigue en marcha lo deja funcionando, intacto, para que un móvil con una Console antigua siga conectando. Al final te enseña la línea de limpieza.
- Cuando todos tus móviles tengan la 1.2.15 o posterior, ejecuta esta línea: detiene y borra el bridge y nada más (el Gateway y el Dashboard no se tocan). Si la ejecutas dos veces, o en un equipo que nunca lo tuvo, dice que no hay nada que quitar y no cambia nada.
Quita el servicio del bridge, su proceso y sus archivos. Sus copias de seguridad y registros son tuyos y se quedan. Si abriste el puerto 9131 en el firewall, ya puedes cerrarlo: nadie escucha ahí.
Conectar a mano
Si no puedes o no quieres usar el instalador, en la primera pantalla de Console elige «Conectar a mano» y rellena lo que pide la conexión:
- Dirección del Gateway: la del equipo, alcanzable desde el móvil, mejor con HTTPS (por ejemplo la de Tailscale o la de tu red).
- Clave del Gateway: el
API_SERVER_KEYde ese Hermes. No es la clave de ningún proveedor de IA: no pegues aquí una de OpenAI u otra. - Dirección del Dashboard: opcional; por defecto es el puerto 9119 del mismo equipo.
- Acceso al Dashboard: entras con el usuario y la contraseña de ese Dashboard.
El botón «Comprobar conexión» de la pantalla de la conexión prueba el Gateway y el Dashboard y te dice cuál de los dos no responde.
Preparar el equipo a mano
Es lo que hace el instalador, a mano. En el equipo donde vive Hermes, añade al archivo .env de Hermes (~/.hermes/.env en Linux y macOS) el acceso del Dashboard:
HERMES_DASHBOARD_BASIC_AUTH_USERNAME=adminHERMES_DASHBOARD_BASIC_AUTH_PASSWORD=tu-contraseña-nueva
y arráncalo abierto a tu red: hermes dashboard --no-open --host 0.0.0.0 --port 9119. Para el Gateway, crea una clave larga (openssl rand -hex 32; Hermes rechaza una corta) y añade al mismo .env:
API_SERVER_ENABLED=trueAPI_SERVER_HOST=0.0.0.0API_SERVER_KEY=pega-aquí-la-clave
y arráncalo con hermes gateway. Después, en el móvil, «Conectar a mano».
Hermes en Docker o en otra máquina
WSL2: la línea de Windows se ejecuta en PowerShell de Windows, fuera de WSL, como en el paso 2.
Docker u otro contenedor: la línea de preparación está pensada para el equipo donde Hermes se instala directamente (si no lo encuentra, lo instala), así que no es para un Hermes que vive dentro de un contenedor. Console solo necesita que, desde el móvil, se alcancen el Gateway (puerto 8642 por defecto, con su clave) y el Dashboard (puerto 9119 por defecto, con su usuario y contraseña): publica esos dos puertos desde el contenedor, mejor dentro de una red privada o con HTTPS, y usa Conectar a mano.
Con la imagen oficial nousresearch/hermes-agent, un solo contenedor sirve las dos cosas. Crea una carpeta con este docker-compose.yml:
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes
restart: unless-stopped
command: gateway run
ports:
- "8642:8642" # Gateway
- "9119:9119" # Dashboard
volumes:
- ./hermes-data:/opt/data
environment:
HERMES_DASHBOARD: "1"
HERMES_DASHBOARD_BASIC_AUTH_USERNAME: admin
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD: ${DASHBOARD_PASSWORD}
API_SERVER_ENABLED: "true"
API_SERVER_HOST: 0.0.0.0
API_SERVER_KEY: ${GATEWAY_KEY}
Crea al lado las dos claves y arráncalo:
printf 'GATEWAY_KEY=%s\nDASHBOARD_PASSWORD=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 16)" > .env
docker compose up -d
Después, en el móvil, «Conectar a mano»: dirección http://IP-del-equipo:8642, como clave el valor de GATEWAY_KEY, y para el Dashboard el usuario admin con el valor de DASHBOARD_PASSWORD (ambos en el archivo .env). El Dashboard exige usuario y contraseña en cuanto escucha fuera del propio equipo; sin ellos no arranca. restart: unless-stopped los levanta solos tras reiniciar el contenedor o el equipo.
Unraid: crea el contenedor con esa misma imagen, el mismo comando (gateway run), los puertos 8642 y 9119, una ruta para /opt/data y las mismas variables como campos del contenedor.
No abras estos puertos a Internet sin HTTPS válido y una política de red adecuada.
Tour por la app
- Chat — streaming token a token, texto y bloques de código seleccionables, adjuntos de imágenes y documentos con progreso visible y generación de imágenes en la propia conversación.
- Voz — elige por instancia entre el motor del móvil y el servidor Hermes; conserva dictado, lectura y conversación manual con continuidad opcional. Guía de voz →
- Sesiones — todas las conversaciones del agente, también las que empezaste en el escritorio.
- Kanban — tablero de tareas del agente: backlog, en curso, revisión y bloqueado; sus resultados pueden avisarte y abrir el trabajo correspondiente.
- Modelos — cambia el modelo activo, catálogo Ollama, y proveedores externos (LM Studio, OpenAI-compatible).
- MoA — recetas Mixture-of-Agents editables desde la app: varios modelos proponen, uno agrega la respuesta final.
- Terminal SSH — shell real con PTY contra cualquier máquina, y navegador SFTP para subir/bajar archivos.
- Cron — jobs programados: crear, editar, pausar, disparar a mano y recibir un aviso que abre la ejecución correcta.
- Memory — lee y edita la memoria persistente del agente, con borradores locales.
- SOUL — el documento de identidad del agente (su persona), editable con plantillas y autosave.
- Skills — explora las skills instaladas en tu agente.
- Task Center — cada ejecución lanzada desde la app, con seguimiento en vivo.
- Aprobaciones — cuando el agente quiere ejecutar algo delicado, te llega con su nivel de riesgo: apruebas o rechazas, incluso desde la notificación.
- Bots con cara — cada perfil elige una mascota, una imagen o una cara, y se ve cómo está (trabajando, libre).
Configuración
- Apariencia — temas oscuros y claros (incluido OLED puro), tamaño de texto y selector de fuente.
- Idioma — español e inglés, o el del sistema.
- Seguridad — bloqueo de app con biometría o PIN; la API key vive cifrada en el Android Keystore.
- Notificaciones — aprobaciones y resultados terminales de Cron/Kanban, deduplicados y enlazados a su conversación o ejecución: cero Google, cero push de terceros.
- Voz — elige «En este móvil» o «Servidor Hermes» por instancia; el modo conversación se puede apagar sin perder dictado ni lectura. Configurar voz →
- Accesibilidad — toggles coherentes, detalles técnicos plegables y selectores adaptables a texto ampliado y pantallas estrechas.
- Servidor — desde la propia app: actualizar Hermes y reiniciar el Gateway.
Permisos Android, sin letra pequeña
- Cámara — se abre solo cuando escaneas un código o haces una foto adjunta. El código se procesa en el dispositivo; la foto solo se envía a tu Hermes cuando mandas el mensaje.
- Micrófono — empieza después de iniciar dictado o una conversación. Mantener una conversación fuera de la app exige un opt-in separado y una notificación persistente con controles.
- Notificaciones — avisos locales de aprobaciones, ejecuciones y Cron/Kanban, además de los controles de Voz o Lectura en voz alta que hayas iniciado. No usa push de terceros.
- Biometría — solo para el bloqueo opcional de la app. Android realiza la comprobación; Console no accede a plantillas biométricas.
- Fotos y documentos — se eligen con los selectores de Android. En Android moderno la app no enumera ni importa el almacenamiento general.
La variante de Google Play es solo remota y no incluye los permisos ni las búsquedas de apps que necesita la variante completa para integrarse con F-Droid.
Si algo no va
- «No se puede conectar». Comprueba que móvil y servidor comparten red (¿Tailscale activo en ambos?) y que el puerto es
8642. Puedes volver a pegar la línea de preparación de tu sistema: es segura, conserva tus claves y repara o levanta los servicios necesarios. - «El móvil no ve tu ordenador». Usa la misma wifi o enciende Tailscale en ambos y reintenta.
- «Hermes no acepta esta clave». La clave cambió: saca un código nuevo en el ordenador con ver el código otra vez.
- Windows bloquea la conexión. Vuelve a pegar la línea en un PowerShell abierto como administrador: así puede crear la regla de firewall solo para redes privadas. Si la LAN figura como «Pública», cámbiala a «Privada» o usa Tailscale.
- Error de certificado TLS. En red privada conecta por LAN o Tailscale (HTTP interno está bien ahí); para un dominio público usa un certificado válido en el proxy.
- El código se cerró o no aparece. Usa «ver el código otra vez» y elige el sistema del equipo donde corre Hermes. Si no sale ninguno, repite la preparación (paso 2): el mensaje dice qué servicio falla.
- Console pide la contraseña del Dashboard. Si no la recuerdas, mira «No sé la contraseña del Dashboard».
- No llegan notificaciones. Activa la escucha en segundo plano en Ajustes → Notificaciones y concede el permiso de notificaciones (Android 13+).
Seguridad y red, en corto
- Conecta por LAN o Tailscale siempre que puedas; no abras
8642ni9119al internet público. - Si necesitas acceso desde fuera, Tailscale te da una red privada cifrada sin abrir puertos; HTTPS con certificado válido es la alternativa.
- Tu API key nunca sale del móvil salvo hacia tu servidor, y se guarda cifrada en el Keystore.
- El dashboard queda protegido con contraseña desde el primer arranque (el instalador se asegura de ello).
- Los mensajes y adjuntos se envían al Hermes que configuras; XPeta Lab no opera backend, cuenta ni tracking. Los proveedores opcionales y el escáner QR local con ZXing se detallan en la política de privacidad completa →
Cargando el formulario de Ko-fi…