2026-03-09

Se você já perdeu o que estava fazendo no terminal porque fechou uma aba sem querer, ou ficou alternando freneticamente entre várias janelas enquanto rodava um servidor, olhava logs e editava código ao mesmo tempo, o tmux vai mudar sua vida.
O tmux é um multiplexador de terminal. Em termos simples: ele permite criar, dividir e gerenciar múltiplas sessões de terminal dentro de uma única janela. Mas o verdadeiro superpoder é que essas sessões persistem mesmo quando você fecha o terminal ou perde a conexão SSH. Tudo continua rodando em segundo plano, esperando você voltar.
Antes de sair instalando, vale entender os problemas que o tmux resolve:
Se você usa o terminal com frequência, o tmux é daquelas ferramentas que depois de aprender, você se pergunta como vivia sem.
O tmux funciona com três camadas principais:
┌─────────────────────────────────────────────┐
│ Sessão (session) │
│ ┌───────────────────────────────────────┐ │
│ │ Janela (window) 1 │ │
│ │ ┌──────────────┐ ┌────────────────┐ │ │
│ │ │ Painel 1 │ │ Painel 2 │ │ │
│ │ │ (pane) │ │ (pane) │ │ │
│ │ │ │ │ │ │ │
│ │ └──────────────┘ └────────────────┘ │ │
│ └───────────────────────────────────────┘ │
│ ┌───────────────────────────────────────┐ │
│ │ Janela (window) 2 │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
Pense assim: sessões são seus projetos, janelas são as telas do projeto e painéis são as divisões dentro de cada tela.
Se você usa Homebrew (e deveria), a instalação é direta:
brew install tmux
sudo apt update && sudo apt install tmux -y
sudo dnf install tmux
Se você configurou o WSL seguindo o nosso guia anterior, basta abrir o terminal Ubuntu e rodar:
sudo apt update && sudo apt install tmux -y
tmux -V
Deve aparecer algo como tmux 3.5a.
Para iniciar o tmux, simplesmente rode:
tmux
Pronto. Você está dentro de uma sessão tmux. Perceba a barra verde (ou colorida) na parte inferior da tela: essa é a barra de status do tmux, mostrando informações como o nome da sessão e as janelas abertas.
Mas o ideal é sempre criar sessões nomeadas, para facilitar a organização:
tmux new -s meu-projeto
Isso cria uma sessão chamada meu-projeto. Muito mais fácil de identificar quando você tiver várias sessões rodando.
Toda interação com o tmux começa com um prefixo. Por padrão, é Ctrl + b. Você pressiona o prefixo, solta, e depois pressiona a tecla do comando.
Por exemplo, para dividir a tela verticalmente:
Ctrl + b%No começo parece estranho, mas rapidamente vira instinto.
Aqui está a referência rápida dos comandos que você vai usar no dia a dia. Todos começam com o prefixo Ctrl + b:
| Atalho | Ação |
|---|---|
tmux new -s nome | Cria uma nova sessão nomeada |
tmux ls | Lista todas as sessões ativas |
tmux attach -t nome | Reconecta a uma sessão existente |
tmux kill-session -t nome | Encerra uma sessão |
Ctrl + b → d | Desconecta da sessão (ela continua rodando) |
Ctrl + b → s | Lista sessões e permite trocar entre elas |
Ctrl + b → $ | Renomeia a sessão atual |
| Atalho | Ação |
|---|---|
Ctrl + b → c | Cria uma nova janela |
Ctrl + b → n | Vai para a próxima janela |
Ctrl + b → p | Vai para a janela anterior |
Ctrl + b → 0-9 | Vai para a janela pelo número |
Ctrl + b → , | Renomeia a janela atual |
Ctrl + b → & | Fecha a janela atual |
| Atalho | Ação |
|---|---|
Ctrl + b → % | Divide verticalmente (lado a lado) |
Ctrl + b → " | Divide horizontalmente (um em cima do outro) |
Ctrl + b → seta | Move o foco entre painéis |
Ctrl + b → z | Zoom: maximiza/restaura o painel atual |
Ctrl + b → x | Fecha o painel atual |
Ctrl + b → { | Move o painel para a esquerda |
Ctrl + b → } | Move o painel para a direita |
Ctrl + b → espaço | Alterna entre layouts de painéis |
| Atalho | Ação |
|---|---|
Ctrl + b → [ | Entra no modo de scroll/cópia (saia com q) |
Ctrl + b → t | Mostra um relógio (sim, é inútil, mas divertido) |
Ctrl + b → ? | Lista todos os atalhos disponíveis |
Vamos montar um cenário real. Digamos que você está trabalhando num projeto web e quer:
# Cria uma sessão para o projeto
tmux new -s webapp
# Agora você está no primeiro painel; use-o para editar código
# Divide verticalmente (cria painel à direita)
# Ctrl + b, %
# No painel da direita, rode o servidor
npm run dev
# Divide o painel da direita horizontalmente
# Ctrl + b, "
# No painel de baixo à direita, use para git
git status
O resultado visual fica assim:
┌──────────────────────┬──────────────────┐
│ │ npm run dev │
│ editor / código │ (servidor) │
│ ├──────────────────┤
│ │ git status │
│ │ (git) │
└──────────────────────┴──────────────────┘
Para navegar entre os painéis, use Ctrl + b seguido das setas do teclado. Para maximizar temporariamente um painel (zoom), use Ctrl + b → z. Pressione novamente para restaurar.
Essa é a funcionalidade que faz o tmux valer a pena. Imagine que você está rodando um build demorado ou monitorando logs:
# Desconecta da sessão (tudo continua rodando)
# Ctrl + b, d
# Vai embora, fecha o terminal, dorme...
# No dia seguinte, lista as sessões
tmux ls
# Reconecta
tmux attach -t webapp
Tudo está exatamente como você deixou. Servidor rodando, logs fluindo, código aberto. Isso é especialmente útil quando você trabalha com servidores remotos via SSH.
O arquivo de configuração fica em ~/.tmux.conf. Se ele não existir, basta criar. Aqui estão algumas configurações que vão melhorar bastante sua experiência:
# Muda o prefixo de Ctrl+b para Ctrl+a (mais confortável)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Ativa o mouse (scroll, clicar em painéis, redimensionar)
set -g mouse on
# Divide painéis com | e - (mais intuitivo que % e ")
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# Começa a contar janelas e painéis do 1 (em vez de 0)
set -g base-index 1
setw -g pane-base-index 1
# Renumera janelas quando uma é fechada
set -g renumber-windows on
# Aumenta o histórico de scroll
set -g history-limit 10000
# Reduz o delay do escape (importante para Vim/Neovim)
set -sg escape-time 10
# Recarrega a config com prefixo + r
bind r source-file ~/.tmux.conf \; display "Config recarregada!"
Depois de criar ou editar o arquivo, recarregue a configuração:
tmux source-file ~/.tmux.conf
Ou, se você adicionou o atalho acima, basta pressionar Ctrl + a → r.
O tmux padrão é funcional, mas não é exatamente bonito. O Catppuccin e o Dracula são dois temas populares que transformam a aparência.
Uma opção ainda mais prática é o TPM (Tmux Plugin Manager), que facilita a instalação de plugins e temas:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Adicione ao final do seu ~/.tmux.conf:
# Lista de plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'
# Inicializa o TPM (manter esta linha no final do arquivo)
run '~/.tmux/plugins/tpm/tpm'
Dentro do tmux, pressione Ctrl + a → I (letra I maiúscula) para instalar os plugins.
Se você usa o Claude Code ou Codex CLI, o tmux é o parceiro perfeito. Um layout produtivo:
┌──────────────────────┬──────────────────┐
│ │ │
│ Claude Code / │ servidor / │
│ Codex CLI │ build │
│ │ │
│ ├──────────────────┤
│ │ │
│ │ git / testes │
│ │ │
└──────────────────────┴──────────────────┘
O agente de IA trabalha no painel da esquerda enquanto você monitora o servidor e roda testes nos painéis da direita. Sem precisar alternar entre abas.
Cansou de montar o layout manualmente toda vez? Crie um script. Salve como ~/dev-tmux.sh:
#!/bin/bash
SESSION="dev"
# Se a sessão já existir, apenas reconecta
tmux has-session -t $SESSION 2>/dev/null
if [ $? -eq 0 ]; then
tmux attach -t $SESSION
exit 0
fi
# Cria a sessão com a primeira janela
tmux new-session -d -s $SESSION -n "code"
# Divide: painel da direita para servidor
tmux split-window -h -t $SESSION:1
# Divide o painel da direita: git embaixo
tmux split-window -v -t $SESSION:1.2
# Foco no painel principal (esquerda)
tmux select-pane -t $SESSION:1.1
# Conecta à sessão
tmux attach -t $SESSION
Torne executável e rode:
chmod +x ~/dev-tmux.sh
~/dev-tmux.sh
Toda vez que rodar esse script, ele vai criar (ou reconectar a) uma sessão com seu layout pronto.
| Comando | O que faz |
|---|---|
tmux new -s nome | Cria sessão nomeada |
tmux ls | Lista sessões |
tmux attach -t nome | Reconecta a sessão |
tmux kill-session -t nome | Encerra sessão |
Ctrl+b d | Desconecta da sessão |
Ctrl+b c | Nova janela |
Ctrl+b % | Divide verticalmente |
Ctrl+b " | Divide horizontalmente |
Ctrl+b seta | Navega entre painéis |
Ctrl+b z | Zoom no painel |
Ctrl+b [ | Modo scroll |
Ctrl+b ? | Ajuda |
Vale mencionar que existem outras ferramentas que resolvem problemas parecidos:
Agora que você tem o tmux no seu arsenal:
~/.tmux.conf com as opções que fazem sentido para vocêO tmux é uma daquelas ferramentas que recompensa o investimento. Pode parecer verboso no início, mas depois de uma semana usando, você não vai querer voltar.
Curtiu? Me manda um salve lá no twitter @lauralesteves