SIGN IN SIGN UP
Homebrew / brew UNCLAIMED

🍺 The missing package manager for macOS (or Linux)

2025-09-19 12:07:29 -04:00
# Command Not Found
This feature reproduces Ubuntu's `command-not-found` for Homebrew users on macOS.
On Ubuntu, when you try to use a command that doesn't exist locally but is
available through a package, Bash will suggest a command to install it.
Using this script, you can replicate this feature on macOS:
```console
$ when
The program 'when' is currently not installed. You can install it by typing:
brew install when
```
## Install
Installation instructions for your shell can be viewed by running:
```bash
brew command-not-found-init
```
* **Bash and Zsh**: Add the following line to your `~/.bash_profile` (bash) or `~/.zshrc` (zsh):
```bash
HOMEBREW_COMMAND_NOT_FOUND_HANDLER="$(brew --repository)/Library/Homebrew/command-not-found/handler.sh"
if [ -f "$HOMEBREW_COMMAND_NOT_FOUND_HANDLER" ]; then
source "$HOMEBREW_COMMAND_NOT_FOUND_HANDLER";
fi
```
* **Fish**: Add the following line to your `~/.config/fish/config.fish`:
```fish
set HOMEBREW_COMMAND_NOT_FOUND_HANDLER (brew --repository)/Library/Homebrew/command-not-found/handler.fish
if test -f $HOMEBREW_COMMAND_NOT_FOUND_HANDLER
source $HOMEBREW_COMMAND_NOT_FOUND_HANDLER
end
```
## Requirements
This tool requires one of the following:
* [Zsh](https://www.zsh.org) (the default on macOS Catalina and above)
* [Bash](https://www.gnu.org/software/bash/) (version 4 and higher)
* [Fish](https://fishshell.com)
## How it works
The `handler.sh` script defines a `command_not_found_handle` function which is
used by Bash when you try a command that doesn't exist.
The function calls `brew which-formula --explain` on your command.
If it finds a match it will print installation instructions.
If not, you'll get an error as expected.