Se você quer que Claude Code no macOS seja realmente usável no desenvolvimento do dia a dia, a configuração que importa é: oh-my-zsh para contexto do terminal, /terminal-setup para tratamento de entrada, e /statusline com um script customizado para visibilidade em tempo real do custo, modelo e limites de taxa. Todo o resto é opcional. Esta configuração funciona igual no Linux e dentro do WSL no Windows, com apenas diferenças mínimas nos caminhos de instalação.
Depois de configurar isso em vários projetos de WordPress de produção e fluxos de trabalho de desenvolvedor, a diferença é imediata: você para de adivinhar quanto está gastando, qual modelo está usando e quando vai atingir os limites. Este é um aumento claro de produtividade, com ganhos reais e economia real. E toda a configuração leva menos de 10 minutos.
Na primeira vez que rodei Claude Code, meu terminal parecia exatamente como cada screenshot que eu havia visto de pessoas reclamando: um prompt em branco, sem contexto, sem ideia de qual modelo estava rodando ou quanto tempo de sessão havia. Apenas um cursor.
Isso durou cerca de dois dias antes de eu realmente começar a ler a documentação — e depois ir além dela.
O que segue é a configuração real que executo — oh-my-zsh, os comandos Claude Code integrados, e um script de statusline customizado que oferece custo em tempo real, estado da janela de contexto, identidade do modelo e barras de limite de taxa. Nenhum pacote npm para nada disso.
Comece com oh-my-zsh
macOS vem com zsh, e a maioria das distribuições Linux modernas o suportam nativamente ou via gerenciadores de pacotes, ou você também pode tentar iTerm2 no macOS. Oh-my-zsh é o framework que o torna usável. Instale com:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Abra ~/.zshrc e configure seus plugins. Os que realmente importam para um fluxo de trabalho Claude Code:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
zsh-autosuggestions e zsh-syntax-highlighting não vêm agrupados, então você precisa instalá-los primeiro:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
O que cada um faz: o plugin git coloca seu branch atual no prompt do shell, para você nunca fazer context-switching para rodar git branch enquanto está dentro de uma sessão Claude. zsh-autosuggestions revive comandos do histórico conforme você digita — útil quando suas invocações claude começam a acumular flags. zsh-syntax-highlighting colore comandos conforme você digita; caminhos ruins ficam vermelhos antes de você pressionar Enter.
Para um tema, Powerlevel10k é a escolha prática: rápido de renderizar, altamente configurável, e não entra em conflito com a saída de status do Claude Code na parte inferior do terminal.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Depois configure ZSH_THEME="powerlevel10k/powerlevel10k" no seu .zshrc e rode source ~/.zshrc para ativar o assistente de configuração.
Você também pode sempre rodar a configuração com p10k configure.
Instale Claude Code no macOS
Anthropic fornece um instalador nativo que não requer Node.js:
curl -fsSL https://claude.ai/install.sh | sh
Ele se adiciona ao seu PATH adicionando uma linha em ~/.zshrc. Faça source da sua config ou abra um novo terminal:
source ~/.zshrc
(No Linux, o mesmo script funciona. No Windows, rode isso dentro do WSL — Claude Code não é direcionado nativamente para ambientes PowerShell)
Depois claude em qualquer diretório de projeto. A primeira execução pede autenticação de conta Anthropic. Depois disso, você está dentro.
O caminho npm (npm install -g @anthropic-ai/claude-code) ainda funciona se você já está em um ambiente Node, mas o instalador nativo é o que Anthropic testa e suporta primeiro. Menos dependências significa menos coisas que falham silenciosamente entre atualizações do macOS.
/terminal-setup: faça isso antes de qualquer coisa
Uma vez que Claude Code esteja rodando, digite:
/terminal-setup
Isso configura seu emulador de terminal para lidar corretamente com os atalhos de teclado de Claude Code. Os críticos: Shift+Enter para novas linhas dentro de um prompt sem enviar, e @ como um gatilho de referência de arquivo em vez de um caractere bruto.
Antes de rodar isso, @ em muitas configurações de terminal não fazia nada ou era passado como um token de shell. Depois, abre o seletor de arquivo do Claude Code. Você referencia arquivos no seu codebase sem copiar caminhos manualmente.
Um comando, e você tornou Claude Code ainda mais poderoso.
/statusline: tornando Claude Code ainda mais inteligente
Agora, rode isso dentro de uma sessão Claude Code:
/statusline
Isso escreve a configuração da statusline em ~/.claude/settings.json e configura um script em ~/.claude/statusline-command.sh. Esse script é o que realmente renderiza a barra de status: Claude Code pipes os dados da sessão para ele como JSON, e ele formata a saída.
A saída padrão fica OK, mas você pode melhorar ainda mais, adicionando algumas instruções ao comando
/statusline Add two line, one with the model being used, the branch you are working on, costs, and session time. In the second line, add the rate limits for the 5-hour period and the week period.
Você terá algo como:
[4.6] 📁 project | 🌿 no-branch | $0.00 | 🕐 46h 57m 56s
5-hour: [░░░░░░░░] 100% avail Week: [█░░░░░░░] 87% avail
──────────────────────────────────────────────
Linha por linha:
Linha 1 — [Model] mostra a versão do modelo ativo (Sonnet 4.6 renderiza como 4.6, Opus 4.6 como 4.6 com uma cor diferente). Pasta é o diretório do projeto atual. Branch é o branch git ativo — ou no-branch fora de um repositório. Custo é estimado a partir das contagens de token em tempo real. Depois temos a duração da sessão.
Linha 2 — Barras de limite de taxa. Blocos preenchidos (█) são cota consumida, blocos vazios (░) são o que resta. A cor muda com o uso: verde abaixo de 50%, laranja de 50–80%, vermelho brilhante acima de 80%. A barra de 5 horas reseta em uma janela rolante; a barra semanal reseta na segunda-feira.
Linha 3 — Um divisor atenuado para separar visualmente o status do prompt.
O que realmente está em settings.json
O comando /statusline conecta isso a ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
}
}
Claude Code executa esse comando toda vez que atualiza a barra de status, fazendo pipe do estado da sessão como JSON. O script o lê com jq e retorna texto formatado. Você pode editar o script diretamente para mudar o que é exibido, as cores, a largura da barra, qualquer coisa.
Por que cada elemento importa
A janela de contexto não é rastreada aqui: a statusline usa contagens de token para estimativa de custo, não um medidor de contexto. Para o estado da janela de contexto, o rodapé integrado de Claude Code cuida disso separadamente. Mas custo e limites de taxa são o que a maioria das pessoas fica cega.
A exibição de custo constrói um senso de linha de base. Depois de uma semana de sessões, você sabe o que uma refatoração típica custa. Quando uma sessão custa 3x isso, você percebe imediatamente, antes da fatura do final do mês.
As barras de limite de taxa existem porque Claude Code tem duas janelas de throttle separadas: um limite rolante de 5 horas e um limite semanal. Eles são independentes. Você pode queimar 80% de sua cota de 5 horas em uma sessão longa e ainda ter 90% de sua cota semanal. Saber qual está apertando muda o que você faz a seguir: posso esperar a janela de 5 horas para testar minhas mudanças? Ou é melhor continuar mesmo assim?
O indicador de modelo pega algo sutil: Claude Code pode mudar automaticamente de modelo durante uma sessão com base em carga ou seu nível de plano. Ou você pode ter selecionado um modelo mais barato ou mais caro usando /models e esquecido da mudança. Ver [4.6] versus o que esperava te diz imediatamente se isso aconteceu.
Juntando tudo
Dois aliases que valem a pena adicionar a ~/.zshrc:
alias cc="claude"
alias ccc="claude --continue"
--continue retoma a última sessão em vez de começar do zero. Para qualquer coisa além de uma correção rápida, é assim que o trabalho sustentado realmente funciona.
A forma completa de ~/.claude/settings.json, com statusline e a configuração de permissões mínima:
{
"statusLine": {
"type": "command",
"command": "bash ~/.claude/statusline-command.sh"
},
"permissions": {
"defaultMode": "default"
}
}
No Windows (WSL), adicione isso ao seu .zshrc ou .bashrc, dependendo do seu shell
Tudo mais em settings é opcional. O bloco statusline é o que ativa o script.
Depois de rodar /terminal-setup e /statusline, seu ambiente de trabalho mostra: branch git no prompt do shell (via oh-my-zsh), modelo e branch na barra de status do Claude, custo e estado do limite de taxa visíveis o tempo todo. Você sabe quando encerrar uma sessão antes do contexto degradar. Você sabe o que está gastando. Você sabe com qual modelo está realmente conversando.
O que isso não corrige
É importante deixar algo claro: nenhuma dessas mudanças tornará Claude mais inteligente. O modelo é o modelo. O que faz é fornecer informações para trabalhar bem com ele: quando começar do zero, o que uma sessão realmente está custando, e se um limite de taxa está apertando.
Trabalhar sem essa informação é como programar sem saber se suas mudanças foram salvas. Tecnicamente possível, mas você vai descobrir da forma difícil eventualmente.
Os comandos /terminal-setup e /statusline estão na documentação oficial do Claude Code{rel="nofollow"}. O script statusline em si é um arquivo bash simples que você possui e pode modificar. Entenda o que está fazendo antes de editá-lo — o esquema JSON que Claude Code faz pipe muda ocasionalmente entre releases, e jq vai te dizer rapidamente se suas mudanças quebraram algo.
Acerte o ambiente primeiro. Todo o resto funciona em cima dele.
Se você está integrando Claude em fluxos de trabalho de produção ou construindo recursos com assistência de IA para clientes, esse é o tipo de trabalho que faço.