Setting up a new MacBook Pro M5! A new start; a new beginning.
Tools: Homebrew · Warp Terminal · VS Code
✅ Foundation
Git + SSH
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
ssh-keygen -t ed25519 -C "[email protected]"
# Copy public key to GitHub: cat ~/.ssh/id_ed25519.pub
GitHub CLI
brew install gh
gh auth login
✅ Python
Using pyenv for version management + uv for packages/virtual envs.
brew install pyenv
pyenv install 3.12.x
pyenv global 3.12.x
brew install uv
Add to ~/.zshrc:
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
Daily usage:
uv venv
# create virtual env in current project
source .venv/bin/activate
uv pip install <package>
✅ Node / JavaScript
Using fnm (Fast Node Manager — Rust-based, Apple Silicon native).
brew install fnm
fnm install --lts
fnm use lts-latest
fnm default lts-latest
Add to ~/.zshrc:
eval "$(fnm env --use-on-cd)"
Global tools:
npm install -g pnpm typescript ts-node
✅ AWS (Lambda + SAM)
brew install awscli
brew tap aws/tap
brew install aws-sam-cli
Configure credentials:
aws configure
# AWS Access Key ID, Secret, Region, Output format (json)
✅ Shopify
npm install -g @shopify/cli @shopify/theme
Shopify CLI requires Ruby — managed via rbenv:
brew install rbenv ruby-build
rbenv install 3.3.x
rbenv global 3.3.x
Add to ~/.zshrc:
eval "$(rbenv init - zsh)"
✅ Cloudflare (Wrangler)
npm install -g wrangler
wrangler login
✅ SQL / PostgreSQL
brew install postgresql@16
brew services start postgresql@16
GUI: TablePlus (recommended, free tier) or DBeaver (fully free/open source).
✅ Useful Terminal Tools
brew install jq # JSON parsing
brew install httpie # friendlier curl alternative
brew install tree # directory tree visualisation
brew install starship # cross-shell prompt (optional with Warp)
Add Starship to ~/.zshrc if using:
eval "$(starship init zsh)"
✅ VS Code Extensions
| Extension | Purpose |
|---|---|
| Pylance + Python (Microsoft) | Python language support |
| ESLint | JS/TS linting |
| Prettier | Code formatting |
| GitLens | Enhanced Git in editor |
| AWS Toolkit | Lambda, SAM, CloudFormation |
| Shopify Liquid | Liquid template support |
| GraphQL: Language Feature Support | Schema, queries |
| REST Client | Quick HTTP requests in-editor |
| SQLTools + driver | Database queries in VS Code |
✅ Mac System Settings
# Show hidden files in Finder
defaults write com.apple.Finder AppleShowAllFiles YES
# Keyboard repeat rate (useful for coding)
defaults write -g InitialKeyRepeat -int 15
defaults write -g KeyRepeat -int 2
- Rectangle — window snapping (free, highly recommended)
- FileVault — enable in System Settings → Privacy & Security
📱 iOS / Android (Future)
- Xcode — install from App Store early (large download)
- Android Studio — from jetbrains.com/android-studio
- Java —
brew install openjdk - CocoaPods —
sudo gem install cocoapods(when needed for iOS)
🗂 ~/.zshrc Summary
All additions to ~/.zshrc in one place:
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
# fnm
eval "$(fnm env --use-on-cd)"
# rbenv
eval "$(rbenv init - zsh)"
# Starship prompt (optional)
eval "$(starship init zsh)"
After editing, reload with:
source ~/.zshrc