A macOS setup guide specific to front-end development.
🔐 Required Permissions:
- Administrator access to your Mac
- Full disk access for certain applications
- Permission to install applications from identified developers
For a guided setup, open up Terminal.app and run the following commands.
- Save the repo to the
~/Downloadsfolder:git clone https://github.com/michaelschwobe/mac-dev-setup.git ~/Downloads/mac-dev-setup && \ cd ~/Downloads/mac-dev-setup/scripts
- Run the installer script.
sh install.sh
🔥 Recommended: Rerun as many times as needed. The scripts will auto-skip prompts for items already installed.
✨ And that’s it! For additional CLI and IDE customizations, refer to the related Manual Setup section below.
For those who prefer à la carte, this section contains everything that the Guided Setup attempts to do including CLI and IDE customizations.
- If you haven’t already, save repo to
~/Downloadsfolder:git clone https://github.com/michaelschwobe/mac-dev-setup.git ~/Downloads/mac-dev-setup && \ cd ~/Downloads/mac-dev-setup/scripts
- Continue with setup below.
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && \
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && \
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && \
killall Dockdefaults write com.apple.dock autohide -boolean true && \
killall DockDisplay hidden Finder files/folders:
defaults write com.apple.finder AppleShowAllFiles -boolean true && \
killall Findermkdir -p ~/Developermkdir -p ~/Sandboxxcode-select --installInstalling brew (Homebrew):
If: Apple Silicon/ARM Architecture:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" && \
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile && \
eval "$(/opt/homebrew/bin/brew shellenv)" && \
brew doctorIf Intel Architecture:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" && \
brew doctorInstall watchman:
brew install watchmanInstall trash:
brew install trashInstall git:
brew install gitInstall zsh:
brew install zshInstall oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Install oh-my-posh (CLI theming):
brew install jandedobbeleer/oh-my-posh/oh-my-posh
echo '# Theme configuration: Oh My Posh' >> ~/.zshrc
echo 'if [ "$TERM_PROGRAM" != "Apple_Terminal" ]; then' >> ~/.zshrc
echo ' if [ -f ~/.moonlight.omp.json ]; then' >> ~/.zshrc
echo ' eval "$(oh-my-posh init zsh --config ~/.moonlight.omp.json)"' >> ~/.zshrc
echo ' else' >> ~/.zshrc
echo ' eval "$(oh-my-posh init zsh --config $(brew --prefix oh-my-posh)/themes/jandedobbeleer.omp.json)"' >> ~/.zshrc
echo ' fi' >> ~/.zshrc
echo 'fi' >> ~/.zshrcCopy my Oh My Posh settings:
cp ~/Downloads/mac-dev-setup/.moonlight.omp.json ~/.moonlight.omp.jsonRestart your CLI for this to take effect.
Install powerlevel10k (CLI theming):
brew install powerlevel10k && \
echo '# Theme configuration: PowerLevel10K' >> ~/.zshrc && \
echo 'source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc && \
echo '# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.' >> ~/.zshrc && \
echo '[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh' >> ~/.zshrcCopy my PowerLevel10K settings:
cp ~/Downloads/mac-dev-setup/.p10k.zsh ~/.p10k.zshOr customize your own settings:
p10k configureRestart your CLI for this to take effect.
Install zsh-autosuggestions:
brew install zsh-autosuggestions && \
echo "# Fish shell-like fast/unobtrusive autosuggestions for Zsh." >> ~/.zshrc && \
echo "source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrcRestart your CLI for this to take effect.
Install zsh-syntax-highlighting:
brew install zsh-syntax-highlighting && \
echo "# Fish shell-like syntax highlighting for Zsh." >> ~/.zshrc && \
echo "# Warning: Must be last sourced!" >> ~/.zshrc && \
echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrcRestart your CLI for this to take effect.
Note the source command must be at the end of ~/.zshrc.
Install n to install/manage Node versions:
brew install nInstall nvm to install/manage Node versions:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashInstall node versioned managed by Homebrew:
brew install nodeInstall pnpm:
brew install pnpmInstall yarn:
brew install yarnUpgrade npm (globally via npm):
npm install -g npm@latestInstall serve (globally via npm):
npm install -g serve@latestbrew tap homebrew/cask-fonts # You only need to do this once!
brew install font-jetbrains-mono-nerd-fontbrew install --cask 1passwordbrew install --cask brave-browserbrew install --cask brunobrew install --cask discordbrew install --cask figmabrew install --cask ghostty- Copy the theme:
mkdir -p ~/.config/ghostty/ && \ cp ~/Downloads/mac-dev-setup/Moonlight.ghostty.config ~/.config/ghostty/config
- Check the theme by going to:
- "Settings…"
- Reload Ghostty and resolve any remaining issues.
- "Reload Configuration"
brew install --cask google-chromebrew install --cask iterm2- Copy my iTerm settings:
cp ~/Downloads/mac-dev-setup/.zshrc ~/
- Set the theme by going to:
- "Settings… → Profiles → Colors → Color Presets… → Import…"
- Theme location:
~/Downloads/mac-dev-setup/Moonlight.itermcolors
- Set the font by going to:
- "Settings… → Profiles → Text → Font"
- Font name: "JetBrainsMono NFM" or "JetBrainsMono Nerd Font Mono"
- Restart iTerm and resolve any remaining issues.
brew install --cask rectanglebrew install --cask slackbrew install --cask sourcetree- Set the font by going to:
- "Settings… → Diff → Internal Diff Visualization → Diff View font"
- Font name: "JetBrainsMono NFM" or "JetBrainsMono Nerd Font Mono"
- Restart Sourcetree and resolve any remaining issues.
brew install --cask spotify- Set the theme and font by going to:
- "Settings… → Profiles → Import…" (bottom left next to the "+/-" buttons)
- Theme location:
~/Downloads/mac-dev-setup/Moonlight.terminal - Font name: "JetBrainsMono NFM" or "JetBrainsMono Nerd Font Mono"
- Restart Terminal and resolve any remaining issues.
brew install --cask visual-studio-code- Install my Extensions:
code --install-extension alefragnani.project-manager code --install-extension atomiks.moonlight code --install-extension bradlc.vscode-tailwindcss code --install-extension christian-kohler.npm-intellisense code --install-extension christian-kohler.path-intellisense code --install-extension codeforge.remix-forge code --install-extension dbaeumer.vscode-eslint code --install-extension docker.docker code --install-extension eamodio.gitlens code --install-extension editorconfig.editorconfig code --install-extension esbenp.prettier-vscode code --install-extension formulahendry.auto-rename-tag code --install-extension github.copilot code --install-extension github.copilot-chat code --install-extension github.vscode-github-actions code --install-extension gruntfuggly.todo-tree code --install-extension l13rary.l13-diff code --install-extension mikestead.dotenv code --install-extension ms-azuretools.vscode-docker code --install-extension orta.vscode-twoslash-queries code --install-extension prisma.prisma code --install-extension qwtel.sqlite-viewer code --install-extension stylelint.vscode-stylelint code --install-extension tyriar.sort-lines code --install-extension unifiedjs.vscode-mdx code --install-extension vscode-icons-team.vscode-icons code --install-extension yoavbls.pretty-ts-errors code --install-extension zignd.html-css-class-completion
- Copy my Visual Studio Code User settings:
cp ~/Downloads/mac-dev-setup/Code/* ~/Library/Application\ Support/Code/User
- Restart Visual Studio Code and resolve any remaining issues.
brew install --cask warp- Copy the theme:
mkdir -p ~/.warp/themes/ && \ cp ~/Downloads/mac-dev-setup/Moonlight.warp.yaml ~/.warp/themes/
- Set the theme and font by going to:
- "Settings… → Appearance… → Themes"
- Theme name: "Moonlight"
- Font name: "JetBrainsMono NFM" or "JetBrainsMono Nerd Font Mono"
- Restart Warp and resolve any remaining issues.
brew install --cask zoomdefaults write com.apple.dock ResetLaunchPad -boolean true; killall DockUpdating oh-my-zsh:
omz updateOptimizing Homebrew:
brew update && brew upgrade && brew doctor && brew cleanup