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

# Consulta única: envía una pregunta y sale después de obtener la respuesta
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

# Iniciar el modo TUI
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

ModoComandoForma de interacciónEscenario adecuado
Sesión interactivahermes chatConversación de múltiples turnos; envía mensajes y espera respuestas.Desarrollo diario, tareas complejas.
Consulta únicahermes chat -q "..."Pregunta única; sale después de la respuesta.Scripts, consultas rápidas.
TUIhermes --tuiOperació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

# Continuar la sesión más reciente (reanudar después de una interrupción)
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

# Usar un comando de barra diagonal en una sesión interactiva
/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

# Establecer el título de la sesión (para reanudarla más tarde por título)
/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

# Comprimir manualmente el contexto de conversación
/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

ComandoFunción
/new o /resetIniciar nueva sesión
/title <nombre>Establecer el título de la sesión actual
/statusMostrar ID de sesión, título, uso de tokens
/usageMostrar detalles del consumo de tokens de esta sesión
/compressComprimir manualmente el contexto de conversación
/resume [título]Reanudar una sesión previamente nombrada

Control de tareas

ComandoFunción
/stopInterrumpir la tarea que el Agent está ejecutando actualmente
/retryHacer que el Agent regenere la última respuesta
/undoDeshacer 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

ComandoFunción
/modelVer el modelo en uso actualmente
/model <nombre>Cambiar al modelo especificado
/model listListar todos los modelos disponibles
/reload-mcpRecargar la configuración del servidor MCP

Seguridad y aprobaciones

ComandoFunción
/yoloActivar el modo YOLO, los comandos peligrosos en la sesión actual se aprueban automáticamente
/yoloEscríbelo de nuevo para desactivar el modo YOLO
/approveAprobar la operación actual pendiente de aprobación
/denyRechazar la operación actual pendiente de aprobación

Memoria y habilidades

ComandoFunción
/memoryVer el contenido actual de la memoria
/memory pendingVer las escrituras de memoria pendientes de aprobación
/memory approve allAprobar todas las escrituras de memoria pendientes
/skillsListar 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

ComandoFunció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 listVer la lista de tareas programadas
/cron pause/resume <name>Pausar o reanudar tareas programadas
/suggestionsVer las sugerencias de automatización del Agente
/voice on/off/ttsControlar el modo de voz
/updateActualizar Hermes a la última versión
/helpMostrar 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:

AtajoFunción
Ctrl+CInterrumpir la respuesta actual del Agente o la ejecución de herramientas
Ctrl+DSalir de la sesión interactiva
Ctrl+LLimpiar pantalla
Ctrl+B (modo de voz)Mantén presionado para grabar, suelta para enviar
Flecha arribaRecuperar la entrada anterior
TabAutocompletar 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

# Método 1: usar \n para indicar un salto de línea
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

# Enviar el contenido del archivo como contexto al Agente
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

# Usa directamente los alias de Profile, simple y natural
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

# Ruta del archivo: ~/.hermes/config.yaml
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

# Escribe /yolo por primera vez: activa el modo YOLO
# 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

#!/bin/bash
# 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

#!/bin/bash
# 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.

Otras extensiones