On this page

CLI Tools

All 28 Homebrew formulae managed by the mac-setup repo, organized by category. These are installed automatically when the Ansible playbook runs.

Source: roles/homebrew/vars/main.yml under homebrew_formulae.

Shell & Prompt

Tool Purpose Config Notes
zsh Default shell configs/shell/.zshrc macOS ships with zsh, but Homebrew keeps it up to date
zsh-autosuggestions Fish-like suggestions as you type Loaded in .zshrc; suggests from history
zsh-completions Additional completion definitions Extends built-in completions for common tools
zsh-syntax-highlighting Colors valid/invalid commands as you type Red = not found, green = valid; catches typos before hitting Enter
starship Cross-shell prompt configs/starship/starship.toml TOML config; shows git branch, runtime versions, exit codes, duration
fzf Fuzzy finder Powers Ctrl-R history search and Ctrl-T file picker in the shell

Modern CLI Replacements

Tool Replaces Why this tool Config
bat cat Syntax highlighting, line numbers, git integration configs/bat/
eza ls Icons, tree view, git status column, color by file type Aliased as ls, ll, la, lt in .zshrc
ripgrep grep Fastest grep alternative; respects .gitignore by default Aliased as rg
tlrc man Community-maintained cheat sheets with practical examples Lightweight Rust client for tldr pages
zoxide cd Learns frequently visited directories, fuzzy matching with z Initialized in .zshrc

Dev Tools

Tool Purpose Config Notes
btop System/process monitor configs/btop/btop.conf Full TUI with CPU, memory, network, disk graphs
difftastic Structural diffs AST-aware diffs that understand language syntax, not just text
gh GitHub CLI configs/gh/config.yml YAML config; PR creation, issue management, repo operations
git-delta Syntax-highlighted git diffs Configured in configs/git/ Used as the default git pager for diff, log, and show
hurl HTTP API testing Plain-text .hurl files; great for CI pipelines and scripted tests
jq JSON processor Pipe JSON through filters, extract fields, transform data
lazygit Git TUI configs/lazygit/config.yml Aliased as lg in .zshrc; staging, committing, rebasing in a TUI
shellcheck Shell script linter Catches common bash/zsh bugs and pitfalls
yq YAML processor Like jq but for YAML; reads/writes YAML, JSON, XML, CSV, TSV

Infra & Automation

Tool Purpose Notes
ansible Configuration management Runs the mac-setup playbook itself; also useful for work automation
mise Runtime version manager Manages Node, Python, Java, Bun, etc. See Runtimes

Container Tools

Tool Purpose Notes
colima Container runtime Free Docker Desktop alternative; runs a Linux VM with Docker daemon
docker Container CLI Talks to the colima-managed Docker daemon
docker-buildx Extended builds BuildKit-based builder; multi-platform images, cache mounts
docker-compose Multi-container apps Compose v2 plugin; define services in docker-compose.yml

Cloud & Infra

Tool Purpose Notes
awscli AWS CLI Configure with aws configure; supports profiles and SSO
helm Kubernetes package manager Install, upgrade, and manage Kubernetes charts
kubernetes-cli Kubernetes CLI (kubectl) Cluster management, pod inspection, deployments

Shell History

Tool Purpose Notes
atuin Shell history manager Full-text search across sessions, per-directory filtering, sync across machines

Tools intentionally not included

These tools were evaluated or previously installed and removed. The reason is listed for each.

Tool Reason for exclusion
tree Replaced by eza --tree (aliased as lt)
fd fzf works well without it for this setup
direnv mise handles project-level env vars natively
aichat Using Claude CLI instead
gemini-cli Using Claude CLI instead
go Managed by mise when needed, not installed globally
uv Managed by mise, not Homebrew
hyperfine Niche — install per-project if needed
sd Niche — install per-project if needed
tokei Niche — install per-project if needed
k6 Niche — install per-project if needed
watchexec Niche — install per-project if needed
zizmor Niche — install per-project if needed
actionlint Niche — install per-project if needed
gitleaks Niche — install per-project if needed
pre-commit Niche — install per-project if needed
buf Niche — install per-project if needed
protobuf Niche — install per-project if needed
cloudflare-wrangler Niche — install per-project if needed
graphviz Niche — install per-project if needed

To add a new formula, edit roles/homebrew/vars/main.yml and add it to the homebrew_formulae list, then run make setup.