LinuxCommandLibrary

brew-cask

Install macOS GUI applications with Homebrew

TLDR

Search for formulas and casks

$ brew search [text]
copy


Install a cask
$ brew install --cask [cask_name]
copy


List all installed casks
$ brew list --cask
copy


List installed casks that have newer versions available
$ brew outdated --cask
copy


Upgrade an installed cask (if no cask name is given, all installed casks are upgraded)
$ brew upgrade --cask [cask_name]
copy


Uninstall a cask
$ brew uninstall --cask [cask_name]
copy


Uninstall a cask and remove related settings and files
$ brew zap --cask [cask_name]
copy


Display information about a given cask
$ brew info --cask [cask_name]
copy

SYNOPSIS

`brew cask <command> [options] [arguments]
Common commands include:
  `brew cask install <cask_name> [...cask_name]`
  `brew cask uninstall <cask_name> [...cask_name>]`
  `brew cask upgrade [cask_name] [...cask_name>]`
  `brew cask search <text>`
  `brew cask list`
  `brew cask doctor`

PARAMETERS

`--force`
    (For `install`, `uninstall`, `zap`, `reinstall`) Reinstall an existing Cask or force an operation.

`--no-quarantine`
    (For `install`, `upgrade`) Install or upgrade without applying macOS quarantine attributes (use with caution).

`--greedy`
    (For `upgrade`) Include Casks that are not typically auto-updating (e.g., Electron-based apps that update themselves).

`--verbose`
    (General) Display more detailed output during command execution.

DESCRIPTION

Homebrew Cask, invoked via `brew cask`, is an extension to the popular Homebrew package manager specifically designed for macOS graphical user interface (GUI) applications. While Homebrew traditionally handles command-line tools and libraries, Homebrew Cask automates the installation, updating, and uninstallation of applications typically distributed as `.app` bundles, disk images (`.dmg`), or installers (`.pkg`). It replaces the manual process of downloading a `.dmg` file, dragging an application to the Applications folder, and cleaning up. Instead, users define applications using Ruby-based DSL files called Casks, which specify download URLs, checksums, and installation procedures. This integration brings the power of package management to macOS GUI apps, ensuring they are easily discoverable, kept up-to-date, and cleanly removed, contributing to a more organized and efficient macOS environment.

CAVEATS

  • `brew cask` is exclusively for macOS and requires Homebrew to be installed.
  • It cannot manage applications installed directly from the Mac App Store.
  • Some applications may have unique installation or update mechanisms that are not fully supported or require manual intervention.
  • Using `--no-quarantine` can pose a security risk as it bypasses macOS's Gatekeeper checks.

<B>CASK FILES</B>

Casks are Ruby DSL (Domain Specific Language) files that define how to download, install, and manage a specific macOS application. They specify the application's source URL, checksum, installation type, and other relevant details, automating the entire process. Users can also create their own custom Casks.

<B>APPLICATION LOCATIONS</B>

By default, `brew cask` installs applications into the user's `~/Applications` directory if it exists and is writable, otherwise into `/Applications`. This mimics the standard macOS application installation behavior.

<B>`ZAP` SUBCOMMAND</B>

The `brew cask zap` command is an enhanced version of `uninstall` that not only removes the application but also attempts to clean up associated configuration files, caches, and application support files, providing a more complete removal.

HISTORY

Homebrew Cask began as a separate, independent project named "Homebrew-cask" (a GitHub repository) in 2012, aiming to extend Homebrew's capabilities to manage macOS graphical applications. Its popularity grew rapidly, filling a significant gap in macOS application management beyond the App Store. Due to its widespread adoption and essential functionality, the project was officially merged into the core Homebrew organization and became a built-in subcommand, `brew cask`, around 2014-2015. This integration streamlined the user experience, making it easier for Homebrew users to manage both command-line tools and GUI applications through a single ecosystem.

SEE ALSO

brew(1): The Homebrew package manager, parent command to `brew cask`., man(1): Displays online manual pages.

Copied to clipboard