homebrew
Homebrew Package Manager
Complete Homebrew command reference and usage guide for installing, managing, and troubleshooting macOS packages.
When to Use
- Installing packages or applications (
brew install X) - Searching for available packages (
brew search X) - Updating and upgrading existing packages
- Checking package information and dependencies
- Troubleshooting installation issues
- Managing installed packages
Command Reference
Package Search & Information
brew search TEXT|/REGEX/
Usage: Find packages by name or regex pattern When to use: When user asks to find or search for a package Examples:
brew search python
brew search /^node/
brew info [FORMULA|CASK...]
Usage: Display detailed information about one or more packages When to use: Before installing to see dependencies, options, and details Examples:
brew info python
brew info chrome google-chrome
Installation & Upgrades
brew install FORMULA|CASK...
Usage: Install one or more packages or applications When to use: When user says "install X" or "use brew to install X" Notes:
- FORMULA = command-line tools (installed to /usr/local/bin)
- CASK = GUI applications (installed to /Applications)
- Can install multiple at once:
brew install git python nodejsExamples:
brew install python
brew install google-chrome # installs as cask
brew install git python nodejs
brew update
Usage: Fetch the newest version of Homebrew and all formulae When to use: When brew seems outdated or before major operations Notes: Doesn't upgrade packages, just updates the package list Examples:
brew update
brew upgrade [FORMULA|CASK...]
Usage: Upgrade installed packages or specific packages When to use: When user wants to update to newer versions Notes:
- Without args: upgrades all outdated packages
- With args: upgrades only specified packages Examples:
brew upgrade # upgrade all outdated packages
brew upgrade python # upgrade just python
brew upgrade python git # upgrade multiple
Package Management
brew uninstall FORMULA|CASK...
Usage: Remove installed packages When to use: When user wants to remove/delete a package Notes: Can uninstall multiple at once Examples:
brew uninstall python
brew uninstall google-chrome
brew list [FORMULA|CASK...]
Usage: List installed packages or files from specific packages When to use: When user wants to see what's installed or what files a package contains Examples:
brew list # show all installed packages
brew list python # show files installed by python
Configuration & Troubleshooting
brew config
Usage: Display Homebrew configuration and environment info When to use: Debugging installation issues or checking system setup Shows:
- Installation path
- Xcode location
- Git version
- CPU architecture Examples:
brew config
brew doctor
Usage: Check for potential problems with Homebrew installation When to use: When experiencing installation issues or errors Returns: Warnings and suggestions for fixing issues Examples:
brew doctor
brew install --verbose --debug FORMULA|CASK
Usage: Install with verbose output and debug information When to use: When standard install fails and you need detailed error messages Examples:
brew install --verbose --debug python
Advanced Usage
brew create URL [--no-fetch]
Usage: Create a new formula from source code When to use: Creating custom packages (advanced users) Options:
--no-fetch= don't download source immediately Examples:
brew create https://example.com/package.tar.gz
brew edit [FORMULA|CASK...]
Usage: Edit formula or cask definition When to use: Customizing package installation (advanced users) Examples:
brew edit python
brew commands
Usage: Show all available brew commands When to use: Learning about additional brew features Examples:
brew commands
brew help [COMMAND]
Usage: Get help for specific command When to use: Need detailed help for a specific command Examples:
brew help install
brew help upgrade
Quick Reference
| Task | Command |
|---|---|
| Search for package | brew search TEXT |
| Get package info | brew info FORMULA |
| Install package | brew install FORMULA |
| Install app | brew install CASK |
| Update package list | brew update |
| Upgrade all packages | brew upgrade |
| Upgrade specific package | brew upgrade FORMULA |
| Remove package | brew uninstall FORMULA |
| List installed | brew list |
| Check config | brew config |
| Troubleshoot | brew doctor |
Common Workflows
Installing a New Package
- Search:
brew search python - Get info:
brew info python@3.11 - Install:
brew install python@3.11
Troubleshooting Installation
- Check config:
brew config - Run doctor:
brew doctor - Retry with debug:
brew install --verbose --debug FORMULA
Maintaining Homebrew
- Update:
brew update - Check what's outdated:
brew upgrade(shows what would upgrade) - Upgrade all:
brew upgrade
Key Concepts
FORMULA: Command-line tools and libraries (e.g., python, git, node)
CASK: GUI applications (e.g., google-chrome, vscode, slack)
TAP: Third-party formula repositories (e.g., brew tap homebrew/cask-versions)
Notes
- All brew commands require Homebrew to be installed
- Xcode Command Line Tools are required for building from source
- Some packages may prompt for sudo password
- Different packages have different installation times
- Package names are case-insensitive but shown lowercase by convention
Resources
- Official docs: https://docs.brew.sh
- Formula documentation: https://github.com/Homebrew/homebrew-core
- Cask documentation: https://github.com/Homebrew/homebrew-cask