EN·ES·DE·PT·FR
⌘K

Ferramenta Terminal

Execute comandos shell no sistema host. Os comandos são executados via sh -c.

Parâmetros

KeyTypeDefaultDescription
commandstringO comando shell a ser executado
actionstring"run"Ação: run, check, kill ou trust_all
pidintegerPID necessário para check/kill

Lógica de Aprovação

Um comando é auto-aprovado apenas se ambas as condições forem atendidas:

  1. O comando começa com um prefixo em terminal.allowed_prefixes
  2. O comando não contém nenhum operador de shell

Operadores de Shell (sempre requerem aprovação)

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

Prefixos Permitidos Padrão

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

Saída

Retorna stdout primeiro, depois stderr (se houver). A saída é truncada em terminal.max_output_chars (padrão 4000 caracteres).

Comandos em Segundo Plano (Novo)

Se um comando passar do timeout inicial, ele vai para segundo plano e retorna um PID.

  • Use action="check" + pid para ver progresso/saída
  • Use action="kill" + pid para interromper
  • A saída final recente fica armazenada por um período curto para consultas posteriores

Bloqueios de Segurança Rígidos (Novo)

Padrões destrutivos amplos agora são bloqueados antes do fluxo de aprovação, incluindo rm -rf e find ... -delete em caminhos sensíveis.

Configuração

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)

Quando o usuário clica em "Allow Always" no Telegram:

  1. A primeira palavra do comando é extraída como o prefixo
  2. O prefixo é adicionado à lista de permitidos na memória
  3. O prefixo é persistido no SQLite (tabela terminal_allowed_prefixes)
  4. Na reinicialização, os prefixos persistidos são mesclados com os prefixos da configuração

Isso significa que as aprovações "Allow Always" sobrevivem a reinicializações do daemon sem modificar o config.toml.

Sessões Não Confiáveis
Sessões originadas de gatilhos (e-mail, etc.) são marcadas como não confiáveis. Todos os comandos em sessões não confiáveis requerem aprovação, independentemente da lista de permissões.