My Mac Dev Setup: Ghostty, Homebrew, and Windsurf
I keep my macOS setup simple, fast, and reliable. Here are the core tools I use every day on my MacBook Pro and why they’ve earned a permanent spot in my workflow.
MacBook Pro as the Foundation
For my daily driver I use a MacBook Pro. It gives me:
- M-series performance for fast local builds and Docker workloads
- Great battery life for on-call and travel
- A stable UNIX environment that plays nicely with cloud tooling and containers
Ghostty: My Terminal of Choice
Ghostty is a modern, GPU-accelerated terminal that’s fast, native, and thoughtfully designed. Why I like it:
- Speed and responsiveness: Snappy even with heavy logs and large scrollback
- Native macOS feel: Shortcuts, tabs, and UI behave exactly as expected
- Configurable: Minimal fuss, easy to theme, and works great with
zsh
A snippet from my typical ~/.zshrc setup:
# prompt and history
export HISTSIZE=10000
export SAVEHIST=10000
setopt HIST_IGNORE_ALL_DUPS SHARE_HISTORY
# handy aliases
alias ll='ls -alF'
alias gs='git status'
alias k='kubectl'
# brew, go, and pnpm in PATH
export PATH="/opt/homebrew/bin:$HOME/go/bin:$HOME/.pnpm:$PATH"
Homebrew: The Package Manager
Homebrew is how I install and manage most of my developer tooling on macOS. It’s predictable, scriptable, and keeps my environment reproducible.
Core commands I use frequently:
# install packages
brew install gh git node pnpm go kubectl helm k9s jq yq wget fzf ripgrep fd
# upgrade everything safely
brew update && brew upgrade
# find what’s taking space
brew list --versions
brew cleanup -n # dry run first
Casks I typically add on a fresh machine:
brew install --cask ghostty visual-studio-code rectangle iterm2 # if needed, alongside Ghostty
Windsurf: Editor for Fast Iteration
My editor of choice is Windsurf. It gives me a fluid, focused editing experience with smart ergonomics and performance. What stands out:
- Speed: Large projects feel responsive
- Great TypeScript/React ergonomics: In-editor feedback loops stay tight
- Productive defaults: The little things (search, refactors, multi-cursor) are dialed in
- AI models: I love the AI models Windsurf offers for accelerating code, refactors, and explanations
When working across services and IaC, I value quick navigation, solid TypeScript tooling, and reliable Git integration. Windsurf checks those boxes.
A Few Quality-of-Life Defaults
- Shell:
zshwith history sharing and a few terse aliases - Search tools:
ripgrepandfdfor blazing-fast code and file search - Kubernetes:
kubectl,k9s, andhelminstalled via Homebrew - JSON/YAML:
jqandyqfor quick transforms in the terminal
Closing Thoughts
I focus on tools that minimize friction and reduce toil: fast terminal, simple package management, and a dependable editor. This setup keeps me productive whether I’m iterating on code, triaging an incident, or automating infrastructure.