finds.dev← search

// the find

geerlingguy/mac-dev-playbook

★ 6,990 · Shell · NOASSERTION · updated Jun 2026

Mac setup and configuration via Ansible.

An Ansible playbook by Jeff Geerling (author of 'Ansible for DevOps') that automates Mac dev environment setup — Homebrew packages, cask apps, dotfiles, macOS defaults, and App Store installs via mas. Primarily his personal setup, but structured so you can layer your own config.yml on top without forking. Aimed at developers who want repeatable Mac provisioning.

The config override pattern (default.config.yml + your config.yml) is clean — you get updates from upstream without merge conflicts on your customizations. CI runs against real GitHub Actions macOS runners, so breakage gets caught before you run it on a new machine. The from-scratch guide (full-mac-setup.md) documents the pre-Ansible manual steps that automation genuinely can't handle, which saves you from discovering them mid-run. Actively maintained — last push was four days ago.

This is one person's personal setup first, a general-purpose tool second. The default package list (ChromeDriver, Handbrake, nvALT, Sublime Text) tells you whose Mac this is, and if you fork for your team you'll spend the first hour stripping defaults. No multi-user or team workflow story — sharing a base playbook across a team of five with different toolchains is left entirely to you. The Ansible bootstrap step still requires sudo pip3 and manual PATH manipulation before any automation kicks in, which is the most fragile part of any Mac provisioning story and hasn't been solved. mas (Mac App Store CLI) requires the apps to already be purchased on the Apple ID running the playbook, so App Store automation silently fails for anyone on a new account.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →