One file, identical packages
brew bundle + a Brewfile is the macOS equivalent of requirements.txt — declarative package management. List your packages once; every machine that runs brew bundle ends up with the same set installed. Combined with a dotfiles repo, new-machine setup is two commands.
What goes in a Brewfile
brew "name"— CLI tools (git, ripgrep, jq, mtr).cask "name"— GUI apps (Tailscale, iTerm2, VS Code).tap "user/repo"— third-party formulas not in the main brew.mas "App Name", id: 12345— App Store apps via themasCLI.