How to see what Homebrew packages are taking up space on macOS

brew list tells you what is installed, not what it costs. The biggest package on your Mac is often a dependency you never chose. Here is how to measure the real footprint.

Updated 2 November 2026 · 6 minute read

The quick answer

Homebrew keeps formulae in a directory called the Cellar. Ask Homebrew where it is, then measure every package in it:

du -sh "$(brew --cellar)"/* | sort -h | tail -20

That prints the 20 largest formulae, smallest first. On Apple Silicon the Cellar is usually /opt/homebrew/Cellar; on Intel it is usually /usr/local/Cellar. Using $(brew --cellar) works on both and avoids hard-coding the path.

For the total:

du -sh "$(brew --cellar)"

These numbers are approximate. APFS clones and hard links can make a directory look larger than the space it actually occupies. For comparing packages, the ranking is still useful.

Why brew list does not show size

brew list is an inventory, not a disk report. Homebrew's metadata knows the files a formula installed, but the operating system owns the actual blocks. Tools such as du ask the filesystem, which is why they see the real number.

You can also ask Homebrew for a package's details:

brew info ffmpeg

The output includes the install path, dependencies and whether the package was installed as a dependency. It is useful context, but the size still comes from the filesystem.

Formulae, casks and the Caskroom

Homebrew formulae are command-line tools and libraries. Casks are usually GUI applications, and they install into /Applications plus a copy in the Caskroom:

# list GUI apps installed with Homebrew
brew list --cask

# measure the applications themselves
du -sh /Applications/*.app | sort -h | tail -20

# the Caskroom holds metadata and sometimes staged files
du -sh "$(brew --prefix)/Caskroom"

If a cask appears in both places, the application bundle is usually the larger copy. Some casks also install support files in ~/Library, which du will not attribute to Homebrew.

Separate your tools from dependencies

This is the part that changes how you read the list. A formula such as ffmpeg may pull in dozens of libraries — aom, libvpx, opus, x264. They are real packages, but you never asked for them.

Homebrew can show the top-level packages you chose:

brew leaves

And the dependencies of a specific formula:

brew deps --installed --tree ffmpeg

If you remove a top-level tool, its dependencies may remain. List the ones nothing else needs:

brew autoremove --dry-run

Review the list before running brew autoremove. A library can be unused by Homebrew and still be used by a language runtime or a tool installed outside Homebrew.

Clean up old versions and downloads

A package you still use can have several old versions and cached bottles. This is usually the safest space to reclaim:

brew cleanup --dry-run
brew cleanup

brew cleanup removes old versions of installed formulae and stale downloads. It does not uninstall the current version of anything.

What is safe to delete?

A formula can be both a dependency and a tool you use directly. brew leaves is a guide, not a verdict.

See the whole picture, not just Homebrew

Dronagiri is a free, open-source macOS package manager that puts Homebrew formulae and casks, npm globals, pipx tools, Cargo crates, RubyGems and Go binaries in one table — with real sizes, install dates, last-used evidence and dependencies. Select a row, press d, and it asks twice before removing anything.

Install Dronagiri

FAQ

Why is the Cellar size larger than the space I reclaim?

APFS clones and hard links can make multiple paths point at the same blocks. du may count them more than once. Treat the number as a ranking, not an exact accounting of freed space.

Does brew cleanup uninstall packages?

No. It removes old versions and cached downloads of packages you still have installed. Use brew uninstall to remove a package.

How do I find the largest GUI app installed by Homebrew?

Run brew list --cask for the names, then du -sh /Applications/*.app | sort -h | tail -20 for the sizes. The application bundle is usually the main cost; the Caskroom copy is smaller.

Is brew autoremove safe?

It removes formulae that no installed formula depends on. That is usually safe, but review brew autoremove --dry-run first if you use libraries from outside Homebrew.