Quick-Guide on setting up a MacBook for AI Engineering
My 10-step process for turning a fresh macOS install into an AI engineering workstation.
1. Install Xcode Command Line Tools
xcode-select --install
This opens a dialog that walks you through the install.
2. Install Homebrew
Homebrew is the package manager I use for everything else on this list:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
The installer asks for your password and adds itself to your PATH.
3. Install the core tools
brew install openssl readline sqlite3 xz zlib pyenv uv htop gitmoji pandoc ncdu tmux
Roughly grouped by what they're for:
Python environment
- pyenv β manage multiple Python versions side by side
- uv β fast Python package manager and environment handler
System libraries
- openssl β SSL/TLS cryptography support
- readline β command-line text editing
- sqlite3 β lightweight embedded database
- xz β data compression
- zlib β compression library
Productivity tools
- htop β visual system monitor and process viewer
- tmux β manage multiple terminal sessions
- ncdu β analyze disk usage interactively
- gitmoji β add emojis to commit messages
- pandoc β convert documents between formats
For more on
uvitself, see my Quick-Guide on managing Python on macOS with uv.
4. Pick a terminal
The default macOS Terminal is fine. I used iTerm2 for years and recently moved to Warp, a Rust-based terminal with AI features baked in. You can grab Warp from their website.
Optional: iTerm2 setup
If you stick with iTerm2, the two settings I always change:
Enable natural text editing
- Preferences β Profiles β Keys β Key Mappings
- Click the Presets⦠dropdown
- Select "Natural Text Editing"
Pick a color theme
- Browse themes at iTerm2-Color-Schemes
- Preferences β Profiles β Colors β Color Presetsβ¦
- Click Import and select your downloaded theme
5. Set up Zsh with Oh My Zsh
macOS uses Zsh by default. Oh My Zsh adds sane defaults and a plugin system on top:
brew install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
The installer backs up your existing Zsh config before swapping in the new one.
6. Add Zsh plugins
Edit your ~/.zshrc to load these plugins:
plugins=(
aws bgnotify brew docker docker-compose
emoji forklift gcloud git history iterm2
keychain kubectl macos pre-commit
pyenv pylint python screen themes
tmux virtualenv vscode
zsh-autosuggestions zsh-syntax-highlighting
)
Descriptions for all of these are in the Oh My Zsh plugins wiki.
The last two need a separate install:
- zsh-autosuggestions β suggests commands as you type, based on your history
- zsh-syntax-highlighting β colors commands as you type so typos are obvious
Follow the install instructions on each repo.
7. Theme it with Powerlevel10k
Powerlevel10k is the Zsh theme I use. It shows the working directory, git status, and active Python environment in the prompt, and it has an interactive wizard for tweaking the look. Install instructions are on the GitHub page.
Fonts in other editors
If you use VSCode or another editor with an integrated terminal, set the terminal font so the Powerlevel10k icons render:
- Open your editor's settings
- Search for
terminal.integrated.fontFamily - Set it to
MesloLGS NF(installed alongside Powerlevel10k)
Full font setup is in the Powerlevel10k font guide.
8. Editor and AI assistants
I always end up with one IDE open and an AI tool or two running next to it.
IDEs
- Cursor β a VSCode fork with AI pair programming built in
- VSCode β the one with the huge extension catalog
AI assistants
- OpenAI Codex β code generation and completion from OpenAI
- Claude β Anthropic's assistant; what I reach for on harder tasks
These days that's Cursor with Codex and Claude Code running in parallel.
9. The rest
A few extras I install on every machine:
- GitHub Desktop β visual Git client when I don't want to drop into the CLI
- Docker β containers; if you'd rather not use it, Podman and other alternatives cover most of the same ground
- Ollama or LM Studio β run LLMs locally on the Mac
10. That's the setup
That's what I install on every new MacBook before doing real work. Adjust to taste.