Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mac Setup Script

Automated Mac development environment setup with interactive package selection.

Quick Start

chmod +x setup.sh
./setup.sh

Usage

Interactive mode (default)

./setup.sh

Walks you through:

  1. Xcode CLT — installs if missing
  2. Homebrew — installs if missing
  3. Packages — pick categories, then refine individual packages with arrow keys + space
  4. macOS preferences — developer-friendly Finder, Dock, keyboard settings

GUI mode

uv run setup_gui_launcher.py

Launches a graphical interface for selecting packages. Dependencies are declared inline via PEP 723 and resolved automatically by uv — no venv or pip install needed.

Install everything (no prompts)

./setup.sh --all

Installs the full Brewfile and applies all settings without interactive menus.

Customizing Packages

Edit the Brewfile to add or remove packages. Organize with comment headers — the interactive menu builds its categories from these headers automatically.

# My Custom Category
brew "some-tool"
cask "some-app"

Brewfile format

Type Example Description
brew brew "git" CLI tool / library
cask cask "visual-studio-code" GUI application
mas mas "Keynote", id: 409183694 Mac App Store app

File Structure

├── setup.sh               # Main entry point
├── setup_gui_launcher.py  # GUI alternative (run with uv)
├── Brewfile               # Declarative package manifest
├── scripts/
│   ├── xcode.sh           # Xcode Command Line Tools
│   ├── homebrew.sh        # Homebrew installation
└────── macos.sh           # macOS system preferences

Shell Configuration

After installing CLI utilities, add the following lines to your ~/.zshrc and ~/.zprofile to enable them:

Starship prompt

eval "$(starship init zsh)"

zsh-autosuggestions

source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh

zsh-syntax-highlighting

source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

nvm (Node Version Manager)

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"

Then reload your shell:

source ~/.zshrc

Requirements

  • macOS (Apple Silicon or Intel)
  • Internet connection
  • Admin privileges (for Homebrew and Xcode CLT)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages