A streamlined approach to setting up a complete macOS development environment with a single command.
- One-Command Setup: Get your entire development environment running with a single command
- Zero Dependencies: Starts with just Zsh (macOS default) and handles all other installations
- Modular Design: Choose to install only what you need
- Homebrew-Based: Uses Homebrew as the foundation for software installation
- Dotfiles Management: Automatically links configuration files using GNU Stow
- Development Tools: Sets up programming languages, editors, and developer tools
To set up everything in one go:
./preface.zshTo preview what changes would be made without actually making them:
./preface.zsh --dry-runTo see all available options:
./preface.zsh --helpThis setup process is divided into two stages:
-
Preface Stage (Zsh): Runs on macOS's default shell to ensure core dependencies are installed:
- Checks and installs Homebrew if needed
- Checks and installs Fish shell if needed
- Delegates to the main setup script
-
Main Setup Stage (Fish): After dependencies are satisfied, uses Fish shell to:
- Install all tools via Homebrew
- Configure shells and environment
- Link dotfiles with GNU Stow
- Set up development tools
You can selectively install specific components:
# Install only Homebrew packages
./preface.zsh homebrew
# Set up Fish shell
./preface.zsh shell
# Link dotfiles
./preface.zsh dotfiles
# Install development tools
./preface.zsh dev
# Set up Zsh (the macOS default)
./preface.zsh zsh- macOS (10.15 Catalina or newer)
- Internet connection
- Homebrew: Package manager for macOS
- Fish Shell: Modern shell with auto-suggestions and syntax highlighting
- Development Tools: Node.js, Rust, Neovim, tmux, and more
- Configuration Files: Shell configuration, editor settings, and terminal customizations
preface.zsh: Main entry point (Zsh script for initial bootstrapping)setup.fish: Main setup script (Fish script for full installation)runs/: Contains installation scripts for specific toolsenv/: Contains dotfiles that are linked to your home directory
Edit the runs/Brewfile to add or remove packages according to your preferences.
MIT