ENΒ·ESΒ·DEΒ·PTΒ·FR
⌘K

Herramienta Terminal

Ejecuta comandos de shell en el sistema host. Los comandos se ejecutan via sh -c.

Parametros

KeyTypeDefaultDescription
commandstringβ€”El comando de shell a ejecutar
actionstring"run"Accion: run, check, kill o trust_all
pidintegerβ€”PID requerido para acciones check/kill

Logica de Aprobacion

Un comando se auto-aprueba solo si se cumplen ambas condiciones:

  1. El comando comienza con un prefijo en terminal.allowed_prefixes
  2. El comando no contiene ningun operador de shell

Operadores de Shell (siempre requieren aprobacion)

text
; | && || $() ` (backticks)

Prefijos Permitidos por Defecto

text
ls, cat, head, tail, echo, date, whoami, pwd, find, wc,
grep, tree, file, stat, uname, df, du, ps, which, env, printenv

Salida

Devuelve primero stdout, luego stderr (si existe). La salida se trunca a terminal.max_output_chars (por defecto 4000 caracteres).

Comandos en Segundo Plano (Nuevo)

Si un comando supera el tiempo inicial, se mueve a segundo plano y devuelve un PID.

  • Usa action="check" + pid para ver progreso/salida
  • Usa action="kill" + pid para detenerlo
  • La salida final reciente se conserva por un tiempo para revisarla despues

Bloqueos de Seguridad Duros (Nuevo)

Patrones destructivos amplios ahora se bloquean antes del flujo de aprobacion, incluyendo rm -rf y find ... -delete en rutas sensibles.

Configuracion

config.toml
[terminal]
allowed_prefixes = ["ls", "cat", "head", "tail", "echo", "date"]
initial_timeout_secs = 30
max_output_chars = 4000
permission_mode = "default"

Allow Always (Persistente)

Cuando el usuario hace clic en "Allow Always" en Telegram:

  1. Se extrae la primera palabra del comando como prefijo
  2. El prefijo se agrega a la lista de permitidos en memoria
  3. El prefijo se persiste en SQLite (tabla terminal_allowed_prefixes)
  4. Al reiniciar, los prefijos persistidos se fusionan con los prefijos de configuracion

Esto significa que las aprobaciones de "Allow Always" sobreviven a los reinicios del daemon sin modificar config.toml.

Sesiones No Confiables
Las sesiones provenientes de disparadores (email, etc.) se marcan como no confiables. Todos los comandos en sesiones no confiables requieren aprobacion independientemente de la lista blanca.