Um terminal que trabalha por você: zsh, Oh My Zsh, Spaceship e Dracula
Bruno CarrilhosCTO · EficifyPublicado em 25 de junho de 2026 · 10 min de leitura
CompartilharSeguir
A maior parte do dia de quem desenvolve, opera ou faz deploy acontece dentro de um terminal. Um shell mal configurado cobra um pedágio invisível em cada comando: contexto que você não enxerga, sugestão que não aparece, erro de digitação que só estoura ao apertar Enter. Um terminal bem montado devolve esse tempo, e ainda torna o trabalho mais agradável.
Ferramenta de produtividade boa é aquela que some. Depois de uma semana com o terminal certo, você esquece que ele está ali, e é exatamente esse o objetivo. Este é o setup que usamos no dia a dia: rápido para digitar, fácil de ler e com sugestões que aparecem antes de você precisar pedir. Funciona em macOS e Linux (no Windows, via WSL).
A ordem importa, então siga os passos na sequência. Cada camada se apoia na anterior.
A base: o shell zsh
O zsh é o shell que vai segurar todo o resto. No macOS atual ele já é o padrão; em distribuições Linux costuma estar a um apt install zsh (ou equivalente) de distância. Confirme o que você tem:
zsh --version
Se aparecer algo como zsh 5.9, você está pronto. Defina o zsh como shell padrão para que cada novo terminal já abra nele:
chsh -s $(which zsh)
Feche e abra o terminal. A partir daqui, todo ajuste mora em um único arquivo: o ~/.zshrc.
A camada de conveniência: Oh My Zsh
O zsh puro é poderoso, mas configurá-lo do zero dá trabalho. O Oh My Zsh é um framework que organiza temas, plugins e padrões sensatos sobre o zsh, então você ganha uma base sólida sem editar dezenas de linhas na mão.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Regra de ouro: antes de colar qualquer comando que baixa e executa um script da internet, abra a URL e leia o que ele faz. Vale para este e para qualquer outro.
O instalador faz um backup do seu .zshrc e cria um novo. Daqui em diante, é nesse arquivo que ativamos tema e plugins.
A fonte: JetBrains Mono
Antes do tema, resolva a fonte. A nossa sugestão é a JetBrains Mono: uma fonte monoespaçada gratuita e de código aberto, desenhada especificamente para quem passa o dia lendo código. Ela tem letras minúsculas mais altas para descansar a vista em sessões longas, distingue bem caracteres parecidos (o 0 e o O, o 1 e o l) e traz mais de 140 ligaturas, que transformam combinações como != e => em símbolos únicos.
Tem um detalhe importante para o prompt: o Spaceship exibe ícones (glifos de "Nerd Font") para sinalizar branch do Git, status, e por aí vai. A JetBrains Mono baixada no site oficial não inclui esses glifos, então, para o terminal, use a variante já com ícones, a JetBrains Mono Nerd Font. Instale os arquivos no sistema e selecione a fonte nas preferências do terminal (e do editor). Esse passo é fácil de esquecer, mas é ele que evita que os ícones do prompt apareçam como quadradinhos.
A identidade visual: tema Dracula
O Dracula é um esquema de cores escuro de alto contraste, com uma paleta consistente que existe para praticamente tudo: terminal, editor, navegador. Aplicá-lo no seu emulador de terminal (Terminal do macOS, GNOME Terminal, iTerm2, Windows Terminal) deixa o ambiente coeso e descansa a vista em sessões longas.
A instalação varia por terminal, então siga as instruções do próprio projeto para o app que você usa. É um ajuste rápido e puramente estético, mas faz diferença em quem passa horas na tela.
O prompt inteligente: Spaceship
Aqui o terminal deixa de ser só bonito e passa a ser informativo. O Spaceship é um prompt que mostra contexto relevante automaticamente: o branch e o estado do Git, a versão da linguagem do projeto, o tempo de execução de comandos demorados, se o último comando falhou. Tudo sem você digitar nada.
Clone o tema dentro do diretório de customização do Oh My Zsh e crie o link simbólico:
Recarregue a sessão (source ~/.zshrc ou abra um terminal novo) e o prompt já muda. O Spaceship é altamente configurável: você decide o que aparece e em qual ordem, via variáveis SPACESHIP_* no ~/.zshrc. Um exemplo de personalização, definindo as seções do prompt e a ordem delas:
SPACESHIP_PROMPT_ORDER=(
user # seção de usuáriodir# diretório atual
host # nome do host
git # seção do Git (git_branch + git_status)
hg # seção do Mercurial (hg_branch + hg_status)
exec_time # tempo de execução do último comando
line_sep # quebra de linha
vi_mode # indicador do modo vijobs# indicador de jobs em background
exit_code # código de saída do último comando
char # caractere do prompt
)
SPACESHIP_USER_SHOW=always
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_CHAR_SYMBOL="❯"
SPACESHIP_CHAR_SUFFIX=" "
Cada item de SPACESHIP_PROMPT_ORDER é uma seção do prompt: comente ou remova as que você não usa. SPACESHIP_PROMPT_ADD_NEWLINE controla a linha em branco antes do prompt, e SPACESHIP_CHAR_SYMBOL define o símbolo do cursor (aqui, o clássico ❯). Um detalhe que vale ouro em máquinas com muitos projetos: desligar as seções de versão de linguagem que você não usa deixa o prompt visivelmente mais rápido, porque ele para de inspecionar o ambiente a cada comando.
A turbina: plugins com zinit
Os plugins são o que transformam o terminal em um copiloto. Para gerenciá-los com carregamento rápido, usamos o zinit:
zsh-autosuggestions: completa o comando em cinza claro com base no seu histórico. Você digita git pu e ele sugere o git push origin main que você já rodou ontem. Aceite com a seta para a direita.
fast-syntax-highlighting: colore o comando enquanto você digita. Comando válido fica verde, inexistente fica vermelho. Você descobre o erro de digitação antes de apertar Enter, não depois.
zsh-completions: amplia o autocompletar com Tab para um monte de ferramentas (gerenciadores de pacote, CLIs, frameworks), então parar de decorar flag de comando.
Recarregue a sessão e teste. A combinação de sugestão por histórico mais destaque de sintaxe é o que mais muda a sensação de usar o terminal.
Recursos do zsh que valem o aprendizado
O zsh não é só um bash mais bonito. Vários recursos nativos mudam o dia a dia assim que você os conhece, e a maior parte se ativa com setopt e aliases no ~/.zshrc:
autocd: digite o nome de um diretório, sem o cd, e ele entra.
Globbing recursivo:ls **/*.ts lista todos os arquivos .ts em qualquer subpasta, sem precisar de find.
Correção de comandos: o zsh sugere a forma certa quando você erra um comando ou um caminho.
Histórico compartilhado: comandos de uma aba ficam disponíveis nas outras na hora, não só ao fechar a sessão.
Expansão poderosa no Tab: navegue pelas opções de autocompletar com Tab e as setas, inclusive em flags e caminhos.
Um ponto de partida útil para o ~/.zshrc, juntando histórico saudável, conveniência e alguns atalhos:
# históricosetopt SHARE_HISTORY # compartilha o histórico entre sessõessetopt HIST_IGNORE_ALL_DUPS # não guarda comandos duplicadossetopt INC_APPEND_HISTORY # grava na hora, não só ao fechar
HISTSIZE=50000
SAVEHIST=50000
# navegação e conveniênciasetopt AUTO_CD # 'projetos' equivale a 'cd projetos'setopt CORRECT # sugere correção de comandos digitados errado# atalhos do dia a diaalias gs='git status -sb'alias gc='git commit'alias ll='ls -lah'
Nenhum desses ajustes é obrigatório, mas cada um remove uma fricção que, repetida dezenas de vezes por dia, cansa. Comece com poucos e vá incorporando o que fizer sentido para o seu fluxo.
O terminal integrado do editor
Não deixe metade da experiência para trás ao mudar de janela. No VS Code, aponte o terminal integrado para o zsh e use a mesma JetBrains Mono no editor e no terminal. Abra o settings.json (Cmd/Ctrl + Shift + P, "Preferences: Open User Settings (JSON)") e adicione:
Assim você tem, dentro do editor, o mesmo prompt, as mesmas cores e os mesmos atalhos do terminal. A coerência entre janela e editor reduz o atrito de ficar trocando de contexto. Em versões recentes do VS Code, o caminho recomendado para definir o shell migrou para os perfis (terminal.integrated.defaultProfile.osx), mas a chave acima continua funcionando e é a forma mais direta de começar.
Vale a pena?
Esse setup leva uns vinte minutos para montar e devolve esse tempo já na primeira tarde. Mas o ponto não é a estética: é o efeito composto de pequenas frições que somem. Ver o branch sem rodar git status, recuperar um comando longo com uma tecla, pegar o typo na cor errada antes de executar. Cada uma é trivial; juntas, mudam o ritmo de quem vive no terminal.
Ferramenta afiada é parte de cultura de engenharia, e cultura de engenharia é o que faz um time entregar com consistência. É nesse tipo de detalhe, do ambiente local ao pipeline de produção, que a gente gosta de mexer. Se o seu time convive com fricções que viraram rotina, conte seu cenário e vamos olhar juntos onde dá para destravar.
Executivo de tecnologia, cofundador da Eficify, com mais de 20 anos de experiência na criação, evolução e sustentação de soluções digitais. Atua nas áreas de desenvolvimento de software, dados, inteligência artificial, cloud computing, cibersegurança e operações de missão crítica. É bacharel em Ciência da Computação, com formação em Ciência de Dados e Inteligência Artificial e pós-graduação em Segurança da Informação.