homebrew-cask

How to Use Homebrew Cask

Frequently Used Commands

Homebrew Cask is implemented as part of Homebrew. All Homebrew Cask commands begin with brew, which works for both Casks and Formulae. The most frequently-used commands are:

Searching for Casks

To search for Casks, use brew search. Let’s see if there’s a Cask for Google Chrome:

$ brew search google-chrome
==> Casks
google-chrome                google-chrome-beta           google-chrome-canary         google-chrome-dev

Installing Casks

The command brew install accepts one or multiple Cask tokens. Let’s try to install Google Chrome:

$ brew install google-chrome
==> Downloading https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'google-chrome'.
==> Installing Cask google-chrome
==> Moving App 'Google Chrome.app' to '/Applications/Google Chrome.app'.
🍺  google-chrome was successfully installed!

Uninstalling Casks

Easy peasy:

$ brew uninstall google-chrome

This will both uninstall the Cask and remove applications which were moved to /Applications.

Other Commands

The following commands are for Cask authors:

The following aliases and abbreviations are provided for convenience:

Tab Completion

Homebrew Cask comes with bash and zsh completion for the brew command.

See https://docs.brew.sh/Shell-Completion for more information.

fish completions can be installed with:

$ brew install brew-cask-completion

Inspecting Installed Casks

List all installed Casks:

$ brew list --casks
atom          google-chrome     1password

With --full-name the Tap name will also be included, e.g.: purple/monkey/dishwasher for the Cask dishwasher installed from the Tap purple/monkey.

Given an installed Cask, brew list --casks <cask_name> lists the staged files.

Show details about a specific Cask:

$ brew info keepingyouawake
Error: No available formula with the name "keepingyouawake" 
Found a cask named "keepingyouawake" instead.

keepingyouawake: 1.5.2 (auto_updates)
https://keepingyouawake.app/
/usr/local/Caskroom/keepingyouawake/1.5.2 (129B)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/keepingyouawake.rb
==> Name
KeepingYouAwake
==> Description
Prevents your computer from going to sleep
==> Artifacts
KeepingYouAwake.app (App)

Updating/Upgrading Casks

Since the Homebrew Cask repository is a Homebrew Tap, you’ll pull down the latest Casks every time you issue the regular Homebrew command brew update. You can check for outdated Casks with brew outdated and install the outdated Casks with brew upgrade. Many applications update themselves, so their Casks are ignored by brew outdated and brew upgrade. This behaviour can be overridden by adding --greedy to the command.

Updating/Upgrading the Homebrew Cask Tool

Homebrew automatically taps and keeps Homebrew Cask updated. brew update is all that is required.

Additional Taps (optional)

The primary Homebrew Cask Tap includes most of the Casks that a typical user will be interested in. There are a few additional Taps where we store different kinds of Casks.

Tap name description
Homebrew/cask-versions contains alternate versions of Casks (e.g. betas, nightly releases, old versions)
Homebrew/cask-fonts contains Casks that install fonts
Homebrew/cask-drivers contains Casks that install drivers for various devices

You can tap any of the above with a brew tap command:

$ brew tap <tap_name>

after which, Casks from the new Tap will be available to search or install just like Casks from the main Tap. brew update will automatically keep your new Tap up to date.

You may also specify a fully-qualified Cask token (which includes the Tap) for any brew command. This will implicitly add the Tap if you have not previously added it with brew tap:

$ brew install homebrew/cask-fonts/font-symbola

Options

brew accepts a number of options:

You can also modify the default installation locations used when issuing brew install:

See man brew for the other default installation locations and the flags to change them.

To make these settings persistent, you might want to add the following line to your .profile, .bash_profile or .zprofile:

# Specify your defaults in this environment variable
export HOMEBREW_CASK_OPTS="--appdir=~/Applications --fontdir=/Library/Fonts"

Note that you still can override the environment variable HOMEBREW_CASK_OPTS by explicitly providing options in the command line:

# Will force the Chrome app to be moved to /Applications
# even though HOMEBREW_CASK_OPTS specified ~/Applications
$ brew install --appdir="/Applications" google-chrome

Other Ways to Specify a Cask

Most brew commands can accept a Cask token as an argument. As described above, the token on the command line can take the form of:

brew also accepts three other forms as arguments:

The last three forms are intended for users who wish to maintain private Casks.

Taps

You can add Casks to your existing (or new) Taps: just create a directory named Casks inside your Tap, put your Cask files there, and everything will just work.