How to Build a Bulk App Installer for a New Mac Using Homebrew

·
7 min read

Switching to Mac is reader-supported. We may earn a commission when you buy through links on our site. Learn more.

Setting up a new Mac, or wiping and reinstalling macOS Sequoia, is exciting right up until you have to reinstall every single app. One by one. Hunting down download pages, clicking through installers, waiting. It’s the worst part of a fresh start.

There’s a better way. With Homebrew and a Brewfile, you can install every app you care about with a single Terminal command. Run it, go make coffee, come back to a fully loaded Mac.

Here’s how to set it up.

Terminal window on macOS Sequoia showing the Homebrew installation command being run, with output indicating successful install to /opt/homebrew on Apple Silicon

What Is Homebrew?

Homebrew is a package manager for macOS, it downloads and installs software from the command line, no browser required. It handles both command-line tools (called formulae) and full GUI apps (called casks). Think of it as an App Store you control entirely from Terminal.

Coverage is excellent. Chrome, Firefox, VS Code, Slack, Zoom, Docker, they’re all there. Obscure CLI tools too. The main thing Homebrew can’t install is anything locked exclusively to the Mac App Store.

HomeBrew icon

Before You Start

You’ll need a couple of things in place before Homebrew will install cleanly on macOS Sequoia.

  • Xcode Command Line Tools: Homebrew needs these. If you haven’t installed them, run xcode-select --install in Terminal first and follow the prompts.
  • Terminal Full Disk Access: macOS Sequoia’s tightened privacy settings can block Homebrew from writing to certain directories. Go to System Settings > Privacy & Security > Files and Folders and make sure Terminal has the access it needs. (If you’re using a third-party terminal like iTerm2, grant it access there instead.)
macOS Sequoia System Settings > Privacy & Security > Files and Folders with Terminal listed and full disk access enabled

Installing Homebrew

Open Terminal (Cmd + Space, type “Terminal”, hit Enter) and run this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Terminal window showing the Homebrew install command typed out, with the script beginning to run and prompting for the user's password

The installer will walk you through everything, including installing Xcode Command Line Tools if you skipped that step.

One thing to know: on Apple Silicon Macs (M1 through M4 and beyond), Homebrew installs to /opt/homebrew instead of /usr/local like it did on Intel. After the install finishes, the script will tell you to add Homebrew to your PATH. For Apple Silicon, that means running:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

Then restart Terminal (or run source ~/.zprofile) so the change takes effect. Skip this and brew commands won’t be recognized.

Verify the install worked:

brew doctor

You want to see “Your system is ready to brew.” If you see warnings, Homebrew will usually tell you exactly how to fix them.

Finding the Right Package Names

Before building your installer list, you need the exact Homebrew names for your apps. Search from Terminal:

brew search chrome
Terminal window showing the output of "brew search chrome" with google-chrome listed under Casks and related formulae listed separately

The results are split into Formulae (CLI tools) and Casks (GUI apps). For most apps you’d install on a fresh Mac, you want the Cask version. That’s the full application, not a command-line interface to it.

For Google Chrome, the cask name is google-chrome. That’s what goes in your list. Get the name wrong and the install will fail, so always double-check with brew search first.

You can also browse the full catalog at formulae.brew.sh if you prefer a visual interface.

Building Your Brewfile

This is where the old approach (a shell script full of brew cask install commands) has been replaced by something cleaner: a Brewfile. It’s a plain text file that lists everything you want installed, and Homebrew reads it in one shot.

Create a new Brewfile anywhere convenient, your home directory works well:

vim ~/Brewfile

(Or use nano if you’re not comfortable with vim. No judgment.)

Inside the file, list your apps like this:

tap "homebrew/cask"

# GUI apps
cask "google-chrome"
cask "firefox"
cask "visual-studio-code"
cask "slack"
cask "zoom"
cask "dropbox"
cask "vlc"

# CLI tools
brew "git"
brew "wget"
brew "node"

Use cask for GUI applications and brew for command-line tools. The tap "homebrew/cask" line at the top tells Homebrew where to look for casks. Include it.

Comments (lines starting with #) are fine and genuinely useful when you revisit this file six months later wondering why you installed something.

Save and close the file when you’re done.

Running the Bulk Install

With your Brewfile saved, install everything in it with one command:

brew bundle --file=~/Brewfile
Terminal window showing "brew bundle" running with multiple casks and formulae being downloaded and installed sequentially, progress output visible

Homebrew will work through the list top to bottom, downloading and installing each item. Depending on how many apps you have and your internet speed, this takes anywhere from a few minutes to half an hour. You don’t need to babysit it.

If one install fails (a package name changed, or something conflicts), Homebrew will log the error and move on to the next item. You won’t lose the whole run over one bad package.

Save the Brewfile Somewhere Safe

This file is only useful if you can access it when you need it, which is exactly when you’re setting up a machine that doesn’t have your files yet. Store it somewhere you can always reach:

  • A private GitHub or GitLab repository (version control is a bonus)
  • iCloud Drive
  • A USB drive you keep with your other important stuff

A lot of people keep their Brewfile in a dotfiles repo alongside their shell config, VS Code settings, and other system preferences. That way, setting up a new Mac is a matter of cloning one repo and running two commands.

Keeping Things Updated

Once Homebrew is installed and your apps are in place, maintenance is minimal:

brew update && brew upgrade

This updates Homebrew itself and upgrades any outdated packages. Run it occasionally. Monthly is fine for most people.

Also worth running periodically to keep your disk from filling up with old package versions:

brew cleanup

Troubleshooting Common Issues

brew command not found after install

You probably skipped the PATH setup step. On Apple Silicon, run echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile, then restart Terminal.

Packages breaking after a macOS Sequoia upgrade

This happens. MariaDB and some other packages are known to need a reinstall after major macOS upgrades. Run brew doctor first. It’ll flag what’s broken. Then brew reinstall <package> for anything that needs it.

Intel Mac on macOS Sequoia, install fails

Apple Silicon gets pre-compiled binaries (bottles) for most packages. Intel Macs on Sequoia sometimes have to build from source, which takes longer and occasionally fails. Try:

brew install --build-from-source <package>

Permission errors during install

Go back to System Settings > Privacy & Security > Files and Folders and confirm Terminal has the access it needs. macOS Sequoia is stricter about this than previous versions.

Rosetta conflicts on Apple Silicon

If you’re running an x86_64 package under ARM64 and it’s failing, try forcing the native architecture:

arch -arm64 brew install <package>

A Note on Homebrew Cask vs. the Old Approach

If you used Homebrew years ago, you might remember running separate brew tap caskroom/cask commands and writing shell scripts with lines like brew cask install google-chrome. That syntax is deprecated. Cask is now built into Homebrew, and brew bundle with a Brewfile is the current standard approach: cleaner, more portable, and easier to maintain.

The old shell script method still technically works for basic installs, but Brewfiles are the way to go if you’re setting this up fresh in 2026.

You’re Set

One Brewfile, one command, one cup of coffee. That’s the whole setup. The next time you get a new Mac or do a clean install, you’re not spending an afternoon clicking through download pages. You’ll be up and running in the time it takes Homebrew to do its thing.

Keep the Brewfile updated as your app preferences change, and it’ll always reflect exactly what you want on a fresh machine.