With \fB\-\-verbose\fR or \fB\-\-debug\fR, many commands print extra debugging information\. Note that these options should only appear after a command\.
Perform a substring search of cask tokens and formula names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. The search for \fItext\fR is extended online to \fBhomebrew/core\fR and \fBhomebrew/cask\fR\. If no search term is provided, all locally available formulae are listed\.
Homebrew Cask provides a friendly CLI workflow for the administration of macOS applications distributed as binaries\.
.
.P
Commands:
.
.IP"\(bu"4
\fB\-\-cache\fR
.
.br
Display the file used to cache a \fIcask\fR
.
.IP"\(bu"4
\fBaudit\fR
.
.br
Check \fIcask\fR for Homebrew coding style violations
.
.IP"\(bu"4
\fBcat\fR
.
.br
Dump raw source of a \fIcask\fR to the standard output
.
.IP"\(bu"4
\fBcreate\fR
.
.br
Creates the given \fIcask\fR and opens it in an editor
.
.IP"\(bu"4
\fBdoctor\fR
.
.br
Checks for configuration issues
.
.IP"\(bu"4
\fBedit\fR
.
.br
Open the given \fIcask\fR for editing
.
.IP"\(bu"4
\fBfetch\fR
.
.br
Downloads remote application files to local cache
.
.IP"\(bu"4
\fBhelp\fR
.
.br
Print help for \fBcask\fR commands
.
.IP"\(bu"4
\fBhome\fR
.
.br
Opens the homepage of the given \fIcask\fR
.
.IP"\(bu"4
\fBinfo\fR
.
.br
Displays information about the given \fIcask\fR
.
.IP"\(bu"4
\fBinstall\fR
.
.br
Installs the given \fIcask\fR
.
.IP"\(bu"4
\fBlist\fR
.
.br
Lists installed casks or the casks provided in the arguments
.
.IP"\(bu"4
\fBoutdated\fR
.
.br
List the outdated installed casks
.
.IP"\(bu"4
\fBreinstall\fR
.
.br
Reinstalls the given \fIcask\fR
.
.IP"\(bu"4
\fBstyle\fR
.
.br
Checks style of the given \fIcask\fR using RuboCop
.
.IP"\(bu"4
\fBuninstall\fR
.
.br
Uninstalls the given \fIcask\fR
.
.IP"\(bu"4
\fBupgrade\fR
.
.br
Upgrades all outdated casks or the specified casks
.
.IP"\(bu"4
\fBzap\fR
.
.br
Zaps all files associated with the given \fIcask\fR
.
.IP""0
.
.P
See also: \fBman brew\fR
.
.TP
\fB\-\-appdir\fR
Target location for Applications\. Default: \fB/Applications\fR
.
.TP
\fB\-\-colorpickerdir\fR
Target location for Color Pickers\. Default: \fB~/Library/ColorPickers\fR
.
.TP
\fB\-\-prefpanedir\fR
Target location for Preference Panes\. Default: \fB~/Library/PreferencePanes\fR
.
.TP
\fB\-\-qlplugindir\fR
Target location for QuickLook Plugins\. Default: \fB~/Library/QuickLook\fR
.
.TP
\fB\-\-mdimporterdir\fR
Target location for Spotlight Plugins\. Default: \fB~/Library/Spotlight\fR
.
.TP
\fB\-\-dictionarydir\fR
Target location for Dictionaries\. Default: \fB~/Library/Dictionaries\fR
.
.TP
\fB\-\-fontdir\fR
Target location for Fonts\. Default: \fB~/Library/Fonts\fR
.
.TP
\fB\-\-servicedir\fR
Target location for Services\. Default: \fB~/Library/Services\fR
.
.TP
\fB\-\-input_methoddir\fR
Target location for Input Methods\. Default: \fB~/Library/Input Methods\fR
.
.TP
\fB\-\-internet_plugindir\fR
Target location for Internet Plugins\. Default: \fB~/Library/Internet Plug\-Ins\fR
.
.TP
\fB\-\-audio_unit_plugindir\fR
Target location for Audio Unit Plugins\. Default: \fB~/Library/Audio/Plug\-Ins/Components\fR
.
.TP
\fB\-\-vst_plugindir\fR
Target location for VST Plugins\. Default: \fB~/Library/Audio/Plug\-Ins/VST\fR
.
.TP
\fB\-\-vst3_plugindir\fR
Target location for VST3 Plugins\. Default: \fB~/Library/Audio/Plug\-Ins/VST3\fR
.
.TP
\fB\-\-screen_saverdir\fR
Target location for Screen Savers\. Default: \fB~/Library/Screen Savers\fR
.
.TP
\fB\-\-language\fR
Set language of the Cask to install\. The first matching language is used, otherwise the default language on the Cask\. The default value is the \fBlanguage of your system\fR
Remove stale lock files and outdated downloads for all formulae and casks, and remove old versions of installed formulae\. If arguments are specified, only do this for the given formulae and casks\. Removes all downloads more than 120 days old\. This can be adjusted with \fBHOMEBREW_CLEANUP_MAX_AGE_DAYS\fR\.
Scrub the cache, including downloads for even the latest versions\. Note downloads for any installed formulae or casks will still not be deleted\. If you want to delete those too: \fBrm \-rf "$(brew \-\-cache)"\fR
Show dependencies for \fIformula\fR\. Additional options specific to \fIformula\fR may be appended to the command\. When given multiple formula arguments, show the intersection of dependencies for each formula\.
Switch into the mode used by the \fB\-\-all\fR option, but only list dependencies for each provided \fIformula\fR, one formula per line\. This is used for debugging the \fB\-\-installed\fR/\fB\-\-all\fR display mode\.
Display \fIformula\fR\'s name and one\-line description\. Formula descriptions are cached; the cache is created on the first search, making that search slower than subsequent ones\.
Check your system for potential problems\. Will exit with a non\-zero status if any potential problems are found\. Please note that these warnings are just used to help the Homebrew maintainers with debugging if you file an issue\. If everything you use Homebrew for is working fine: please don\'t worry or file an issue; just ignore this\.
List global Homebrew analytics data or, if specified, installation and build error data for \fIformula\fR (provided neither \fBHOMEBREW_NO_ANALYTICS\fR nor \fBHOMEBREW_NO_GITHUB_API\fR are set)\.
Which type of analytics data to retrieve\. The value for \fIcategory\fR must be \fBinstall\fR, \fBinstall\-on\-request\fR or \fBbuild\-error\fR; \fBcask\-install\fR or \fBos\-version\fR may be specified if \fIformula\fR is not\. The default is \fBinstall\fR\.
Print a JSON representation of \fIformula\fR\. Currently the default and only accepted value for \fIversion\fR is \fBv1\fR\. See the docs for examples of using the JSON output: \fIhttps://docs\.brew\.sh/Querying\-Brew\fR
If \fBstd\fR is passed, use the standard build environment instead of superenv\. If \fBsuper\fR is passed, use superenv even if the formula specifies the standard build environment\.
An unsupported Homebrew development flag to skip installing any dependencies of any kind\. If the dependencies are not already present, the formula will have issues\. If you\'re not developing Homebrew, consider adjusting your PATH rather than using this flag\.
Attempt to compile using the specified \fIcompiler\fR, which should be the name of the compiler\'s executable, e\.g\.\fBgcc\-7\fR for GCC 7\. In order to use LLVM\'s clang, specify \fBllvm_clang\fR\. To use the Apple\-provided clang, specify \fBclang\fR\. This option will only accept compilers that are provided by Homebrew or bundled with macOS\. Please do not file issues if you encounter errors while using this option\.
Fetch the upstream repository to detect if the HEAD installation of the formula is outdated\. Otherwise, the repository\'s HEAD will only be checked for updates when a new stable or development version has been released\.
Download and patch \fIformula\fR, then open a shell\. This allows the user to run \fB\./configure \-\-help\fR and otherwise determine how to turn the software package into a Homebrew package\.
Symlink all of \fIformula\fR\'s installed files into Homebrew\'s prefix\. This is done automatically when you install formulae but can be useful for DIY installations\.
Print formulae with fully\-qualified names\. If \fB\-\-full\-name\fR is not passed, other options (i\.e\.\fB\-1\fR, \fB\-l\fR, \fB\-r\fR and \fB\-t\fR) are passed to \fBls\fR(1) which produces the actual output\.
Check the given \fIformula\fR kegs for missing dependencies\. If no \fIformula\fR are provided, check all kegs\. Will exit with a non\-zero status if any kegs are found to be missing dependencies\.
List installed casks and formulae that have an updated version available\. By default, version information is displayed in interactive shells, and suppressed otherwise\.
Print output in JSON format\. There are two versions: v1 and v2\. v1 is deprecated and is currently the default if no version is specified\. v2 prints outdated formulae and casks\.
Fetch the upstream repository to detect if the HEAD installation of the formula is outdated\. Otherwise, the repository\'s HEAD will only be checked for updates when a new stable or development version has been released\.
Import all items from the specified \fItap\fR, or from all installed taps if none is provided\. This can be useful for debugging issues across all items when making significant changes to \fBformula\.rb\fR, testing the performance of loading all items or checking if any current formulae/casks have Ruby issues\.
Unless \fBHOMEBREW_NO_INSTALL_CLEANUP\fR is set, \fBbrew cleanup\fR will then be run for the reinstalled formulae or, every 30 days, for all formulae\.
Download and patch \fIformula\fR, then open a shell\. This allows the user to run \fB\./configure \-\-help\fR and otherwise determine how to turn the software package into a Homebrew package\.
Perform a substring search of cask tokens and formula names for \fItext\fR\. If \fItext\fR is flanked by slashes, it is interpreted as a regular expression\. The search for \fItext\fR is extended online to \fBhomebrew/core\fR and \fBhomebrew/cask\fR\.
Without \fItext\fR, list all locally available casks (including tapped ones, no online search is performed)\. With \fItext\fR, search online and locally for casks\.
The variables \fBHOMEBREW_PREFIX\fR, \fBHOMEBREW_CELLAR\fR and \fBHOMEBREW_REPOSITORY\fR are also exported to avoid querying them multiple times\. Consider adding evaluation of this command\'s output to your dotfiles (e\.g\.\fB~/\.profile\fR, \fB~/\.bash_profile\fR, or \fB~/\.zprofile\fR) with: \fBeval $(brew shellenv)\fR
With \fIURL\fR unspecified, tap a formula repository from GitHub using HTTPS\. Since so many taps are hosted on GitHub, this command is a shortcut for \fBbrew tap\fR\fIuser\fR\fB/\fR\fIrepo\fR\fBhttps://github\.com/\fR\fIuser\fR\fB/homebrew\-\fR\fIrepo\fR\.
With \fIURL\fR specified, tap a formula repository from anywhere, using any transport protocol that \fBgit\fR(1) handles\. The one\-argument form of \fBtap\fR simplifies but also limits\. This two\-argument command makes no assumptions, so taps can be cloned from places other than GitHub and using protocols other than HTTPS, e\.g\. SSH, git, HTTP, FTP(S), rsync\.
Convert a shallow clone to a full clone without untapping\. Taps are only cloned as shallow clones on continuous integration, or if \fB\-\-shallow\fR was originally passed\.
Print a JSON representation of \fItap\fR\. Currently the default and only accepted value for \fIversion\fR is \fBv1\fR\. See the docs for examples of using the JSON output: \fIhttps://docs\.brew\.sh/Querying\-Brew\fR
Remove symlinks for \fIformula\fR from Homebrew\'s prefix\. This can be useful for temporarily disabling a formula: \fBbrew unlink\fR\fIformula\fR\fB&&\fR\fIcommands\fR\fB&& brew link\fR\fIformula\fR
Upgrade outdated casks and outdated, unpinned formulae using the same options they were originally installed with, plus any appended brew formula options\. If \fIcask\fR or \fIformula\fR are specified, upgrade only the given \fIcask\fR or \fIformula\fR kegs (unless they are pinned; see \fBpin\fR, \fBunpin\fR)\.
Download and patch \fIformula\fR, then open a shell\. This allows the user to run \fB\./configure \-\-help\fR and otherwise determine how to turn the software package into a Homebrew package\.
Fetch the upstream repository to detect if the HEAD installation of the formula is outdated\. Otherwise, the repository\'s HEAD will only be checked for updates when a new stable or development version has been released\.
Show formulae that specify \fIformula\fR as a dependency (i\.e\. show dependents of \fIformula\fR)\. When given multiple formula arguments, show the intersection of formulae that use \fIformula\fR\. By default, \fBuses\fR shows all formulae that specify \fIformula\fR as a required or recommended dependency for their stable builds\.
If \fIcask\fR is provided, display the location in the Caskroom where \fIcask\fR would be installed, without any sort of versioned directory as the last path\.
Display Homebrew\'s Cellar path\.\fIDefault:\fR\fB$(brew \-\-prefix)/Cellar\fR, or if that directory doesn\'t exist, \fB$(brew \-\-repository)/Cellar\fR\.
If \fIformula\fR is provided, display the location in the Cellar where \fIformula\fR would be installed, without any sort of versioned directory as the last path\.
If the command\'s output is sent through a pipe and no shell is specified, the list is formatted for export to \fBbash\fR(1) unless \fB\-\-plain\fR is passed\.
Check \fIformula\fR for Homebrew coding style violations\. This should be run before submitting a new formula\. If no \fIformula\fR are provided, check all locally available formulae and skip style checks\. Will exit with a non\-zero status if any errors are found\.
Run various additional style checks to determine if a new formula is eligible for Homebrew\. This should be used when creating new formula and implies \fB\-\-strict\fR and \fB\-\-online\fR\.
Generate a bottle (binary package) from a formula that was installed with \fB\-\-build\-bottle\fR\. If the formula specifies a rebuild version, it will be incremented in the generated DSL\. Passing \fB\-\-keep\-old\fR will attempt to keep it at its original value, while \fB\-\-no\-rebuild\fR will remove it\.
Generate an updated bottle block for a formula and optionally merge it into the formula file\. Instead of a formula name, requires the path to a JSON file generated with \fBbrew bottle \-\-json\fR\fIformula\fR\.
If a \fIURL\fR is specified, the \fISHA\-256\fR checksum of the new download should also be specified\. A best effort to determine the \fISHA\-256\fR and \fIformula\fR name will be made if either or both values are not supplied by the user\.
If a \fItag\fR is specified, the Git commit \fIrevision\fR corresponding to that tag should also be specified\. A best effort to determine the \fIrevision\fR will be made if the value is not supplied by the user\.
.
.P
If a \fIversion\fR is specified, a best effort to determine the \fIURL\fR and \fISHA\-256\fR or the \fItag\fR and \fIrevision\fR will be made if both values are not supplied by the user\.
\fINote:\fR this command cannot be used to transition a formula from a URL\-and\-SHA\-256 style specification into a tag\-and\-revision style specification, nor vice versa\. It must use whichever style specification the formula already uses\.
Use the specified \fIversion\fR to override the value parsed from the URL or tag\. Note that \fB\-\-version=0\fR can be used to delete an existing version override from a formula if it has become redundant\.
Generate a formula for the downloadable file at \fIURL\fR and open it in the editor\. Homebrew will attempt to automatically derive the formula name and version, but if it fails, you\'ll have to make your own template\. The \fBwget\fR formula serves as a simple example\. For the complete API, see: \fIhttps://rubydoc\.brew\.sh/Formula\fR
Homebrew will not download \fIURL\fR to the cache and will thus not add its SHA\-256 to the formula for you, nor will it check the GitHub API for GitHub projects (to fill out its description and homepage)\.
Automatically determine the installation prefix for non\-Homebrew software\. Using the output from this command, you can install your own software into the Cellar and then link it into Homebrew\'s prefix with \fBbrew link\fR\.
.
.TP
\fB\-\-name\fR
Explicitly set the \fIname\fR of the package being installed\.
.
.TP
\fB\-\-version\fR
Explicitly set the \fIversion\fR of the package being installed\.
Look through repository history to find the most recent version of \fIformula\fR and create a copy in \fItap\fR\fB/Formula/\fR\fIformula\fR\fB@\fR\fIversion\fR\fB\.rb\fR\. If the tap is not installed yet, attempt to install/clone the tap before continuing\. To extract a formula from a tap that is not \fBhomebrew/core\fR use its fully\-qualified form of \fIuser\fR\fB/\fR\fIrepo\fR\fB/\fR\fIformula\fR\.
Check the library links from the given \fIformula\fR kegs\. If no \fIformula\fR are provided, check all kegs\. Raises an error if run on uninstalled formulae\.
Check for newer versions of formulae from upstream\.
.
.P
If no formula argument is passed, the list of formulae to check is taken from \fBHOMEBREW_LIVECHECK_WATCHLIST\fR or \fB~/\.brew_livecheck_watchlist\fR\.
Return a failing status code if changes are detected in the manpage outputs\. This can be used to notify CI when the manpages are out of date\. Additionally, the date used in new manpages will match those in the existing manpages (to allow comparison without factoring in the date)\.
Download and publish bottles, and apply the bottle commit from a pull request with artifacts generated by GitHub Actions\. Requires write access to the repository\.
Print the merged pull requests on Homebrew/brew between two Git refs\. If no \fIprevious_tag\fR is provided it defaults to the latest tag\. If no \fIend_ref\fR is provided it defaults to \fBorigin/master\fR\.
Homebrew build environment that uses years\-battle\-hardened build logic to help your \fB\./configure && make && make install\fR and even your \fBgem install\fR succeed\. Especially handy if you run Homebrew in an Xcode\-only configuration since it adds tools like \fBmake\fR to your \fBPATH\fR which build systems would not find otherwise\.
.
.TP
\fB\-\-env\fR
Use the standard \fBPATH\fR instead of superenv\'s when \fBstd\fR is passed\.
.
.TP
\fB\-c\fR, \fB\-\-cmd\fR
Execute commands in a non\-interactive shell\.
.
.SS"\fBsponsors\fR"
Print a Markdown summary of Homebrew\'s GitHub Sponsors, suitable for pasting into a README\.
Check formulae or files for conformance to Homebrew style guidelines\.
.
.P
Lists of \fIfile\fR, \fItap\fR and \fIformula\fR may not be combined\. If none are provided, \fBstyle\fR will run style checks on the whole Homebrew library, including core code and all formulae\.
.
.TP
\fB\-\-fix\fR
Fix style violations automatically using RuboCop\'s auto\-correct feature\.
.
.TP
\fB\-\-display\-cop\-names\fR
Include the RuboCop cop name for each violation in the output\.
.
.TP
\fB\-\-only\-cops\fR
Specify a comma\-separated \fIcops\fR list to check for violations of only the listed RuboCop cops\.
.
.TP
\fB\-\-except\-cops\fR
Specify a comma\-separated \fIcops\fR list to skip checking for violations of the listed RuboCop cops\.
.
.SS"\fBtap\-new\fR \fIuser\fR\fB/\fR\fIrepo\fR"
Generate the template files for a new tap\.
.
.SS"\fBtest\fR [\fIoptions\fR] \fIformula\fR"
Run the test method provided by an installed formula\. There is no standard output or return code, but generally it should notify the user if something is wrong with the installed formula\.
.
.P
\fIExample:\fR\fBbrew install jruby && brew test jruby\fR
.
.TP
\fB\-\-devel\fR
Test the development version of a formula\.
.
.TP
\fB\-\-HEAD\fR
Test the head version of a formula\.
.
.TP
\fB\-\-keep\-tmp\fR
Retain the temporary files created for the test\.
.
.TP
\fB\-\-retry\fR
Retry if a testing fails\.
.
.SS"\fBtests\fR [\fIoptions\fR]"
Run Homebrew\'s unit and integration tests\.
.
.TP
\fB\-\-coverage\fR
Generate code coverage reports\.
.
.TP
\fB\-\-generic\fR
Run only OS\-agnostic tests\.
.
.TP
\fB\-\-no\-compat\fR
Do not load the compatibility layer when running tests\.
.
.TP
\fB\-\-online\fR
Include tests that use the GitHub API and tests that use any of the taps for official external commands\.
.
.TP
\fB\-\-byebug\fR
Enable debugging using byebug\.
.
.TP
\fB\-\-only\fR
Run only \fItest_script\fR\fB_spec\.rb\fR\. Appending \fB:\fR\fIline_number\fR will start at a specific line\.
.
.TP
\fB\-\-seed\fR
Randomise tests with the specified \fIvalue\fR instead of a random seed\.
.
.SS"\fBtypecheck\fR"
Check for typechecking errors using Sorbet\.
.
.TP
\fB\-q\fR, \fB\-\-quiet\fR
Silence all non\-critical errors\.
.
.TP
\fB\-\-update\-definitions\fR
Update Tapioca gem definitions of recently bumped gems
Return a failing status code if all gems are up to date and gem definitions do not need a tapioca update
.
.TP
\fB\-\-dir\fR
Typecheck all files in a specific directory\.
.
.TP
\fB\-\-file\fR
Typecheck a single file\.
.
.TP
\fB\-\-ignore\fR
Ignores input files that contain the given string in their paths (relative to the input path passed to Sorbet)\.
.
.SS"\fBunpack\fR [\fIoptions\fR] \fIformula\fR"
Unpack the source files for \fIformula\fR into subdirectories of the current working directory\.
.
.TP
\fB\-\-destdir\fR
Create subdirectories in the directory named by \fIpath\fR instead\.
.
.TP
\fB\-\-patch\fR
Patches for \fIformula\fR will be applied to the unpacked source\.
.
.TP
\fB\-g\fR, \fB\-\-git\fR
Initialise a Git repository in the unpacked source\. This is useful for creating patches for the software\.
.
.TP
\fB\-f\fR, \fB\-\-force\fR
Overwrite the destination directory if it already exists\.
.
.SS"\fBupdate\-license\-data\fR [\fIoptions\fR]"
Update SPDX license data in the Homebrew repository\.
.
.TP
\fB\-\-fail\-if\-not\-changed\fR
Return a failing status code if current license data\'s version is the same as the upstream\. This can be used to notify CI when the SPDX license data is out of date\.
Update versions for PyPI resource blocks in \fIformula\fR\.
.
.TP
\fB\-p\fR, \fB\-\-print\-only\fR
Print the updated resource blocks instead of changing \fIformula\fR\.
.
.TP
\fB\-s\fR, \fB\-\-silent\fR
Suppress any output\.
.
.TP
\fB\-\-ignore\-non\-pypi\-packages\fR
Don\'t fail if \fIformula\fR is not a PyPI package\.
.
.TP
\fB\-\-version\fR
Use the specified \fIversion\fR when finding resources for \fIformula\fR\. If no version is specified, the current version for \fIformula\fR will be used\.
.
.SS"\fBupdate\-test\fR [\fIoptions\fR]"
Run a test of \fBbrew update\fR with a new repository clone\. If no options are passed, use \fBorigin/master\fR as the start commit\.
.
.TP
\fB\-\-to\-tag\fR
Set \fBHOMEBREW_UPDATE_TO_TAG\fR to test updating between tags\.
.
.TP
\fB\-\-keep\-tmp\fR
Retain the temporary directory containing the new repository clone\.
.
.TP
\fB\-\-commit\fR
Use the specified \fIcommit\fR as the start commit\.
.
.TP
\fB\-\-before\fR
Use the commit at the specified \fIdate\fR as the start commit\.
.
.SS"\fBvendor\-gems\fR"
Install and commit Homebrew\'s vendored gems\.
.
.SH"GLOBAL OPTIONS"
These options are applicable across multiple subcommands\.
.
.TP
\fB\-d\fR, \fB\-\-debug\fR
Display any debugging information\.
.
.TP
\fB\-q\fR, \fB\-\-quiet\fR
Suppress any warnings\.
.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Make some output more verbose\.
.
.TP
\fB\-h\fR, \fB\-\-help\fR
Show this message\.
.
.SH"OFFICIAL EXTERNAL COMMANDS"
.
.SS"\fBbundle\fR [\fIsubcommand\fR]"
Bundler for non\-Ruby dependencies from Homebrew, Homebrew Cask, Mac App Store and Whalebrew\.
.
.P
\fBbrew bundle\fR [\fBinstall\fR]
Install and upgrade (by default) all dependencies from the \fBBrewfile\fR\.
.
.P
You can skip the installation of dependencies by adding space\-separated values to one or more of the following environment variables: \fBHOMEBREW_BUNDLE_BREW_SKIP\fR, \fBHOMEBREW_BUNDLE_CASK_SKIP\fR, \fBHOMEBREW_BUNDLE_MAS_SKIP\fR, \fBHOMEBREW_BUNDLE_WHALEBREW_SKIP\fR, \fBHOMEBREW_BUNDLE_TAP_SKIP\fR
.
.P
\fBbrew bundle\fR will output a \fBBrewfile\.lock\.json\fR in the same directory as the \fBBrewfile\fR if all dependencies are installed successfully\. This contains dependency and system status information which can be useful in debugging \fBbrew bundle\fR failures and replicating a "last known good build" state\. You can opt\-out of this behaviour by setting the \fBHOMEBREW_BUNDLE_NO_LOCK\fR environment variable or passing the \fB\-\-no\-lock\fR option\. You may wish to check this file into the same version control system as your \fBBrewfile\fR (or ensure your version control system ignores it if you\'d prefer to rely on debugging information from a local machine)\.
.
.P
\fBbrew bundle dump\fR
Write all installed casks/formulae/images/taps into a \fBBrewfile\fR\.
.
.P
\fBbrew bundle cleanup\fR
Uninstall all dependencies not listed from the \fBBrewfile\fR\.
.
.P
This workflow is useful for maintainers or testers who regularly install lots of formulae\.
.
.P
\fBbrew bundle check\fR
Check if all dependencies are installed from the \fBBrewfile\fR\.
.
.P
This provides a successful exit code if everything is up\-to\-date, making it useful for scripting\.
.
.P
\fBbrew bundle list\fR
List all dependencies present in a \fBBrewfile\fR\.
.
.P
By default, only Homebrew dependencies are listed\.
.
.P
\fBbrew bundle exec\fR\fIcommand\fR
Run an external command in an isolated build environment based on the \fBBrewfile\fR dependencies\.
.
.P
This sanitized build environment ignores unrequested dependencies, which makes sure that things you didn\'t specify in your \fBBrewfile\fR won\'t get picked up by commands like \fBbundle install\fR, \fBnpm install\fR, etc\. It will also add compiler flags which will help find keg\-only dependencies like \fBopenssl\fR, \fBicu4c\fR, etc\.
.
.TP
\fB\-\-file\fR
Read the \fBBrewfile\fR from this location\. Use \fB\-\-file=\-\fR to pipe to stdin/stdout\.
.
.TP
\fB\-\-global\fR
Read the \fBBrewfile\fR from \fB~/\.Brewfile\fR\.
.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
\fBinstall\fR prints output from commands as they are run\.\fBcheck\fR lists all missing dependencies\.
.
.TP
\fB\-\-no\-upgrade\fR
\fBinstall\fR won\'t run \fBbrew upgrade\fR on outdated dependencies\. Note they may still be upgraded by \fBbrew install\fR if needed\.
.
.TP
\fB\-f\fR, \fB\-\-force\fR
\fBdump\fR overwrites an existing \fBBrewfile\fR\.\fBcleanup\fR actually performs its cleanup operations\.
.
.TP
\fB\-\-no\-lock\fR
\fBinstall\fR won\'t output a \fBBrewfile\.lock\.json\fR\.
.
.TP
\fB\-\-all\fR
\fBlist\fR all dependencies\.
.
.TP
\fB\-\-formula\fR
\fBlist\fR Homebrew dependencies\.
.
.TP
\fB\-\-cask\fR
\fBlist\fR Homebrew Cask dependencies\.
.
.TP
\fB\-\-tap\fR
\fBlist\fR tap dependencies\.
.
.TP
\fB\-\-mas\fR
\fBlist\fR Mac App Store dependencies\.
.
.TP
\fB\-\-whalebrew\fR
\fBlist\fR Whalebrew dependencies\.
.
.TP
\fB\-\-describe\fR
\fBdump\fR adds a description comment above each line, unless the dependency does not have a description\.
.
.TP
\fB\-\-no\-restart\fR
\fBdump\fR does not add \fBrestart_service\fR to formula lines\.
.
.TP
\fB\-\-zap\fR
\fBcleanup\fR casks using the \fBzap\fR command instead of \fBuninstall\fR\.
.
.SS"\fBservices\fR [\fIsubcommand\fR]"
Manage background services with macOS\'\fBlaunchctl\fR(1) daemon manager\.
.
.P
If \fBsudo\fR is passed, operate on \fB/Library/LaunchDaemons\fR (started at boot)\. Otherwise, operate on \fB~/Library/LaunchAgents\fR (started at login)\.
.
.P
[\fBsudo\fR] \fBbrew services\fR [\fBlist\fR]
List all managed services for the current user (or root)\.
Tests the full lifecycle of a Homebrew change to a tap (Git repository)\. For example, for a GitHub Actions pull request that changes a formula \fBbrew test\-bot\fR will ensure the system is cleaned and setup to test the formula, install the formula, run various tests and checks on it, bottle (package) the binaries and test formulae that depend on it to ensure they aren\'t broken by these changes\.
.
.P
Only supports GitHub Actions as a CI provider\. This is because Homebrew uses GitHub Actions and it\'s freely available for public and private use with macOS and Linux workers\.
.
.TP
\fB\-\-dry\-run\fR
print what would be done rather than doing it\.
.
.TP
\fB\-\-cleanup\fR
clean all state from the Homebrew directory\. Use with care!
.
.TP
\fB\-\-skip\-setup\fR
don\'t check if the local system is set up correctly\.
.
.TP
\fB\-\-keep\-old\fR
run \fBbrew bottle \-\-keep\-old\fR to build new bottles for a single platform\.
.
.TP
\fB\-\-skip\-relocation\fR
run \fBbrew bottle \-\-skip\-relocation\fR to build new bottles that don\'t require relocation\.
.
.TP
\fB\-\-local\fR
ask Homebrew to write verbose logs under \fB\./logs/\fR and set \fB$HOME\fR to \fB\./home/\fR
.
.TP
\fB\-\-tap\fR
use the \fBgit\fR repository of the given tap\. Defaults to the core tap for syntax checking\.
.
.TP
\fB\-\-fail\-fast\fR
immediately exit on a failing step\.
.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
print test step output in real time\. Has the side effect of passing output as raw bytes instead of re\-encoding in UTF\-8\.
.
.TP
\fB\-\-test\-default\-formula\fR
use a default testing formula when not building a tap and no other formulae are specified\.
.
.TP
\fB\-\-bintray\-org\fR
upload to the given Bintray organisation\.
.
.TP
\fB\-\-root\-url\fR
use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew\'s default\.
.
.TP
\fB\-\-git\-name\fR
set the Git author/committer names to the given name\.
.
.TP
\fB\-\-git\-email\fR
set the Git author/committer email to the given email\.
.
.TP
\fB\-\-ci\-upload\fR
use the Homebrew CI bottle upload options\.
.
.TP
\fB\-\-publish\fR
publish the uploaded bottles\.
.
.TP
\fB\-\-skip\-recursive\-dependents\fR
only test the direct dependents\.
.
.TP
\fB\-\-only\-cleanup\-before\fR
Only run the pre\-cleanup step\. Needs \fB\-\-cleanup\fR\.
.
.TP
\fB\-\-only\-setup\fR
Only run the local system setup check step\.
.
.TP
\fB\-\-only\-tap\-syntax\fR
Only run the tap syntax check step\.
.
.TP
\fB\-\-only\-formulae\fR
Only run the formulae steps\.
.
.TP
\fB\-\-only\-cleanup\-after\fR
Only run the post\-cleanup step\. Needs \fB\-\-cleanup\fR\.
.
.SH"CUSTOM EXTERNAL COMMANDS"
Homebrew, like \fBgit\fR(1), supports external commands\. These are executable scripts that reside somewhere in the \fBPATH\fR, named \fBbrew\-\fR\fIcmdname\fR or \fBbrew\-\fR\fIcmdname\fR\fB\.rb\fR, which can be invoked like \fBbrew\fR\fIcmdname\fR\. This allows you to create your own commands without modifying Homebrew\'s internals\.
.
.P
Instructions for creating your own commands can be found in the docs: \fIhttps://docs\.brew\.sh/External\-Commands\fR
.
.SH"SPECIFYING FORMULAE"
Many Homebrew commands accept one or more \fIformula\fR arguments\. These arguments can take several different forms:
.
.TP
The name of a formula
e\.g\.\fBgit\fR, \fBnode\fR, \fBwget\fR\.
.
.TP
The fully\-qualified name of a tapped formula
Sometimes a formula from a tapped repository may conflict with one in \fBhomebrew/core\fR\. You can still access these formulae by using a special syntax, e\.g\.\fBhomebrew/dupes/vim\fR or \fBhomebrew/versions/node4\fR\.
.
.TP
An arbitrary file
Homebrew can install formulae from a local path\. It can point to either a formula file or a bottle\.
.
.SH"SPECIFYING CASKS"
Many Homebrew Cask commands accept one or more \fIcask\fR arguments\. These can be specified the same way as the \fIformula\fR arguments described in \fBSPECIFYING FORMULAE\fR above\.
.
.SH"ENVIRONMENT"
Note that environment variables must have a value set to be detected\. For example, run \fBexport HOMEBREW_NO_INSECURE_REDIRECT=1\fR rather than just \fBexport HOMEBREW_NO_INSECURE_REDIRECT\fR\.
.
.TP
\fBHOMEBREW_ARCH\fR
Linux only: Pass the set value to a type name representing the compiler\'s \fB\-march\fR option\.
.
.IP
\fIDefault:\fR\fBnative\fR\.
.
.TP
\fBHOMEBREW_ARTIFACT_DOMAIN\fR
Prefix all download URLs, including those for bottles, with this variable\. For example, \fBHOMEBREW_ARTIFACT_DOMAIN=http://localhost:8080\fR will cause a formula with the URL \fBhttps://example\.com/foo\.tar\.gz\fR to instead download from \fBhttp://localhost:8080/example\.com/foo\.tar\.gz\fR\.
.
.TP
\fBHOMEBREW_AUTO_UPDATE_SECS\fR
Automatically check for updates once per this seconds interval\.
.
.IP
\fIDefault:\fR\fB300\fR\.
.
.TP
\fBHOMEBREW_BAT\fR
If set, use \fBbat\fR for the \fBbrew cat\fR command\.
.
.TP
\fBHOMEBREW_BAT_CONFIG_PATH\fR
Use the \fBbat\fR configuration file\. For example, \fBHOMEBREW_BAT=$HOME/\.bat/config\fR\.
.
.IP
\fIDefault:\fR $HOME/\.bat/config
.
.TP
\fBHOMEBREW_BINTRAY_KEY\fR
Use this API key when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BINTRAY_USER\fR
Use this username when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BOTTLE_DOMAIN\fR
Use the specified URL as the download mirror for bottles\. For example, \fBHOMEBREW_BOTTLE_DOMAIN=http://localhost:8080\fR will cause all bottles to download from the prefix \fBhttp://localhost:8080/\fR\.
Use this as the browser when opening project homepages\.
.
.IP
\fIDefault:\fR\fB$BROWSER\fR or the OS\'s default browser\.
.
.TP
\fBHOMEBREW_CACHE\fR
Use the specified directory as the download cache\.
.
.IP
\fIDefault:\fR macOS: \fB$HOME/Library/Caches/Homebrew\fR, Linux: \fB$XDG_CACHE_HOME/Homebrew\fR or \fB$HOME/\.cache/Homebrew\fR\.
.
.TP
\fBHOMEBREW_CASK_OPTS\fR
Options which should be used for all \fBcask\fR commands\. All \fB\-\-*dir\fR options, \fB\-\-language\fR, \fB\-\-require\-sha\fR, \fB\-\-no\-quarantine\fR and \fB\-\-no\-binaries\fR are supported\. For example, you might add something like the following to your ~/\.profile, ~/\.bash_profile, or ~/\.zshenv:
If set, do not pass \fB\-\-disable\fR when invoking \fBcurl\fR(1), which disables the use of \fBcurlrc\fR\.
.
.TP
\fBHOMEBREW_CURL_RETRIES\fR
Pass the given retry count to \fB\-\-retry\fR when invoking \fBcurl\fR(1)\.
.
.IP
\fIDefault:\fR\fB3\fR\.
.
.TP
\fBHOMEBREW_CURL_VERBOSE\fR
If set, pass \fB\-\-verbose\fR when invoking \fBcurl\fR(1)\.
.
.TP
\fBHOMEBREW_DEVELOPER\fR
If set, tweak behaviour to be more relevant for Homebrew developers (active or budding) by e\.g\. turning warnings into errors\.
.
.TP
\fBHOMEBREW_DISABLE_LOAD_FORMULA\fR
If set, refuse to load formulae\. This is useful when formulae are not trusted (such as in pull requests)\.
.
.TP
\fBHOMEBREW_DISPLAY\fR
Use this X11 display when opening a page in a browser, for example with \fBbrew home\fR\. Primarily useful on Linux\.
.
.IP
\fIDefault:\fR\fB$DISPLAY\fR\.
.
.TP
\fBHOMEBREW_DISPLAY_INSTALL_TIMES\fR
If set, print install times for each formula at the end of the run\.
.
.TP
\fBHOMEBREW_EDITOR\fR
Use this editor when editing a single formula, or several formulae in the same directory\.
.
.IP
\fINote:\fR\fBbrew edit\fR will open all of Homebrew as discontinuous files and directories\. Visual Studio Code can handle this correctly in project mode, but many editors will do strange things in this case\.
.
.IP
\fIDefault:\fR\fB$EDITOR\fR or \fB$VISUAL\fR\.
.
.TP
\fBHOMEBREW_FAIL_LOG_LINES\fR
Output this many lines of output on formula \fBsystem\fR failures\.
.
.IP
\fIDefault:\fR\fB15\fR\.
.
.TP
\fBHOMEBREW_FORBIDDEN_LICENSES\fR
A space\-separated list of licenses\. Homebrew will refuse to install a formula if that formula or any of its dependencies has a license on this list\.
.
.TP
\fBHOMEBREW_FORCE_BREWED_CURL\fR
If set, always use a Homebrew\-installed \fBcurl\fR(1) rather than the system version\. Automatically set if the system version of \fBcurl\fR is too old\.
.
.TP
\fBHOMEBREW_FORCE_BREWED_GIT\fR
If set, always use a Homebrew\-installed \fBgit\fR(1) rather than the system version\. Automatically set if the system version of \fBgit\fR is too old\.
.
.TP
\fBHOMEBREW_FORCE_HOMEBREW_ON_LINUX\fR
If set, running Homebrew on Linux will use URLs for macOS\. This is useful when merging pull requests for macOS while on Linux\.
.
.TP
\fBHOMEBREW_FORCE_VENDOR_RUBY\fR
If set, always use Homebrew\'s vendored, relocatable Ruby version even if the system version of Ruby is new enough\.
.
.TP
\fBHOMEBREW_GITHUB_API_PASSWORD\fR
Use this password for authentication with the GitHub API, for features such as \fBbrew search\fR\. We strongly recommend using \fBHOMEBREW_GITHUB_API_TOKEN\fR instead\.
.
.TP
\fBHOMEBREW_GITHUB_API_TOKEN\fR
Use this personal access token for the GitHub API, for features such as \fBbrew search\fR\. You can create one at \fIhttps://github\.com/settings/tokens\fR\. If set, GitHub will allow you a greater number of API requests\. For more information, see: \fIhttps://docs\.github\.com/en/rest/overview/resources\-in\-the\-rest\-api#rate\-limiting\fR\.
.
.IP
\fINote:\fR Homebrew doesn\'t require permissions for any of the scopes, but some developer commands may require additional permissions\.
.
.TP
\fBHOMEBREW_GITHUB_API_USERNAME\fR
Use this username for authentication with the GitHub API, for features such as \fBbrew search\fR\. We strongly recommend using \fBHOMEBREW_GITHUB_API_TOKEN\fR instead\.
.
.TP
\fBHOMEBREW_GIT_EMAIL\fR
Set the Git author and committer name to this value\.
.
.TP
\fBHOMEBREW_GIT_NAME\fR
Set the Git author and committer email to this value\.
.
.TP
\fBHOMEBREW_INSTALL_BADGE\fR
Print this text before the installation summary of each successful build\.
\fIDefault:\fR macOS: \fB$HOME/Library/Logs/Homebrew\fR, Linux: \fB$XDG_CACHE_HOME/Homebrew/Logs\fR or \fB$HOME/\.cache/Homebrew/Logs\fR\.
.
.TP
\fBHOMEBREW_MAKE_JOBS\fR
Use this value as the number of parallel jobs to run when building with \fBmake\fR(1)\.
.
.IP
\fIDefault:\fR The number of available CPU cores\.
.
.TP
\fBHOMEBREW_NO_ANALYTICS\fR
If set, do not send analytics\. See: \fIhttps://docs\.brew\.sh/Analytics\fR\.
.
.TP
\fBHOMEBREW_NO_AUTO_UPDATE\fR
If set, do not automatically update before running \fBbrew install\fR, \fBbrew upgrade\fR or \fBbrew tap\fR\.
.
.TP
\fBHOMEBREW_NO_BOTTLE_SOURCE_FALLBACK\fR
If set, fail on the failure of installation from a bottle rather than falling back to building from source\.
.
.TP
\fBHOMEBREW_NO_COLOR\fR
If set, do not print text with colour added\.
.
.IP
\fIDefault:\fR\fB$NO_COLOR\fR\.
.
.TP
\fBHOMEBREW_NO_COMPAT\fR
If set, disable all use of legacy compatibility code\.
.
.TP
\fBHOMEBREW_NO_EMOJI\fR
If set, do not print \fBHOMEBREW_INSTALL_BADGE\fR on a successful build\.
.
.IP
\fINote:\fR Only tries to print emoji on OS X Lion or newer\.
.
.TP
\fBHOMEBREW_NO_GITHUB_API\fR
If set, do not use the GitHub API, e\.g\. for searches or fetching relevant issues on a failed install\.
.
.TP
\fBHOMEBREW_NO_INSECURE_REDIRECT\fR
If set, forbid redirects from secure HTTPS to insecure HTTP\.
.
.IP
\fINote:\fR While ensuring your downloads are fully secure, this is likely to cause from\-source SourceForge, some GNU & GNOME based formulae to fail to download\.
.
.TP
\fBHOMEBREW_NO_INSTALL_CLEANUP\fR
If set, \fBbrew install\fR, \fBbrew upgrade\fR and \fBbrew reinstall\fR will never automatically cleanup installed/upgraded/reinstalled formulae or all formulae every 30 days\.
.
.TP
\fBHOMEBREW_PRY\fR
If set, use Pry for the \fBbrew irb\fR command\.
.
.TP
\fBHOMEBREW_SKIP_OR_LATER_BOTTLES\fR
If set with \fBHOMEBREW_DEVELOPER\fR, do not use bottles from older versions of macOS\. This is useful in development on new macOS versions\.
.
.TP
\fBHOMEBREW_SVN\fR
Use this as the \fBsvn\fR(1) binary\.
.
.IP
\fIDefault:\fR A Homebrew\-built Subversion (if installed), or the system\-provided binary\.
.
.TP
\fBHOMEBREW_TEMP\fR
Use this path as the temporary directory for building packages\. Changing this may be needed if your system temporary directory and Homebrew prefix are on different volumes, as macOS has trouble moving symlinks across volumes when the target does not yet exist\. This issue typically occurs when using FileVault or custom SSD configurations\.
If set, verbose output will print a \fB\.\fR no more than once a minute\. This can be useful to avoid long\-running Homebrew commands being killed due to no output\.
.
.TP
\fBall_proxy\fR
Use this SOCKS5 proxy for \fBcurl\fR(1), \fBgit\fR(1) and \fBsvn\fR(1) when downloading through Homebrew\.
.
.TP
\fBftp_proxy\fR
Use this FTP proxy for \fBcurl\fR(1), \fBgit\fR(1) and \fBsvn\fR(1) when downloading through Homebrew\.
.
.TP
\fBhttp_proxy\fR
Use this HTTP proxy for \fBcurl\fR(1), \fBgit\fR(1) and \fBsvn\fR(1) when downloading through Homebrew\.
.
.TP
\fBhttps_proxy\fR
Use this HTTPS proxy for \fBcurl\fR(1), \fBgit\fR(1) and \fBsvn\fR(1) when downloading through Homebrew\.
.
.TP
\fBno_proxy\fR
A comma\-separated list of hostnames and domain names excluded from proxying by \fBcurl\fR(1), \fBgit\fR(1) and \fBsvn\fR(1) when downloading through Homebrew\.
.
.TP
\fBSUDO_ASKPASS\fR
When this variable is set, the \fB\-A\fR option is passed when calling \fBsudo\fR(8)
.
.SH"USING HOMEBREW BEHIND A PROXY"
Set the \fBhttp_proxy\fR, \fBhttps_proxy\fR, \fBall_proxy\fR, \fBftp_proxy\fR and/or \fBno_proxy\fR environment variables documented above\.
.
.P
For example, to use an unauthenticated HTTP or SOCKS5 proxy:
Homebrew\'s Project Leadership Committee is Misty De Meo, Shaun Jackman, Jonathan Chang, Sean Molenaar and Markus Reiter\.
.
.P
Homebrew\'s Technical Steering Committee is Michka Popoff, FX Coudert, Markus Reiter, Misty De Meo and Mike McQuaid\.
.
.P
Homebrew/brew\'s Linux maintainers are Michka Popoff, Shaun Jackman, Dawid Dziurla, Issy Long and Maxim Belkin\.
.
.P
Homebrew\'s other current maintainers are Claudia Pellegrino, Zach Auten, Rui Chen, Vitor Galvao, Caleb Xu, Gautham Goli, Steven Peters, Bo Anderson, William Woodruff, Igor Kapkov, Sam Ford, Alexander Bayandin, Izaak Beekman, Eric Knibbe, Viktor Szakats, Thierry Moisan, Steven Peters, Tom Schoonjans, Issy Long, CoreCode, Randall, Rylan Polster, SeekingMeaning, William Ma and Dustin Rodrigues\.
.
.P
Former maintainers with significant contributions include Jan Viljanen, JCount, commitay, Dominyk Tiller, Tim Smith, Baptiste Fontaine, Xu Cheng, Martin Afanasjew, Brett Koonce, Charlie Sharpsteen, Jack Nagel, Adam Vandenberg, Andrew Janke, Alex Dunn, neutric, Tomasz Pajor, Uladzislau Shablinski, Alyssa Ross, ilovezfs, Chongyu Zhu and Homebrew\'s creator: Max Howell\.