Tutorial 4: Actualizar y desinstalar Hermes
Tutorial 4: Updating & Uninstalling Hermes — easy-to-understand guide based on official docs
Tutorial 4: Actualizar y desinstalar Hermes
¡Bienvenido de nuevo a nuestra serie de tutoriales sobre Hermes Agent! En esta entrega, vamos a hablar de algo que todo usuario necesita saber tarde o temprano: cómo mantener Hermes actualizado y cómo despedirse cuando llegue el momento. No te preocupes — es mucho más sencillo de lo que parece.
Actualizar Hermes: a un solo comando de distancia
La forma más fácil de actualizar Hermes es con un solo comando:
hermes update
Así de simple. Este comando hace todo el trabajo pesado por ti. Descarga el código más reciente de la rama main, actualiza tus dependencias e incluso te pregunta sobre las nuevas opciones de configuración que se hayan añadido desde tu última actualización. Bastante práctico, ¿verdad?
¿Qué ocurre realmente durante una actualización?
Quizá te preguntes qué pasa entre bastidores. Aquí tienes el desglose:
-
Instantánea previa a la actualización — Antes de que cambie nada, Hermes guarda una instantánea ligera de tus archivos de estado importantes (datos de emparejamiento, trabajos cron,
config.yaml,.envy más). Los archivos de más de 1 GiB se omiten para que una base de datos enorme no ralentice el proceso. Esta instantánea se toma para cada perfil de tu instalación, y cada una se guarda en su propio directoriostate-snapshots/. -
Git pull — Hermes descarga el código más reciente de la rama
mainy actualiza los submódulos. -
Validación de sintaxis posterior al pull + reversión automática — Después de la descarga, Hermes comprueba los nueve archivos críticos que todo comando necesita al arrancar. Si alguno no se puede analizar (como un marcador de conflicto de fusión extraviado), Hermes revierte automáticamente a la versión anterior para que tu shell siga siendo arrancable. Solo tienes que volver a ejecutar
hermes updatecuando la corrección llegue al repositorio. -
Instalación de dependencias — Ejecuta
uv pip install -e ".[all]"para obtener las dependencias nuevas o modificadas. -
Migración de configuración — Detecta nuevas opciones de configuración y te pide que las establezcas.
-
Reinicio automático de la pasarela — Las pasarelas en ejecución se actualizan para que el nuevo código surta efecto de inmediato. Las pasarelas gestionadas por servicios (systemd en Linux, launchd en macOS) se reinician a través del gestor de servicios, mientras que las pasarelas manuales se relanzan automáticamente.
¿Te saltaste el aviso de configuración? ¡No hay problema!
Si omitiste el aviso de configuración durante una actualización, puedes ponerte al día más tarde:
hermes config check # ver qué falta
hermes config migrate # añadirlo de forma interactiva
Actualizar desde una rama diferente
Por defecto, hermes update sigue la rama origin/main. Pero, ¿y si quieres probar una candidata a versión final o una rama de funcionalidades? Usa la opción --branch:
hermes update --branch release-candidate
hermes update --check --branch experimental # solo para previsualizar cuánto te has quedado atrás
Si tu copia local está en una rama diferente, Hermes guarda automáticamente cualquier trabajo sin confirmar, cambia a la rama objetivo y hace el pull. Las ramas que no existen localmente se rastrean automáticamente desde origin/<nombre>. Si una rama no existe en ningún sitio, el comando falla limpiamente y restaura tus cambios guardados.
¿Y las ramas estacionadas?
Si tu copia está en una rama de funcionalidades, hermes update lo gestiona de forma inteligente:
- Rama totalmente fusionada — Hermes te dice que está totalmente fusionada y vuelve a
main. - Confirmaciones sin fusionar, árbol limpio — Hermes cambia igualmente a
mainpara que la actualización continúe (importante para llamadas no interactivas como la aplicación de escritorio o los trabajos cron). Tus confirmaciones no se tocan, y Hermes imprime un aviso bien visible con el nombre de la rama y cómo volver a ella.
Si deliberadamente mantienes parches personalizados en una rama, configúralo en config.yaml:
updates:
parked_branch_strategy: update_in_place
Esto fusiona origin/main dentro de tu rama en lugar de cambiarte a otra. Avance rápido cuando sea posible; si hay divergencia, crea una etiqueta de seguridad y se detiene limpiamente ante un conflicto.
Cambios locales durante actualizaciones no interactivas
Cuando ejecutas hermes update en una terminal, Hermes guarda los cambios sin confirmar, hace el pull y luego te pregunta si quiere restaurarlos. Pero cuando la actualización se ejecuta sin terminal (como desde la aplicación de escritorio), Hermes omite la actualización si el árbol está sucio — con un aviso bien visible que indica el nombre de la rama y cuánto se ha quedado atrás. ¡Nada de fingir que la actualización funcionó!
Desinstalar Hermes
Cuando llegue el momento de separar caminos, desinstalar es sencillo. Asegúrate de consultar la documentación específica de tu plataforma para conocer los pasos exactos de eliminación, pero en general querrás quitar el binario de Hermes y limpiar los directorios de configuración que haya creado.
Conclusión
Mantener Hermes actualizado es pan comido con hermes update. Las redes de seguridad integradas — instantáneas, reversión automática y gestión de ramas — significan que puedes actualizar con total confianza. Y si alguna vez necesitas apartarte, desinstalar es igual de simple.
¡Mantente atento al siguiente tutorial de nuestra serie!
📖 Documentación oficial
Este artículo se basa en la documentación oficial de Hermes Agent :Docs oficiales › getting-started/updating