20 KiB
English · 简体中文 · 日本語 · Español (LATAM)
Este proyecto está en desarrollo activo. Las funciones pueden cambiar y algunas cosas podrían no funcionar perfectamente. Si encuentras un problema o tienes una idea, abre un issue. ¡Las contribuciones son bienvenidas!
Hermes Desktop es una aplicación nativa de escritorio para instalar, configurar y chatear con Hermes Agent — un asistente de IA con autoaprendizaje, uso de herramientas, mensajería multiplataforma y un ciclo de aprendizaje cerrado.
En lugar de manejar el CLI a mano, la app guía todo el proceso de instalación, configuración de proveedores y uso diario en un solo lugar. Usa el script oficial de instalación de Hermes, guarda los archivos en ~/.hermes y te da una GUI para chat, sesiones, perfiles, memoria, habilidades, herramientas, tareas programadas, gateways de mensajería y más.
Patrocinadores
Atlas Cloud es una plataforma de inferencia de IA full-modal compatible con OpenAI (DeepSeek, Qwen, GLM, Kimi, MiniMax y más). Úsala en Hermes Desktop seleccionando Atlas Cloud como tu proveedor — la URL base se configura automáticamente.
Instalación
Windows
Usuarios de Windows: El instalador no tiene firma de código. Windows SmartScreen mostrará una advertencia al primer lanzamiento — haz clic en "Más información" → "Ejecutar de todas formas".
Usuarios de WSL: Si el instalador se queda colgado en
Switching to root user to install dependencies..., Playwright está esperando una contraseña de sudo que no tiene TTY para leerla. Otorga sudo sin contraseña para la instalación y reviértelo al terminar:echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/hermes-install # …vuelve a ejecutar el instalador; cuando termine: sudo rm /etc/sudoers.d/hermes-installSeguimiento en #109.
Fedora (RPM)
sudo dnf install ./hermes-desktop-<version>.rpm
Usuarios de Fedora: El
.rpmno tiene firma GPG. Si tu sistema exige verificación de firma, agrega--nogpgcheckal comando de instalación. La actualización automática no está disponible para builds.rpm(limitación deelectron-updater); reinstala el nuevo.rpmpara actualizar.
Vista previa
Chat![]() |
Perfiles![]() |
Modelos![]() |
Proveedores![]() |
Herramientas![]() |
Habilidades![]() |
Tareas programadas![]() |
Gateway![]() |
Persona![]() |
Kanban![]() |
Oficina![]() |
Configuración![]() |
Funcionalidades
- Instalación guiada en el primer uso de Hermes Agent con seguimiento de progreso y resolución de dependencias
- Backend local o remoto — ejecuta Hermes localmente en
127.0.0.1:8642, o conecta la app a un servidor remoto con URL + clave API - Soporte multi-proveedor — OpenRouter, Anthropic, OpenAI, Google (Gemini), xAI (Grok), Nous Portal, Qwen, MiniMax, Hugging Face, Groq y endpoints compatibles con OpenAI (LM Studio, Atomic Chat, Ollama, vLLM, llama.cpp)
- UI de chat con streaming con SSE, indicadores de progreso de herramientas, renderizado de Markdown y resaltado de sintaxis
- Seguimiento de tokens — conteo en tiempo real de tokens de entrada/salida y costo en el pie del chat, más el comando
/usage - 22 comandos slash —
/new,/clear,/fast,/web,/image,/browse,/code,/shell,/usage,/help,/tools,/skills,/model,/memory,/persona,/version,/compact,/compress,/undo,/retry,/debug,/statusy más - Gestión de sesiones — búsqueda de texto completo (SQLite FTS5), historial agrupado por fecha, reanudar y buscar conversaciones
- Cambio de perfiles — crea, elimina y cambia entre entornos Hermes con configuración aislada
- 14 conjuntos de herramientas — web, navegador, terminal, archivos, ejecución de código, visión, generación de imágenes, TTS, habilidades, memoria, búsqueda de sesiones, clarificación, delegación, MoA y planificación de tareas
- Sistema de memoria — ver/editar entradas de memoria, perfil de usuario, seguimiento de capacidad y proveedores de memoria (Honcho, Hindsight, Mem0, RetainDB, Supermemory, ByteRover)
- Editor de Persona — edita y restablece el archivo SOUL.md de personalidad de tu agente
- Modelos guardados — gestión CRUD de configuraciones de modelos por proveedor
- Tareas programadas — constructor de cron jobs (minutos, cada hora, diario, semanal, cron personalizado) con 15 destinos de entrega
- 16 gateways de mensajería — Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email (IMAP/SMTP), SMS (Twilio/Vonage), iMessage (BlueBubbles), DingTalk, Feishu/Lark, WeCom, WeChat (iLink Bot), Webhooks, Home Assistant
- Hermes Office (Claw3d) — interfaz visual 3D con servidor de desarrollo y gestión de adaptadores
- Backup, importar y diagnóstico — respaldo/restauración completa y diagnóstico del sistema desde Configuración
- Visor de logs — visualiza logs de gateway y agente directamente desde la pantalla de Configuración
- Actualizador automático — verifica e instala actualizaciones vía electron-updater
- Listo para i18n — framework de internacionalización con localización en inglés para todas las pantallas, listo para traducciones de la comunidad
- Suite de pruebas — parser SSE, handlers IPC, superficie de API preload, utilidades del instalador y validación de constantes con Vitest
Cómo funciona
Al primer lanzamiento, la app:
- Pregunta si deseas ejecutar Hermes localmente o conectarte a un servidor remoto.
- Modo local: verifica si Hermes ya está instalado en
~/.hermes; si no, ejecuta el instalador oficial con resolución de dependencias (Git, uv, Python 3.11+). - Modo remoto: solicita la URL de la API remota y la clave API, valida la conexión y omite la instalación local.
- Solicita un proveedor de API o endpoint de modelo local.
- Guarda la configuración del proveedor y las claves API en los archivos de configuración de Hermes.
- Lanza el workspace principal una vez completada la configuración.
En modo local, las solicitudes de chat van por http://127.0.0.1:8642 con streaming SSE. En modo remoto, la app se comunica con tu URL remota configurada con el mismo protocolo de streaming. La app parsea el stream en tiempo real, renderizando progreso de herramientas, contenido Markdown y uso de tokens a medida que llegan.
Pantallas
| Pantalla | Descripción |
|---|---|
| Chat | UI de conversación con streaming, comandos slash, progreso de herramientas y seguimiento de tokens |
| Sesiones | Navega, busca y reanuda conversaciones pasadas |
| Agentes | Crea, elimina y cambia entre perfiles de Hermes |
| Habilidades | Navega, instala y gestiona habilidades incluidas e instaladas |
| Modelos | Gestiona configuraciones de modelos guardadas por proveedor |
| Memoria | Ver/editar entradas de memoria, perfil de usuario y configurar proveedores de memoria |
| Soul | Edita la persona del perfil activo (SOUL.md) |
| Herramientas | Activa o desactiva conjuntos de herramientas individuales |
| Programadas | Crea y gestiona cron jobs con destinos de entrega |
| Gateway | Configura y controla integraciones de plataformas de mensajería |
| Oficina | Configuración y gestión de la interfaz visual Claw3d |
| Configuración | Config de proveedor, pools de credenciales, backup/importar, visor de logs, red, tema |
Proveedores soportados
Patrocinadores
| Proveedor | Notas |
|---|---|
| Atlas Cloud | Gateway compatible con OpenAI — DeepSeek, Qwen, GLM, Kimi, MiniMax y más (atlascloud.ai) |
Proveedores de LLM
| Proveedor | Notas |
|---|---|
| OpenRouter | 200+ modelos vía API única (recomendado) |
| Anthropic | Acceso directo a Claude |
| OpenAI | Acceso directo a GPT |
| Google (Gemini) | Google AI Studio |
| xAI (Grok) | Modelos Grok |
| Nous Portal | Capa gratuita disponible |
| Qwen | Modelos QwenAI |
| MiniMax | Endpoints globales y de China |
| Hugging Face | 20+ modelos abiertos vía HF Inference |
| Groq | Inferencia rápida (voz/STT) |
| Local/Custom | Cualquier endpoint compatible con OpenAI |
Los presets locales incluyen LM Studio, Atomic Chat, Ollama, vLLM y llama.cpp.
Plataformas de mensajería
Telegram, Discord, Slack, WhatsApp, Signal, Matrix/Element, Mattermost, Email (IMAP/SMTP), SMS (Twilio y Vonage), iMessage (BlueBubbles), DingTalk, Feishu/Lark, WeCom, WeChat (iLink Bot), Webhooks y Home Assistant.
Integraciones de herramientas
Exa Search, Parallel API, Tavily, Firecrawl, FAL.ai (generación de imágenes), Honcho, Browserbase, Weights & Biases y Tinker.
Desarrollo
Requisitos previos
- Node.js y npm
- Un entorno tipo Unix para el instalador de Hermes
- Acceso a internet para descargar Hermes en la primera instalación
Instalar dependencias
npm install
Iniciar la app en desarrollo
npm run dev
Ejecutar verificaciones
npm run lint
npm run typecheck
Ejecutar pruebas
npm run test
npm run test:watch
Construir la app de escritorio
npm run build
Empaquetado por plataforma:
npm run build:mac
npm run build:win
npm run build:linux
npm run build:rpm # Solo .rpm para Fedora/RHEL
Configuración inicial
Cuando la app se abre por primera vez, detectará una instalación existente de Hermes o se ofrecerá a instalarla.
Rutas de configuración soportadas en la UI:
OpenRouterAnthropicOpenAILocal LLMvía URL base compatible con OpenAI
Los presets locales incluyen:
- LM Studio
- Atomic Chat
- Ollama
- vLLM
- llama.cpp
Los archivos de Hermes se gestionan en:
~/.hermes~/.hermes/.env~/.hermes/config.yaml~/.hermes/hermes-agent~/.hermes/profiles/— directorios de perfiles con nombre~/.hermes/state.db— base de datos del historial de sesiones~/.hermes/cron/jobs.json— tareas programadas
Proveedor de secretos
Por defecto, las claves API viven en ~/.hermes/.env (el proveedor env). No se necesita configuración — este es el comportamiento histórico y nada cambia para ti.
Si prefieres no guardar claves en un .env en texto plano, el proveedor command (de activación opcional) las resuelve ejecutando un comando auxiliar que tú configuras. El orden de resolución en todos lados es: process.env → .env → proveedor → no definida.
Helper por clave (el nombre de la clave solicitada llega como $HERMES_SECRET_KEY):
# ~/.hermes/config.yaml
secrets:
provider: command
command: secret-tool lookup hermes "$HERMES_SECRET_KEY"
O un helper que vuelca un bloque dotenv (por ejemplo, un vault que se descifra en tmpfs):
secrets:
provider: command
command: "cat /run/user/1000/hermes-secrets.env"
La salida del helper puede ser un valor único (helpers por clave) o líneas KEY=VALUE (volcados dotenv); ambos formatos se detectan automáticamente.
Integración con vault / gestor de secretos (sin TPM requerido)
El proveedor command es agnóstico al vault — ejecuta el helper que configures y lee su stdout. El helper es lo único que necesita comunicarse con tu almacén de secretos. Si no tienes un keyfile sellado con TPM, cualquiera de estas opciones funciona sin cambios en el código de Hermes:
- KeePassXC (BD solo con contraseña, sin keyfile): apunta
secrets.commanda un pequeño scriptkpxc-export.shque hacekeepassxc-cli ls ~/secrets/hermes.kdbx <<<"$KPXC_PASSWORD"y vuelca el grupo relevante como dotenv. Pide la contraseña maestra una vez por sesión. - GnuPG con clave solo de contraseña:
gpg --batch --passphrase-fd 0 --decrypt ~/.keys/api-keys.gpgfunciona directamente como valor decommand. Pasa la contraseña vía descriptor de archivo o variable de entorno, nunca como argumento. pass(el gestor de contraseñas unix estándar):command: "pass show hermes/$HERMES_SECRET_KEY"para helper por clave, o un script wrapper para volcado dotenv.secret-tool(libsecret/Gnome Keyring):command: "secret-tool lookup hermes $HERMES_SECRET_KEY"(ya mostrado arriba como ejemplo canónico por clave).- Bitwarden CLI:
bw get item "$HERMES_SECRET_KEY" | jq -r .notes(después debw unlocken la sesión). - 1Password CLI:
op read "op://vault/$HERMES_SECRET_KEY/credential". - Archivo env plano con permisos gestionados:
command: "cat ~/.config/hermes/secrets.env"conchmod 600y el archivo propiedad de tu usuario. No tan seguro como un vault, pero mejor que un.envlegible por todos.
El punto: cualquier helper que imprima un valor (por clave) o un bloque dotenv (modo lista) en stdout funcionará, y Hermes impone un timeout de 3 segundos y un límite de 1 MiB de salida al helper. El proveedor no hace suposiciones sobre TPM, FIDO2, tarjetas inteligentes ni keychains de plataforma.
Modelo de seguridad:
- El string de comando es tu propia configuración — mismo nivel de confianza que
.env. Se ejecuta vía/bin/sh -c, por lo que el proveedor command es solo POSIX (Linux/macOS); Windows se mantiene en el proveedor env. - El helper hereda el entorno del proceso más
HERMES_SECRET_KEY; el nombre de la clave se pasa como dato, nunca interpolado en el string del shell. - Timeout fijo de 3 segundos, límite de 1 MiB de salida, y stderr se descarta.
- Los valores resueltos nunca se registran ni se escriben en disco; los fallos degradan a "clave no definida", registrando solo el código de salida/señal.
- El broadcast de inicio de gateway usa una única llamada
list(), nunca un loop de helper por clave.
Fuente de verdad: src/main/secrets/.
Stack tecnológico
- Electron 39 — shell de escritorio multiplataforma
- React 19 — framework de UI
- TypeScript 5.9 — tipado seguro en procesos main y renderer
- Tailwind CSS 4 — estilos utility-first
- Vite 7 + electron-vite — servidor de desarrollo rápido y herramientas de build
- better-sqlite3 — almacenamiento local de sesiones con búsqueda FTS5
- i18next — framework de internacionalización
- Vitest — test runner
Notas
- La app de escritorio depende del proyecto upstream Hermes Agent para el comportamiento del agente y la ejecución de herramientas.
- El instalador integrado ejecuta el script oficial de instalación de Hermes con
--skip-setup, luego completa la configuración del proveedor en la GUI. - Los proveedores de modelos locales no requieren clave API, pero el servidor compatible debe estar ejecutándose.
- Las rutas alternativas de registro npm son compatibles para entornos con acceso restringido a internet.
Contribuir
¡Las contribuciones son bienvenidas! Consulta la Guía de contribución para comenzar. Si no sabes por dónde empezar, mira los issues abiertos. ¿Encontraste un bug o tienes una solicitud de funcionalidad? Abre un issue.
Proyecto relacionado
Para el agente central, documentación y flujos de trabajo CLI, consulta el repositorio principal de Hermes Agent:
Traducción al español LATAM por Nanoboy.












