Complete MacBook setup guide for local development and playground — with essential tools, apps, and configuration commands.
🛠 System Setup Guide for macOS
📦 Prerequisites
Install Xcode Command Line Tools:
xcode-select --install
Install Homebrew (package manager):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew update && brew doctor
⚙️ Zsh + Powerlevel10k
Install Zsh and plugins:
brew install zsh zsh-autosuggestions zsh-syntax-highlighting
chsh -s /bin/zsh
Add to your ~/.zshrc
:
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Install Powerlevel10k and fonts:
brew install powerlevel10k
brew tap homebrew/cask-fonts
brew install --cask font-meslo-lg-nerd-font
echo 'source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc
p10k configure
💻 Terminal Tools
Tmux
brew install tmux
Create ~/.tmux.conf
:
set -g prefix C-a
unbind C-b
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
(Optional TPM plugins):
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Fuzzy Finder Suite
brew install fzf ripgrep fd
$(brew --prefix)/opt/fzf/install
Add to ~/.zshrc
:
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
🐳 Docker
Install Docker Desktop and helper tools:
brew install --cask docker
brew install lazydocker
docker compose version
🌱 Git
Install and configure Git:
brew install git lazygit git-extras
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global color.ui auto
Useful aliases:
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
LazyGit (Terminal Git UI)
LazyGit provides a simple terminal UI for Git commands. Launch with:
lazygit
Key bindings:
q
- Quit?
- Help/Key bindingsc
- CommitP
- Pushp
- Pullspace
- Stage/unstage filesenter
- View file diffm
- Mergeb
- Create branchd
- Delete branch
Create config file ~/.config/lazygit/config.yml
for customization:
gui:
showFileTree: true
showBranchCommitHash: true
showDivergenceFromBaseBranch: true
git:
autoFetch: true
autoRefresh: true
🧪 Languages & Package Managers
Node.js + npm (via nvm)
brew install node nvm
mkdir ~/.nvm
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && \. "$(brew --prefix)/opt/nvm/nvm.sh"' >> ~/.zshrc
Python + Conda
brew install python
brew install --cask miniconda
conda init zsh
Common usage:
conda create --name myenv python=3.11
conda activate myenv
conda deactivate
📝 Editors
brew install neovim vim
brew install --cask visual-studio-code
💼 Productivity Apps
brew install --cask rectangle
brew install --cask obsidian
brew install --cask keepassxc
brew install --cask displaylink
✅ Final Steps
source ~/.zshrc
zsh --version
tmux -V
docker --version
fzf --version
git --version