The macOS & Linux package manager

One line to install anything — and remember it tomorrow.

Homebrew is the missing installer for the Unix-y world. Thousands of CLI tools and macOS apps, one command to install, one command to upgrade, one command to remove. Open-source, community-maintained, used by millions of developers daily.

The problem it solves

Before Homebrew, installing a thing was a thing.

Every tool came with its own ritual: chase down a binary, fight with permissions, scatter files in places you'd never find again. Homebrew collapses that into one verb.

Without a package manager
  • Hunt through vendor websites for the right installer for your CPU.
  • Fight macOS Gatekeeper, sudo prompts, and arbitrary install paths.
  • Files scatter across /usr/local, /opt, ~/Library — no clean way to list what you have.
  • Upgrades and removals are manual, error-prone, and easy to forget.
With Homebrew
  • One command, one canonical source — brew install <name>.
  • Sandboxed prefix (/opt/homebrew on Apple Silicon) with predictable structure.
  • brew list shows everything you have; brew info <name> tells you about it.
  • brew upgrade keeps your toolbox current; brew uninstall cleans up after itself.
The two flavours

Formulae and casks.

Homebrew packages come in two shapes. Same install verb, different destinations — and once you see the split, every `brew install` command starts to make sense.

brew install <formula>

Formula

Command-line tools, libraries, daemons

Compiled from source or installed as a pre-built “bottle” (a tarball matched to your macOS version + chip). Files land in a versioned Cellar at /opt/homebrew/Cellar and get symlinked onto your PATH.

  • Lives in /opt/homebrew/Cellar (or /usr/local/Cellar on Intel)
  • Bottled when possible — install in seconds, not minutes
  • Works on macOS and Linux (via Linuxbrew)
Examplesgitnodepythonffmpegpostgresqlawscli
$ brew install git
brew install --cask <cask>

Cask

macOS GUI applications

Pre-built .app bundles or vendor installers (signed DMGs, PKGs) wrapped in a Homebrew recipe. Apps drop into /Applications just like a manual install — but Homebrew tracks the version and handles upgrades.

  • Drops .app bundles straight into /Applications
  • Trusts the vendor’s installer; Homebrew verifies the checksum
  • macOS-only (casks are unsigned binaries; brew refuses them on Linux)
Examplesvisual-studio-codeslackdocker-desktopfirefoxiterm2
$ brew install --cask visual-studio-code
Under the hood

What happens when you run `brew install`.

Four steps from a name on your keyboard to a working tool on your machine.

  1. 01

    Resolve

    Homebrew looks up the package definition in its taps (formulae.brew.sh by default), then in any third-party taps you’ve added.

  2. 02

    Download

    It fetches either a pre-built bottle from GitHub Container Registry or the original source archive, verifying the checksum every time.

  3. 03

    Install

    Files land in a versioned directory under the Homebrew prefix; binaries are symlinked onto your PATH and apps drop into /Applications.

  4. 04

    Manage

    One tool from then on — brew list, brew info, brew upgrade, brew uninstall. Reproduce a setup with brew bundle dump and brew bundle install.

Now go build your machine.

Browse the full catalog, drop the tools you need into a bundle, and copy a single install command for your terminal.