brew-cask
Install macOS GUI applications with Homebrew
TLDR
Search for formulas and casks
Install a cask
List all installed casks
List installed casks that have newer versions available
Upgrade an installed cask (if no cask name is given, all installed casks are upgraded)
Uninstall a cask
Uninstall a cask and remove related settings and files
Display information about a given cask
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.