In software development, you often manage all your dependencies through a package manager like NPM or NuGet. When it comes to software on our operating systems, we often break with this concept and install software from all various places. Homebrew Bundle takes back control.

If you regularly install software on your Mac or Linux machine, that does not come via the official App Stores, you might be familiar with Homebrew, a package manager for operating systems.  But did you know, that Homebrew can not only install command-line tools and frameworks, but also manage App Store applications?

Together with the Homebrew Bundle extension, we can even define a list of all installed software in a Brewfile. This works like every other package manager, so you can fire brew bundle on the command line and all the defined applications get installed.

tap "azure/functions"
tap "caskroom/cask"
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"

# Essentials
brew "tree"
brew "gettext", link: true
brew "fzf"
brew "python", link: false
brew "yarn"
brew "node@12"

# Kubernetes
brew "kubernetes-cli"
brew "kubectx"
brew "openshift-cli"
brew "helm"
brew "minikube"

# Azure
brew "azure-cli"
brew "azure/functions/azure-functions-core-tools@3"
brew "terraform"
cask "powershell"

# Dev
cask "dotnet-sdk"

# Fun
brew "cmatrix"
cask "spotmenu"

# Security
mas "1Password", id: 443987910

As you can see in the Brewfile example above, you can define a mix of application sources:

  • brew for regular Homebrew command-line apps
  • cask for desktop applications
  • mas for Apple App Store applications

It's especially cool that you can now use that Brewfile to setup a completely new machine with just a single command. Just make sure to backup your Brewfile safely!

☝️ Advertisement Block: I will buy myself a pizza every time I make enough money with these ads to do so. So please feed a hungry developer and consider disabling your Ad Blocker.