Bootstrap a fresh macOS machine with a single command. Installs Homebrew, dev tools, apps, and Oh My Zsh.
git clone <repo-url> && cd InstallMyMac
./install.shThis installs the core set of packages defined in Brewfile (CLI tools, casks, Mac App Store apps) and sets up Oh My Zsh.
Additional packages are split into category Brewfiles that can be installed on demand:
| Flag | Brewfile | Contents |
|---|---|---|
--games |
Brewfile.games |
Discord, Steam, Epic Games, OpenEmu, ... |
--entertainment |
Brewfile.entertainment |
HandBrake, Calibre, DaVinci Resolve, ... |
--photography |
Brewfile.photography |
Affinity Photo, Affinity Publisher |
# Install specific categories
./install.sh --games --photography
# Install everything
./install.sh --alluninstall.sh parses category Brewfiles and removes each package:
brewformulas andcaskapps are removed viabrew uninstall- Mac App Store apps are opened in AppCleaner for a clean removal (the script waits for confirmation before continuing)
# Uninstall specific categories
./uninstall.sh --entertainment
# Uninstall all optional categories
./uninstall.sh --all# Check what would be installed
brew bundle check
# Update the Brewfile from currently installed packages
brew bundle dump --forceSome casks (e.g. qlmarkdown, glance-chamburr) are not code-signed or notarized. macOS Gatekeeper will block them until the quarantine flag is removed manually:
xattr -rd com.apple.quarantine /Applications/QLMarkdown.app
xattr -rd com.apple.quarantine /Applications/Glance.appThen launch the app once and enable the extension under System Settings → General → Login Items & Extensions → Quick Look.
Note: Homebrew will disable unsigned/unnotarized casks from its official repository on 2026-09-01. Apps already installed will keep working; updates will need to come from third-party taps or signed releases.
- macOS
- An Apple ID signed into the Mac App Store (for
masentries) - AppCleaner is installed automatically as part of the base Brewfile