Need help with homebrew-command-not-found?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

266 Stars 35 Forks MIT License 1.5K Commits 0 Opened issues


🔍 Ubuntu’s command-not-found equivalent for Homebrew on macOS

Services available


Need anything else?

Contributors list

Homebrew Command Not Found

This project reproduces Ubuntu’s

for Homebrew users on macOS.

GitHub Actions

On Ubuntu, when you try to use a command that doesn’t exist locally but is available through a package, Bash will suggest you a command to install it. Using this script, you can replicate this feature on macOS:

# on Ubuntu
$ when
The program 'when' is currently not installed.  You can install it by typing:
sudo apt-get install when

on macOS with Homebrew

$ when The program 'when' is currently not installed. You can install it by typing: brew install when

Over 5000 formulae are supported, representing more than 17000 different commands (100% of the main Homebrew repo).


First, tap this repository:

brew tap homebrew/command-not-found
  • Bash and Zsh: Add the following line to your

    (bash) or
    HB_CNF_HANDLER="$(brew --repository)/Library/Taps/homebrew/homebrew-command-not-found/"
    if [ -f "$HB_CNF_HANDLER" ]; then
    source "$HB_CNF_HANDLER";
  • Fish: Add the following line to your

    set HB_CNF_HANDLER (brew --repository)"/Library/Taps/homebrew/homebrew-command-not-found/"
    if test -f $HB_CNF_HANDLER
       source $HB_CNF_HANDLER


This tool requires one of the following:

  • Zsh (the default on macOS Catalina and above)
  • Bash (version 4 and higher)
  • Fish

How it works

When you tap the repo you’ll get two more

brew which-formula
brew which-update
. The first one uses a database file which gives you the formula you have to install in order to get a specific command. The file is generated by the second command by crawling all installed formulae and collecting their binaries. Having this as a tap means you get an up-to-date binaries database each time you run
brew update

script defines a
function which is used by Bash when you try a command that doesn’t exist. The function calls
brew which-formula
on your command, and if it finds a match it’ll print it to you. If not, you’ll get an error as expected.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.