Rafael França · ferramentas de trabalho

Meu setup.

O que uso para programar, o que deixei de fora e por quê.

Atualizado em · 25 escolhas

A máquina

Sistema
macOS
Memória
8 GB

Com 8 GB de RAM, leveza é critério de desempate em quase toda escolha.

Antes das ferramentas

Os princípios que decidem.

  1. Instalação idempotente e autocorretiva: rodar de novo só repara o que falta.
  2. Sempre versões estáveis/LTS dos runtimes.
  3. Preferir o que já é nativo a instalar mais uma ferramenta.
  4. Repositório de setup público, sem dados pessoais: configs privadas e segredos ficam fora do git.

A bancada

Cada escolha, com o motivo.

Ambiente e instalação

setup_config (instalador próprio)

Um manifesto único (setup.tsv) define o que entra, as dependências e o que é essencial ou opcional; cada item sabe verificar e reparar a si mesmo.

No lugar de

  • Brewfile
  • scripts soltos
  • dotfiles manuais

Homebrew

Padrão de fato no macOS, cobre CLIs e apps (casks) e permite automatizar tudo.

No lugar de

  • MacPorts
  • instaladores .dmg manuais

Zsh + Oh My Zsh + zsh-autosuggestions

Zsh é o shell padrão do macOS; toda a configuração fica num único .zshrc.

No lugar de

  • Bash
  • Fish

Ghostty

Terminal rápido e nativo, com configuração em arquivo de texto.

No lugar de

  • iTerm2
  • Terminal.app
  • Warp

Runtimes

fnm (Node)

Bem mais rápido que o nvm e não deixa a abertura do shell lenta.

No lugar de

  • nvm
  • Volta

rbenv (Ruby)

O Ruby do macOS está obsoleto, e o CocoaPods do React Native já roda bem via rbenv.

No lugar de

  • Ruby do sistema
  • RVM

Zulu JDK 17

É LTS e é o JDK suportado pelo React Native, que não funciona com o JDK 25.

No lugar de

  • JDK mais recente (25)
  • JDK embutido no Android Studio

Python (última estável via Homebrew)

Uso simples, então a última versão estável basta, sem gerenciador extra.

No lugar de

  • pyenv
  • Python do sistema

pnpm

Instalações mais rápidas e economia de disco por compartilhar pacotes entre projetos.

No lugar de

  • npm
  • Yarn

Containers e mobile

Colima

Muito mais leve que o Docker Desktop, o que pesa com 8 GB de RAM; a CLI do docker continua igual. Open source e gratuito, sem licença comercial.

No lugar de

  • Docker Desktop
  • OrbStack

Android SDK só por linha de comando

O sdkmanager instala só o necessário (adb, emulador, NDK) sem a IDE pesada; o código é escrito no VS Code.

No lugar de

  • Android Studio

Editor

VS Code com lista enxuta de extensões

Extensões versionadas numa lista; a sincronização do VS Code não reinstala as que foram removidas de propósito.

No lugar de

  • Cursor
  • WebStorm

Recursos nativos do VS Code

O VS Code já faz isso nativamente (linked editing, auto import e completar caminhos do TypeScript).

No lugar de

  • Auto Rename Tag
  • Highlight Matching Tag
  • Auto Import
  • Path Intellisense

Jest Runner

Roda o teste sob o cursor quando eu peço, sem processo rodando o tempo todo em segundo plano.

No lugar de

  • vscode-jest
  • Wallaby
  • Quokka

SonarQube for IDE, ativado só por projeto

Análise pesada só onde faz sentido; as extensões de métrica que rodam o tempo todo foram removidas.

No lugar de

  • deixar ativo sempre
  • Code Metrics
  • Import Cost

Segredos e configuração privada

Bitwarden (app + CLI bw)

Open source; com a CLI, o instalador busca tokens direto do cofre e nenhum segredo entra no git.

No lugar de

  • 1Password
  • Chaves do iCloud
  • arquivo .env no repositório

Notas privadas (Obsidian em repositório git privado) para configs da máquina

O repositório do setup é público: IDs, URLs privadas e caminhos locais ficam nas notas privadas, e o instalador copia de lá sem nunca sobrescrever o que já existe.

No lugar de

  • commitar no repositório público
  • recriar à mão a cada máquina

IA no terminal

Claude Code

Agente que trabalha direto no terminal e no repositório, sem trocar de editor. Uso perfis separados de trabalho e pessoal com statusline própria, e hooks para automatizar o fluxo (como o rtk).

No lugar de

  • GitHub Copilot
  • Cursor
  • Codex CLI

rtk

Proxy de linha de comando que filtra a saída de git, ls, testes etc. antes de chegar no agente, cortando até 90% dos tokens. Entra por um hook, sem mudar como os comandos são escritos.

No lugar de

  • saída crua dos comandos

Apps do dia a dia

Obsidian

Notas em Markdown local, versionáveis em git.

No lugar de

  • Notion
  • Apple Notes

Bruno

Funciona offline e guarda as coleções como arquivos, que podem ir para o git junto com o projeto.

No lugar de

  • Postman
  • Insomnia

LinearMouse

Substitui o Logi Options+ com bem menos peso.

No lugar de

  • Logi Options+

Mole

Limpeza de caches e lixo pelo terminal, sem app pago.

No lugar de

  • CleanMyMac

Amphetamine

Mantém o Mac acordado com regras (por app, por tempo) direto na barra de menus.

No lugar de

  • caffeinate
  • Caffeine

The Unarchiver

Abre praticamente qualquer formato compactado.

No lugar de

  • Utilitário de Compactação do macOS
  • Keka