O que tmux faz?
Controle sessões/ painéis do tmux para CLIs interativos: listar, capturar saída, enviar teclas, colar texto, monitorar prompts.
Ferramentas
tmux_list_sessions
Lista todas as sessões do tmux.
{
"sessions": [
{
"name": "my_session",
"windows": [
{
"index": 0,
"panes": [
{
"index": 0,
"current_command": "bash"
}
]
}
]
}
]
}
tmux_capture_output
Captura a saída do terminal de um painel específico. Se session for fornecido, usa painel 0 da janela 0. Se session e window forem fornecidos, usa painel 0. Se session, window e pane forem fornecidos, usa o painel especificado.
tmux_send_keys
Envia teclas para um painel. Se session for fornecido, envia para painel 0 da janela 0. Se session e window forem fornecidos, envia para painel 0. Se session, window e pane forem fornecidos, envia para o painel especificado. Use C-c para Ctrl+C, Enter para Enter, etc.
tmux_paste_buffer
Cola o conteúdo atual da área de transferência do tmux em um painel. Se session for fornecido, cola em painel 0 da janela 0. Se session e window forem fornecidos, cola em painel 0. Se session, window e pane forem fornecidos, cola no painel especificado.
tmux_wait_for_prompt
Aguarda até que a saída do painel contenha um prompt. Se session for fornecido, monitora painel 0 da janela 0. Se session e window forem fornecidos, monitora painel 0. Se session, window e pane forem fornecidos, monitora o painel especificado.
Permissões
Esta habilidade requer as seguintes permissões:
- read stdio: Necessário para capturar saída do tmux.
- write stdio: Necessário para enviar teclas ao tmux.
- execute: Necessário para executar comandos do tmux.
Exemplo de Uso
# Exemplo: Iniciar um servidor em um novo painel do tmux e capturar sua saída
import subprocess
# Criar sessão
subprocess.run(["tmux", "new-session", "-d", "-s", "myserver"])
# Iniciar servidor
subprocess.run(["tmux", "send-keys", "-t", "myserver", "python3 -m http.server 8000", "Enter"])
# Esperar um pouco
time.sleep(2)
# Capturar saída
result = subprocess.run(["tmux", "capture-pane", "-t", "myserver", "-p"], capture_output=True, text=True)
print(result.stdout)
Notas sobre o tmux
- O tmux deve estar instalado no sistema.
- Certifique-se de que as variáveis de ambiente
TMUXeTERMestejam configuradas corretamente (se aplicável). - Para mais informações, consulte a documentação do tmux (
man tmux).