Mac Vibe Coding Setup
Everything you need for AI-assisted development on macOS
6
setup areas
~2h
total setup time
vibe unlocked
Shell & Terminal Emulator
1
Install Homebrew essential
The missing package manager for macOS — install this before anything else.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After install, run the two export PATH commands it gives you, or add them to your ~/.zshrc
2
Switch to iTerm2 essential
Far superior to the default Terminal. Split panes, search, profiles, themes, hotkey window.
brew install --cask iterm2
Enable "Hotkey Window" in Preferences → Keys → Hotkey so you can summon the terminal anywhere with a keystroke
3
Install Oh My Zsh essential
zsh is the default shell on Mac, Oh My Zsh turbocharges it with plugins, themes, and autocomplete.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
4
Install Powerlevel10k theme essential
The best terminal prompt — shows git branch, node version, last command status, execution time, and more.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \ ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k # Then set in ~/.zshrc: ZSH_THEME="powerlevel10k/powerlevel10k" # Run the config wizard: p10k configure
Install the "MesloLGS NF" font it recommends — needed for icons to render correctly
5
Essential zsh plugins essential
Add to your plugins=() in ~/.zshrc
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.git \ ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting # In ~/.zshrc set: plugins=(git node npm brew z zsh-autosuggestions zsh-syntax-highlighting)
6
Install useful CLI tools quality of life
brew install eza # better ls with icons + colors brew install bat # better cat with syntax highlighting brew install fzf # fuzzy finder — supercharges Ctrl+R history brew install ripgrep # blazingly fast grep (rg command) brew install fd # fast modern find replacement brew install zoxide # smarter cd that learns your dirs (z command) # Add to ~/.zshrc: eval "$(zoxide init zsh)" [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
Add aliases to ~/.zshrc: alias ls='eza --icons' and alias cat='bat'
7
Set up iTerm2 color scheme aesthetic
Download "Catppuccin Mocha" or "Tokyo Night" from iterm2colorschemes.com. Import via Preferences → Profiles → Colors → Color Presets.
Your AI-Powered IDE
1
Install Cursor AI-first 🔥 recommended
The definitive vibe coding IDE. Built on VS Code, deeply integrated with Claude and GPT-4. Tab autocomplete predicts entire functions, Composer writes multi-file features from a prompt.
brew install --cask cursor # or download from cursor.com
Enable "Cursor Tab" in Settings → Features, set model to claude-sonnet-4 in Composer
2
Alternative: VS Code + GitHub Copilot solid choice
If you prefer staying in VS Code, pair it with Copilot. More mature extension ecosystem.
brew install --cask visual-studio-code
3
Must-have Cursor/VS Code extensions essential
ESLint
Catch errors as you type
Prettier
Auto-format on save
GitLens
Supercharged git blame
Error Lens
Errors inline in code
Thunder Client
API testing in editor
Auto Rename Tag
HTML tag sync rename
Path Intellisense
Autocomplete file paths
Dotenv
.env file highlighting
4
Install Claude Code AI-first
Anthropic's agentic CLI tool. Reads your entire codebase, writes and runs code, fixes bugs autonomously.
npm install -g @anthropic-ai/claude-code # then in any project: claude
5
Set a beautiful font aesthetic
brew install --cask font-jetbrains-mono brew install --cask font-fira-code
In settings.json: "editor.fontFamily": "'JetBrains Mono', Menlo, monospace" and "editor.fontLigatures": true
6
Configure settings.json essential
Press ⌘⇧P → "Open User Settings JSON"
{ "editor.fontFamily": "'JetBrains Mono', Menlo, Monaco, monospace", "editor.fontSize": 14, "editor.fontLigatures": true, "editor.formatOnSave": true, "editor.tabSize": 2, "editor.wordWrap": "on", "editor.minimap.enabled": false, "editor.bracketPairColorization.enabled": true, "editor.guides.bracketPairs": true, "terminal.integrated.fontFamily": "MesloLGS NF", "workbench.colorTheme": "One Dark Pro Darker" }
Runtime Environments
1
Node.js via nvm essential
Never install Node directly — use nvm to manage multiple versions without conflict.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # Reload shell (source ~/.zshrc), then: nvm install --lts nvm use --lts nvm alias default 'lts/*'
2
Python via pyenv essential
Manages Python versions cleanly — never touches your system Python that macOS depends on.
brew install pyenv # Add to ~/.zshrc: export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" # Install latest Python: pyenv install 3.12 pyenv global 3.12
Verify with: which python3 — should show ~/.pyenv/shims/python3, not /usr/bin/python3
3
Docker Desktop essential
Run databases, services, and entire stacks locally without polluting your machine.
brew install --cask docker
Set memory limit to 8GB in Docker Desktop → Settings → Resources
Essential Applications
4
Raycast 🔥 game changer
Replace Spotlight with Raycast. Instant app launcher, clipboard history, window management, snippets, and AI queries — all from one hotkey.
brew install --cask raycast
Enable Clipboard History (⌘⇧V), Window Management, and AI Chat extension
5
Arc Browser recommended
The best browser for developers — tab management, split view, built-in note spaces.
brew install --cask arc
6
TablePlus recommended
Beautiful native database GUI. Works with PostgreSQL, MySQL, SQLite, Redis, and more.
brew install --cask tableplus
7
Rectangle essential
Window snapping on Mac. Essential when juggling IDE + terminal + browser.
brew install --cask rectangle
Git Setup
1
Configure Git globals essential
git config --global user.name "Your Name" git config --global user.email "you@email.com" git config --global init.defaultBranch main git config --global pull.rebase false git config --global core.editor "cursor --wait" git config --global diff.colorMoved default git config --global merge.conflictstyle diff3
2
SSH key for GitHub essential
ssh-keygen -t ed25519 -C "you@email.com" # Hit enter 3x for defaults # Copy to clipboard: cat ~/.ssh/id_ed25519.pub | pbcopy # Paste at: github.com → Settings → SSH keys → New SSH key # Test it: ssh -T git@github.com
3
Install GitHub CLI essential
brew install gh gh auth login # Then use like: gh repo clone owner/repo gh pr create --title "feat: add thing" --body "..." gh pr list
4
Install lazygit 🔥 must-have
Terminal UI for git that makes staging, rebasing, and cherry-picking delightfully visual.
brew install lazygit # Add alias to ~/.zshrc: alias lg='lazygit'
5
Create a global .gitignore essential
cat >> ~/.gitignore_global << EOF .DS_Store .env .env.local node_modules/ __pycache__/ *.pyc .venv/ .cursor/ EOF git config --global core.excludesfile ~/.gitignore_global
Vibe Coding Workflow Tips
1
Set up a CLAUDE.md in every project AI-first
Acts as persistent context for Claude Code and Cursor — tells the AI your stack, conventions, and preferences.
# CLAUDE.md example ## Project: [Name] ## Stack: Next.js 14, TypeScript, Tailwind, Prisma, PostgreSQL ## Conventions - Use named exports, not default exports - All components in /components, typed with TypeScript - API routes in /app/api following REST conventions - Always use Zod for input validation ## Commands - Dev: `npm run dev` - DB migration: `npx prisma migrate dev`
2
Use .cursorrules for Cursor AI behavior AI-first
# .cursorrules You are an expert in TypeScript, React, and Next.js 14 App Router. - Prefer functional components with hooks - Use Tailwind for all styling, never inline styles - Always add TypeScript types, never use `any` - Write self-documenting code, minimal comments - Use early returns to avoid nested conditionals - Always handle loading and error states
3
Set up useful shell aliases quality of life
# Add to ~/.zshrc # Navigation alias ..='cd ..' alias ...='cd ../..' # Dev shortcuts alias ni='npm install' alias nr='npm run' alias nrd='npm run dev' # Git shortcuts alias gs='git status' alias ga='git add .' alias gc='git commit -m' alias gp='git push' alias gl='git log --oneline --graph --color' # Quick edit configs alias zshrc='cursor ~/.zshrc' alias reload='source ~/.zshrc'
4
Enable macOS developer settings do these first
# Show hidden files in Finder defaults write com.apple.finder AppleShowAllFiles YES # Show file extensions always defaults write NSGlobalDomain AppleShowAllExtensions -bool true # Faster key repeat defaults write NSGlobalDomain KeyRepeat -int 2 defaults write NSGlobalDomain InitialKeyRepeat -int 15 # Disable autocorrect defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false killall Finder && killall SystemUIServer
5
Install tldr for quick command help quality of life
brew install tldr # Example: tldr git rebase tldr docker
Track your setup progress. Click items to mark complete.
Phase 1 — Foundation
Install Homebrew
Install iTerm2
Install Oh My Zsh + Powerlevel10k
Add zsh plugins (autosuggestions + syntax highlight)
Configure macOS dev defaults
Phase 2 — IDE & AI
Install Cursor (or VS Code)
Install JetBrains Mono font
Configure settings.json in IDE
Install Claude Code CLI
Install essential IDE extensions
Phase 3 — Dev Tools
Install Node via nvm
Install Python via pyenv
Install Docker Desktop
Install Raycast (replace Spotlight)
Install Rectangle for window management
Phase 4 — Git
Configure git globals (name, email, defaults)
Create SSH key and add to GitHub
Install GitHub CLI (gh)
Install lazygit
Create global .gitignore
Phase 5 — Workflow
Add shell aliases to ~/.zshrc
Create a CLAUDE.md template for projects
Create a .cursorrules template
Install useful CLI tools (eza, bat, fzf, ripgrep)
Setup progress 0 / 24