tmux

Tmux (Terminal Multiplexer) permite que sessões de terminal sejam executadas independentemente da janela ou conexão SSH que as iniciou. Para usuários do Spck CLI isso significa que você pode manter sessões ativas entre reconexões, compartilhar uma sessão de agente em execução entre o desktop e o mobile, e executar a CLI persistentemente em um servidor remoto mesmo após a conexão SSH cair.

Instalação

brew install tmux

Ubuntu / Debian

sudo apt-get install tmux

Fedora / RHEL

sudo dnf install tmux

Arch Linux

sudo pacman -S tmux

O Tmux é executado nativamente no Linux. No Windows, use o Subsistema Windows para Linux (WSL) e depois instale o tmux dentro do WSL.

Passo 1 — Instalar o WSL (PowerShell como Administrador):

wsl --install

Passo 2 — Abrir um terminal WSL e instalar o tmux:

sudo apt-get install tmux

Caso de uso 1: Compartilhando sessões de agente entre desktop e mobile

O fluxo de trabalho mais poderoso do tmux com Spck CLI é iniciar um agente de codificação IA no seu desktop e retomá-lo perfeitamente pelo mobile — ou o contrário. Ambos veem exatamente o mesmo estado do terminal, incluindo o histórico de rolagem completo.

💡 Dica: Se você está usando um agente compatível com ACP (Claude Code, Codex, Gemini CLI), pode controlá-lo a partir do Chat de IA do Spck Editor sem precisar compartilhar um terminal. Veja Agentes de IA no Mobile (ACP) — tmux ainda é útil para agentes baseados em shell ou quando você quiser ver a saída bruta do agente ao vivo entre dispositivos.

Iniciar uma sessão no desktop

Crie uma sessão tmux com nome:

tmux new -s code

Inicie seu agente IA dentro da sessão:

claude

O agente é executado dentro do tmux. Desanexe a qualquer momento pressionando Ctrl+B e depois D — a sessão e tudo o que está sendo executado nela continua em segundo plano.

Conectar pelo mobile

  1. Abra o Spck Editor e conecte-se ao seu servidor CLI
  2. Abra um terminal no painel de terminal do Spck Editor
  3. Anexe-se à sessão tmux em execução:
tmux attach -t code

Você vê exatamente o mesmo terminal que no desktop — incluindo o agente em execução, sua saída e o histórico de rolagem completo. Vários clientes podem se conectar simultaneamente e ver a saída ao vivo.

Voltar para o desktop

Reconecte-se de qualquer terminal a qualquer momento:

tmux attach -t code

Caso de uso 2: CLI persistente em um servidor remoto

Se você executa o Spck CLI em um servidor remoto via SSH, a CLI para assim que a sessão SSH termina — seja porque você fecha o notebook, perde o Wi-Fi ou a conexão expira. O Tmux mantém o processo ativo no servidor independentemente do estado da sua conexão.

Configuração no servidor remoto

Conecte-se ao servidor via SSH e inicie uma sessão tmux com nome antes de iniciar a CLI:

ssh [email protected]
tmux new -s spck
spck

A CLI agora está sendo executada dentro do tmux no servidor. Feche a conexão SSH — ou perca-a completamente — e a CLI continua rodando.

Reconectar após desconexão

ssh [email protected]
tmux attach -t spck

A CLI retoma exatamente de onde parou. Os clientes mobile podem se reconectar normalmente pelo servidor relay.

Listar sessões em execução

tmux ls

Alternativa: Serviço Linux

Para uma configuração totalmente automatizada que inicia a CLI no boot sem nenhum gerenciamento manual do tmux, execute o Spck CLI como um serviço systemd.

Criar o arquivo de serviço

sudo nano /etc/systemd/system/spck-cli.service
[Unit]
Description=Spck CLI Server
After=network.target

[Service]
Type=simple
User=your-username
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/npx spck
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Substitua your-username e /path/to/your/project pelos seus valores reais. Se você instalou o spck globalmente (npm install -g spck), substitua ExecStart pela saída de which spck.

Habilitar e iniciar

sudo systemctl daemon-reload
sudo systemctl enable spck-cli
sudo systemctl start spck-cli

Verificar status e logs

# Ver status
sudo systemctl status spck-cli

# Acompanhar logs ao vivo
journalctl -u spck-cli -f

O serviço inicia automaticamente em cada reinicialização e reinicia sozinho se o processo travar.

Comandos essenciais do Tmux

Comando Ação
tmux new -s name Criar uma nova sessão com nome
tmux attach -t name Anexar a uma sessão existente
tmux ls Listar todas as sessões
tmux kill-session -t name Encerrar uma sessão
Ctrl+B, D Desanexar da sessão (continua em execução)
Ctrl+B, C Criar uma nova janela
Ctrl+B, N Mudar para a próxima janela
Ctrl+B, P Mudar para a janela anterior
Ctrl+B, [ Entrar no modo de rolagem (teclas de seta / PgUp / PgDn)
Q Sair do modo de rolagem