About Brewfiles
What exactly is a Brewfile?
A Brewfile is a plain-text manifest read by Homebrew's brew bundle command. It lists every command-line formula, graphical cask, third-party tap, Mac App Store app, and VS Code extension you want on a machine. Because it is just text, it can be committed to Git, shared, and replayed on any computer to reproduce your setup.
How is a Brewfile different from running brew install a bunch of times?
Functionally the end state is similar, but a Brewfile captures the whole list in one declarative file. That means you can rebuild a machine in a single command, see your toolset at a glance, track changes over time in version control, and share it with teammates — none of which a series of one-off installs gives you.
Where should I keep my Brewfile?
The most common place is a dotfiles repository on GitHub, so it lives alongside your shell and editor configuration and is automatically version-controlled. Some people keep it at ~/Brewfile; either works, but version control is what makes it valuable long-term.
Will a Brewfile remove things I have installed manually?
Not unless you ask it to. brew bundle install only adds what is missing and never deletes anything. Removal only happens if you explicitly run brew bundle cleanup --force, which prunes installed packages that are not listed in the file.
About Homebrew
Do I need sudo to use Homebrew?
Generally no. Homebrew installs into its own directory (/opt/homebrew on Apple Silicon, /usr/local on Intel) that your user owns, so day-to-day installs do not require administrator rights. This is a deliberate safety feature.
What is the difference between a formula and a cask?
A formula is a command-line tool or library (like git or node). A cask is a full graphical macOS application (like Visual Studio Code or Firefox). In a Brewfile they appear as brew "…" and cask "…" lines respectively.
Does any of this work on Linux?
Yes — Homebrew runs on Linux, and brew bundle behaves the same way for formulae and taps. The exceptions are cask and mas entries, which install macOS apps and the Mac App Store and therefore only apply on a Mac.
How do I keep everything up to date?
A simple routine covers it: brew update refreshes the catalog, brew upgrade updates your installed packages, and brew cleanup removes old versions to reclaim disk space. Running the three together periodically keeps a machine healthy.
About this site
How do I upload my own Brewfile?
Run npx share-brewfiles in your terminal. It detects the apps in your dock, uploads any icons not already in the database, and renders your setup as a dock on the site so others can explore it.
Why would I want to see other people's Brewfiles?
It is one of the fastest ways to discover tools you did not know existed. Real Brewfiles reveal which CLIs, editors, and apps experienced developers actually keep around — far more honest than a "top 10 tools" listicle. The search and leaderboard make those patterns easy to find.
Is my Brewfile private?
Brewfiles shared on this site are public so other developers can browse and learn from them — that is the point of the site. Only upload a Brewfile you are comfortable sharing, and review it first if it contains any private taps or internal tools.
Still curious?
These guides go further on each topic:
How Homebrew works →
The package manager explained from first principles.
Create a Brewfile →
Generate, read, and maintain your own file step by step.