Homebrew's internal vocabulary sounds whimsical — there's a Cellar, formulae, casks, bottles, taps, and a Keg — but every word maps to a precise concept. Knowing the words means you can read brew's output instead of squinting at it.
Formulae are Ruby files that describe how to install a CLI tool or library. They live in the homebrew-core tap. Casks are similar but describe how to install a macOS GUI application — they live in homebrew-cask. The same brew install command handles both, so the only practical difference is whether you add --cask.
Bottles are pre-compiled binary archives stored on GitHub Container Registry. When you brew install python, you almost always get a bottle — Homebrew downloads the prebuilt binary, unpacks it into the Cellar, and you're done in seconds. If a bottle isn't available for your macOS+architecture, Homebrew falls back to building from source, which can take minutes to hours.
The Cellar (/opt/homebrew/Cellar/) is where every installed formula physically lives — each formula gets its own versioned subdirectory, like git/2.45.0/. Homebrew creates symlinks from the Cellar into /opt/homebrew/bin/ so the tools land in your PATH. A single physical directory in the Cellar is called a Keg.
Taps are git repositories of additional formulae or casks — third-party collections you can add. The two built-in taps (homebrew/core and homebrew/cask) cover most needs, but specialized taps exist for fonts, niche tools, and vendor-specific software.