This project automates my personal macOS development environment setup using Ansible. Feel free to use it as inspiration for your own setup.
Note: This is configured for my specific needs. It could be improved by parameterizing settings to make it more reusable for others.
- Command Line Tools - Xcode command line tools
- Homebrew packages - git, wget, curl, vim, python3, node, npm, git-delta, lazygit, onefetch, aria2, gh, mint, graphviz, and more
- Xcode - iOS/macOS development toolchain
- Mint packages - Swift tools (xcparse, spmgraph)
- Ruby - Ruby environment for development
- Zed - Code editor configuration
- Git - Global git configuration and SSH signing setup
- SSH - SSH keys and known hosts
- macOS defaults - System preferences (Dock, Finder, keyboard, trackpad, screenshots)
- macOS (Intel or Apple Silicon)
- The setup script will automatically install Homebrew and Ansible if needed
Run the full setup:
./setup.shDry-run to see what would change:
./setup.sh -cRun with verbose output:
./setup.sh -vInstall specific Xcode version (defaults to the latest):
./setup.sh --xcode-version 16.0
./setup.sh --xcode-version --latestUse tags to run only specific parts:
# Install only Homebrew packages
./setup.sh -t brew
# Configure only git
./setup.sh -t git_config
# Setup SSH and known hosts
./setup.sh -t ssh,known_hosts
# Skip Xcode and Mint dependencies
./setup.sh -s xcode
# Skip configuring macOS system defaults
./setup.sh -s macos_defaults
# Skip installing the Zed editor
./setup.sh -s zedcommand_line_tools- Xcode command line toolsbrew- Homebrew packagesruby- Ruby environmentxcode- Xcode installationmint- Mint Swift packageszed- Zed editor configurationgit_config- Git configurationssh- SSH setupknown_hosts- SSH known hostsmacos_defaults- macOS system preferencestooling- All tooling setup (command_line_tools, git_config, ssh, known_hosts)dependencies- All dependencies (brew, ruby, mint)applications- All applications (zed, xcode)macos- macOS settings (macos_defaults)
- It uses most of @unnamedd's cool git config setup
- The idea to create my own macOS setup dates back to when @pietrocaselani first showed me his own