Línea de comandos de Hermes Agent CLI
La CLI (interfaz de línea de comandos) es la forma de interacción más nativa de Hermes Agent y el punto de entrada más completo en cuanto a funciones.
Este capítulo presenta sistemáticamente los tres modos de ejecución de la CLI, la gestión de sesiones, los comandos de barra diagonal, la interfaz TUI, los atajos y las técnicas de uso mediante scripts.
Tres modos de ejecución
La CLI de Hermes ofrece tres modos de ejecución, desde preguntas simples hasta sesiones interactivas y operación solo con teclado, cubriendo diferentes escenarios de uso.
Modo 1: Sesión interactiva (hermes chat)
Este es el modo más utilizado: inicia una sesión de conversación continua de múltiples turnos.
Iniciar una sesión interactiva (usando el Profile predeterminado):
hermes chat
Después de iniciar, se entra en la interfaz de conversación, el indicador cambia a, escribe un mensaje y presiona Enter para enviarlo, y el Agent comienza a responder:

Una vez en la sesión interactiva, puedes enviar múltiples mensajes consecutivos, y el Agent recordará el contexto de la conversación anterior.
Esta es la forma más natural de uso en el desarrollo diario, como chatear con un colega en Slack.
Modo 2: Consulta única (-q / --query)
No es necesario entrar en una sesión interactiva; pasas la pregunta directamente y obtienes una respuesta. Adecuado para scripts y consultas rápidas.
Ejemplo
hermes chat -q "Escribe una función de ordenamiento rápido en Python"
# Usar junto con Profile
coder chat -q "Revisa el estilo de código de src/main.py"
# Usar en un script de Shell
hermes chat -q "Extrae las líneas de error de los siguientes registros" < error.log
-qCaracterísticas clave del modo:
- No interactivo; el Agent sale inmediatamente después de completar la respuesta.
- Devuelve códigos de salida estándar, permitiendo determinar éxito o fracaso en scripts.
- Admite tuberías y redirección.
Modo 3: Interfaz de terminal TUI (hermes --tui)
TUI (Interfaz de Usuario de Terminal) ofrece una interfaz de terminal a pantalla completa operada solo con teclado.
Ejemplo
hermes --tui
# En modo TUI:
# Flechas arriba/abajo: navegar por el historial de conversación
# Ctrl+N: nueva sesión
# Ctrl+S: alternar barra lateral (archivos, historial de herramientas, etc.)
# Ctrl+C: interrumpir la operación actual del Agent
# Empieza con /: introduce comandos de barra diagonal
Ventajas únicas del modo TUI:
- La barra lateral permite ver simultáneamente la conversación, los cambios de archivos y el historial de llamadas a herramientas.
- Operación solo con teclado, sin depender del ratón.
- Adecuado para escenarios de trabajo profundo prolongado.
Comparación de los tres modos
| Modo | Comando | Forma de interacción | Escenario adecuado |
|---|---|---|---|
| Sesión interactiva | hermes chat | Conversación de múltiples turnos; envía mensajes y espera respuestas. | Desarrollo diario, tareas complejas. |
| Consulta única | hermes chat -q "..." | Pregunta única; sale después de la respuesta. | Scripts, consultas rápidas. |
| TUI | hermes --tui | Operación a pantalla completa con teclado, múltiples paneles. | Trabajo profundo, operaciones intensivas con archivos. |
Gestión de sesiones
Una sesión es la unidad básica de conversación en la CLI. Cada sesión tiene su propio contexto, recuento de tokens e ID de sesión.
Continuar y reanudar sesiones
Ejemplo
hermes --continue
hermes chat --continue
# Reanudar por título de sesión (requiere haber usado /title para nombrarla)
hermes -c "Refactoriza el módulo de autenticación"
# Reanudar exactamente por ID de sesión
hermes -r 20260305_091234_abc12345
Al reanudar una sesión, el Agent conserva todo el contexto de la conversación, incluyendo el historial de llamadas a herramientas y el razonamiento del LLM.
Iniciar nueva sesión
Ejemplo
/new
# o
/reset
# El efecto es el mismo: termina la sesión actual e inicia una nueva,
# El Agent recarga el prompt del sistema y la memoria persistente.
La nueva sesión no conserva el contexto de conversación anterior, pero la memoria persistente (MEMORY.md y USER.md) sigue visible.
Gestión de títulos de sesión
Hermes genera automáticamente un título de sesión después del primer turno de conversación; también puedes nombrarla manualmente:
Ejemplo
/title Discusión del plan de migración de base de datos
# Ver información de la sesión actual (ID, título, uso de tokens, etc.)
/status
Compresión de contexto
Cuando el historial de conversación es demasiado largo y se acerca al límite de la ventana de contexto, se puede activar la compresión manualmente:
Ejemplo
/compress
# Después de la compresión, el contenido antiguo se resume para liberar espacio,
# y se pueden seguir enviando nuevos mensajes.
# La sesión comprimida crea un linaje automático (Auto-Lineage):
# "Migración de base de datos" → "Migración de base de datos #2"
La compresión automática la activa Hermes cuando el contexto se acerca al límite. `/compress` solo te permite activarla manualmente antes. Ambos tienen el mismo efecto.
Comandos de barra diagonal comunes
En la sesión interactiva y en el modo TUI, la entrada que comienza con/se reconoce como un comando de barra diagonal.
A continuación se presentan los comandos más utilizados en la CLI, agrupados por función.
Control de sesión
| Comando | Función |
|---|---|
| /new o /reset | Iniciar nueva sesión |
| /title <nombre> | Establecer el título de la sesión actual |
| /status | Mostrar ID de sesión, título, uso de tokens |
| /usage | Mostrar detalles del consumo de tokens de esta sesión |
| /compress | Comprimir manualmente el contexto de conversación |
| /resume [título] | Reanudar una sesión previamente nombrada |
Control de tareas
| Comando | Función |
|---|---|
| /stop | Interrumpir la tarea que el Agent está ejecutando actualmente |
| /retry | Hacer que el Agent regenere la última respuesta |
| /undo | Deshacer el último turno de conversación (eliminar el último par de pregunta-respuesta) |
| /background <tarea> | Ejecutar una tarea de forma asíncrona en una sesión en segundo plano |
`/undo` es un deshacer a nivel de conversación: elimina el último turno de pregunta-respuesta del historial de la sesión, y el contexto del Agent vuelve al estado anterior a la última respuesta. Esto difiere de `/retry` (que conserva la pregunta-respuesta original y hace que el Agent responda de nuevo).
Modelo y configuración
| Comando | Función |
|---|---|
| /model | Ver el modelo en uso actualmente |
| /model <nombre> | Cambiar al modelo especificado |
| /model list | Listar todos los modelos disponibles |
| /reload-mcp | Recargar la configuración del servidor MCP |
Seguridad y aprobaciones
| Comando | Función |
|---|---|
| /yolo | Activar el modo YOLO, los comandos peligrosos en la sesión actual se aprueban automáticamente |
| /yolo | Escríbelo de nuevo para desactivar el modo YOLO |
| /approve | Aprobar la operación actual pendiente de aprobación |
| /deny | Rechazar la operación actual pendiente de aprobación |
Memoria y habilidades
| Comando | Función |
|---|---|
| /memory | Ver el contenido actual de la memoria |
| /memory pending | Ver las escrituras de memoria pendientes de aprobación |
| /memory approve all | Aprobar todas las escrituras de memoria pendientes |
| /skills | Listar todas las habilidades instaladas |
| /skills search <palabra clave> | Buscar habilidades locales y del Hub |
| /skills install <id> | Instalar habilidades |
| /<nombre-de-habilidad> [tarea] | Invocar la habilidad especificada para ejecutar una tarea |
| /learn <fuente> | Generar una nueva habilidad a partir de un documento o descripción |
Otros
| Comando | Función |
|---|---|
| /checkpoint <etiqueta> | Crear un punto de control del sistema de archivos |
| /rollback [número] | Listar o restaurar a un punto de control especificado |
| /cron list | Ver la lista de tareas programadas |
| /cron pause/resume <name> | Pausar o reanudar tareas programadas |
| /suggestions | Ver las sugerencias de automatización del Agente |
| /voice on/off/tts | Controlar el modo de voz |
| /update | Actualizar Hermes a la última versión |
| /help | Mostrar todos los comandos disponibles |
Atajos y consejos
Atajos de teclado
En una sesión interactiva, los siguientes atajos pueden mejorar la eficiencia de operación:
| Atajo | Función |
|---|---|
| Ctrl+C | Interrumpir la respuesta actual del Agente o la ejecución de herramientas |
| Ctrl+D | Salir de la sesión interactiva |
| Ctrl+L | Limpiar pantalla |
| Ctrl+B (modo de voz) | Mantén presionado para grabar, suelta para enviar |
| Flecha arriba | Recuperar la entrada anterior |
| Tab | Autocompletar rutas de archivo y nombres de habilidades |
Entrada de múltiples líneas
Cuando necesites enviar mensajes que contengan saltos de línea (como bloques de código):
Ejemplo
hermes chat -q "Revisa el siguiente código:\n\ndef hello():\n print('world')"
# Método 2: usar Heredoc (sintaxis de Shell)
hermes chat -q "$(cat << 'EOF'
Analiza este stack de errores:
Traceback (most recent call last):
File "app.py", line 42, in <module>
main()
File "app.py", line 38, in main
result = process(data)
TypeError: 'NoneType' object is not iterable
Proporciona un plan de corrección.
EOF
)"
Tuberías y redirección
-qEl modo admite de forma nativa las tuberías estándar de Unix:
Ejemplo
cat error.log | hermes chat -q "Analiza estos registros de errores y encuentra la causa raíz"
# Guardar la respuesta del Agente en un archivo
hermes chat -q "Genera el README.md del proyecto" > README.md
# Usar al Agente como filtro en una tubería
cat data.csv | hermes chat -q "Extrae todas las direcciones de correo, una por línea" > emails.txt
Combinar con alias de comandos de Profile
Cada Profile genera automáticamente alias de comandos exclusivos, sin necesidad de-pindicadores:
Ejemplo
coder chat -q "Refactoriza esta función"
researcher chat -q "Busca los últimos artículos sobre Transformer"
admin gateway status
# Equivale a
hermes -p coder chat -q "Refactoriza esta función"
hermes -p researcher chat -q "Busca los últimos artículos sobre Transformer"
hermes -p admin gateway status
Control de aprobación y seguridad
Modo de aprobación
Al ejecutar comandos peligrosos en la CLI, Hermes muestra un aviso de aprobación:
Agent 请求执行: rm -rf /tmp/build/* 原因: 清理构建缓存 [approve/deny]: _
Puedes decidir en tiempo real aprobar o rechazar durante la sesión.
El modo de aprobación se configura en config.yaml:
Ejemplo
approvals:
mode: manual # manual (predeterminado, cada comando peligroso requiere aprobación)
# smart (juicio inteligente, aprueba automáticamente los de bajo riesgo)
# off (desactiva la aprobación, no recomendado)
timeout: 60 # Segundos de espera para aprobación, rechazo automático al superar el tiempo
Modo YOLO
Cuando estés seguro de que lo que el Agente va a hacer es seguro (por ejemplo, operaciones en proyectos que conoces bien), puedes omitir temporalmente la aprobación:
Ejemplo
# Todos los comandos en la sesión actual se aprueban automáticamente
/yolo
# El Agente comienza a ejecutar operaciones, ya no aparecen avisos de aprobación...
# Escribe /yolo de nuevo: desactiva el modo YOLO y restaura la aprobación
/yolo
El modo YOLO solo tiene efecto en la sesión actual; las nuevas sesiones restauran automáticamente el modo de aprobación configurado en config.yaml. Esto garantiza que una relajación temporal no se convierta en una vulnerabilidad permanente.
Uso mediante scripts
Usar Hermes en scripts de Shell
-qEl código de salida y la salida estándar del modo permiten integrar Hermes sin problemas en scripts de Shell:
Ejemplo
# Ruta del archivo: scripts/auto-review.sh
# Script de revisión automática de código: revisa uno por uno los archivos modificados en Git
# Obtener todos los archivos Python modificados
changed_files=$(git diff --name-only HEAD~1 | grep '\.py$')
for file in $changed_files; do
echo "=== Revisión:$file ==="
# Usar Hermes para revisar el código, el resultado se envía directamente a la terminal
hermes chat -q "Revisa el estilo de código y los problemas potenciales de los siguientes archivos Python:
$(cat "$file")
Por favor, presenta los problemas y sugerencias encontrados en forma de lista." 2>/dev/null
# Verificar el código de salida
if [ $? -ne 0 ]; then
echo "[Advertencia]$fileSe produjo un error durante la revisión."
fi
echo ""
done
Combinar con Git Hooks
El siguiente es un ejemplo de hook de pre-commit de Git: permite que el Agente revise el código antes de confirmar:
Ejemplo
# Ruta del archivo: .git/hooks/pre-commit
# Hook de pre-commit de Git: el Agente revisa el código antes de la confirmación
# Obtener la lista de archivos modificados en el área de preparación
staged_files=$(git diff --cached --name-only)
if [ -z "$staged_files" ]; then
exit 0
fi
echo "El Agente Hermes está revisando los cambios de código..."
# Hacer que el Agente revise los cambios preparados
result=$(hermes chat -q "Revisa los siguientes cambios de código en el área de preparación de Git,\
solo informa problemas graves (vulnerabilidades de seguridad, errores lógicos, cambios disruptivos).\
Si no hay problemas graves, responde PASS.\
\
Archivos modificados:\n$staged_files\n\
Diff detallado:\n$(git diff --cached)" 2>/dev/null)
echo "$result"
# Si el Agente encuentra problemas graves, bloquea la confirmación
if echo "$result" | grep -q "PASS"; then
echo "Revisión aprobada"
exit 0
else
echo ""
echo "El Agente ha encontrado problemas que requieren atención."
echo "Si confirmas que está correcto, usa git commit --no-verify para omitir esta verificación."
exit 1
fi
Ejecución programada
Combinado con el cron del sistema o el sistema Cron integrado de Hermes, puedes ejecutar tareas CLI periódicamente; pero se recomienda usar el Cron integrado de Hermes (a través dehermes cron create), porque puede entregar los resultados directamente a la plataforma de mensajería.