Outil Terminal
Exécuter des commandes shell sur le système hôte. Les commandes sont exécutées via sh -c.
Paramètres
| Key | Type | Default | Description |
|---|---|---|---|
command | string | — | La commande shell à exécuter |
action | string | "run" | Action : run, check, kill ou trust_all |
pid | integer | — | PID requis pour check/kill |
Logique d'Approbation
Une commande est approuvée automatiquement uniquement si les deux conditions sont remplies :
- La commande commence par un préfixe dans
terminal.allowed_prefixes - La commande ne contient aucun opérateur shell
Opérateurs Shell (nécessitent toujours une approbation)
text
; | && || $() ` (backticks)Préfixes Autorisés par Défaut
text
ls, cat, head, tail, echo, date, whoami, pwd, find, wc,
grep, tree, file, stat, uname, df, du, ps, which, env, printenvSortie
Retourne d'abord stdout, puis stderr (le cas échéant). La sortie est tronquée à terminal.max_output_chars (4000 caractères par défaut).
Commandes en Arrière-plan (Nouveau)
Si une commande dépasse le timeout initial, elle passe en arrière-plan et renvoie un PID.
- Utilise
action="check"+pidpour voir la progression/la sortie - Utilise
action="kill"+pidpour arrêter le processus - La sortie finale récente est conservée un moment pour les vérifications suivantes
Blocages de Sécurité Stricts (Nouveau)
Les motifs destructifs larges sont maintenant bloqués avant le flux d'approbation, y compris rm -rf et find ... -delete sur des chemins sensibles.
Configuration
config.toml
[terminal]
allowed_prefixes = ["ls", "cat", "head", "tail", "echo", "date"]
initial_timeout_secs = 30
max_output_chars = 4000
permission_mode = "default"Allow Always (Persistant)
Lorsque l'utilisateur clique sur "Allow Always" dans Telegram :
- Le premier mot de la commande est extrait comme préfixe
- Le préfixe est ajouté à la liste autorisée en mémoire
- Le préfixe est persisté dans SQLite (table
terminal_allowed_prefixes) - Au redémarrage, les préfixes persistés sont fusionnés avec les préfixes de configuration
Cela signifie que les approbations "Allow Always" survivent aux redémarrages du daemon sans modifier config.toml.
Sessions Non Fiables
Les sessions provenant de déclencheurs (email, etc.) sont marquées comme non fiables. Toutes les commandes dans les sessions non fiables nécessitent une approbation, quelle que soit la liste blanche.