# Homebrew Cask: installing macOS apps from the command line

> Homebrew Cask is the cask subsystem of Homebrew, a CLI workflow for installing prebuilt macOS and Linux software. The repository's last push was on 2016-01-11, so the casks themselves now live elsewhere.

**Homebrew/homebrew-cask** — A CLI workflow for the administration of macOS applications distributed as binaries.

- Repository: https://github.com/Homebrew/homebrew-cask
- Website: https://brew.sh
- Stars: 22,241 · Forks: 11,956
- Language: Ruby
- License: BSD-2-Clause
- Published: 2026-08-04 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/homebrew-homebrew-cask

## What Homebrew Cask actually manages

Homebrew Cask extends Homebrew to cover prebuilt software artifacts distributed by upstream vendors: GUI applications, CLI tools, fonts, plugins and other packaged software. The problem it addresses is the one the README opens with, quoting the familiar installer instruction "To install, drag this icon..." and answering it with a command. Instead of downloading a disk image, mounting it, dragging an app into /Applications and ejecting, you name the artifact and let the tool fetch, verify and place it.

The audience is macOS users who already have Homebrew installed, and the README also claims Linux support for these artifacts. That matters because the boundary between a formula and a cask is the boundary between building from source and installing a vendor's binary. If you want a compiler toolchain assembled on your machine, that is the formula side. If you want the vendor's signed app bundle dropped into place, that is this side. The README frames it as bringing Homebrew's "elegance, simplicity, and speed" to that second category.

## The install path: fetch, verify, move

The mechanism visible in the README is a three-stage pipeline. Homebrew fetches the download for a named cask, verifies it (the sample output shows a checkmark and the word Verified next to the size), then installs by moving the app bundle into /Applications. The example names a version pair, (5.7.2,2312), which suggests the cask definition tracks both a marketing version and a build number, and it reports the transfer size, 5.6MB, before the move happens.

What the README does not document is rollback. There is no described way to undo an install to a previous state beyond removing the artifact, and no description of how a cask's checksum is chosen or what happens when a vendor silently replaces a file at the same URL. The error guide does list a "Checksum does not match" error as a known failure, which tells you verification is enforced rather than advisory, but the README stops at pointing to the error page. Repository layout fills in a little more: a Casks/ directory holds definitions, cask_renames.json and tap_migrations.json track renamed and relocated casks, and audit_exceptions/ exists for cases that bypass checks. Those two JSON files are the honest signal that cask identity is not stable over time.

## How to install Homebrew Cask on a Mac

The README is explicit that there is no separate installation step: "To start using Homebrew Cask, you just need Homebrew installed." So the prerequisite is Homebrew itself, and the first real use is installing a named cask. The README's own example is Alfred.

```bash
brew install alfred
```

What you should see is a fetch line with the cask name, version and build in parentheses, a Verified marker with the download size, an install line, a move line naming the app bundle and its destination, and a final success line. The README's sample output shows exactly that shape, ending with the app placed at /Applications/Alfred 5.app.

If a command misbehaves, the README's first instruction is to reset local tap state before anything else:

```bash
brew update-reset && brew update
```

It calls this a fix-all that resets the state of all your taps, on the reasoning that the problem may be an outdated setup on your side rather than a bug. Only after that should you search existing issues. Note what the README says about requests: issues asking for new casks will be closed, and the intended route is a pull request against CONTRIBUTING.md.

## Where this repository stops being the answer

The last push to Homebrew/homebrew-cask was on 2016-01-11, and the most recent release listed is v0.60.1 on the same date. The repository is not archived, but calling it actively maintained would be false. Anyone arriving from a search for how to install Homebrew Cask should know that the instructions above describe behaviour the README documents, while the casks you would actually install are not served from this repository's history. The README's own links point outward, to docs.brew.sh and to a discussions forum under the Homebrew organisation, not to this tree.

There is a second limitation that is not about age. A cask installs what the upstream vendor publishes at the URL the cask points to. That is convenient and it is also the failure mode: you get the current binary, not a binary you chose. If your workflow needs a fixed version with a hash you control, or needs to run the same build on many machines months apart, a cask is the wrong tool unless the cask pins a version and the URL is immutable. The presence of a checksum-mismatch error in the guide is the visible edge of that problem. The README does not document a supported way to hold a cask at an old version.

## Cask versus formula, and what else does this job

The distinction people search for most is cask versus formula. A formula describes how to build software from source on your machine, resolving dependencies along the way. A cask describes where to download a prebuilt artifact and where to put it. The README's own scope statement backs this: prebuilt artifacts distributed by upstream vendors, including GUI applications, CLI tools, fonts and plugins. A related distinction in the search data is cask versus bottle; a bottle is a prebuilt binary for a formula, so it is still the formula system, just skipping compilation. The practical difference is who owns the build: with a cask, the vendor does.

The genuine alternative on macOS is MacPorts, which takes the opposite approach by building most ports from source on your machine and keeping them under its own prefix rather than moving vendor bundles into /Applications. That gives you more control over build flags and a more self-contained tree, at the cost of compile time and a separate package universe from Homebrew. If your reason for wanting casks is that you already run brew for command-line tools, MacPorts means maintaining two systems. If your reason is that you want everything compiled locally, MacPorts matches that intent and casks do not.

## Licence and the cost of keeping it current

The code is under the BSD 2 Clause (NetBSD) licence, per the README and the LICENSE file at the repository root. That is a permissive licence, and it covers the tooling in this repository. It does not cover the software the casks install: each vendor's own licence applies to the app you end up with, and nothing in the BSD grant changes that. This is a description of what the repository states, not legal advice; if redistribution matters to you, read the vendor's terms for the specific artifact.

On upgrade cost, the README documents one recurring operation, brew update-reset && brew update, presented as routine troubleshooting rather than a rare repair. Treat that as the maintenance surface you are signing up for: tap state can drift, and the documented first response is to reset it. The other cost is identity churn. cask_renames.json and tap_migrations.json exist precisely because casks get renamed and moved, which means a script or a runbook that hardcodes a cask name has a shelf life. The README does not describe a deprecation policy or a notice period for renames.

## Conclusion

Adopt it if you already run Homebrew and want GUI apps, fonts or plugins installed by command instead of by dragging icons, with the same update path as your formulae. Do not adopt it if you are on Windows or Linux without Homebrew, or if you need a pinned, reproducible build of a vendor binary rather than whatever the cask currently points at. Before relying on anything you read about this repository, verify where the cask you want actually lives today: the last push to Homebrew/homebrew-cask was on 2016-01-11, so treat its README as historical and check the current documentation for casks before filing an issue against it.

## FAQ

### What is Homebrew Cask and what is it used for?

It extends Homebrew to install and manage prebuilt software artifacts distributed by upstream vendors, including GUI applications, CLI tools, fonts and plugins. The README describes it as a friendly CLI workflow for administering those artifacts on macOS and Linux.

### How to install Homebrew Cask on a Mac?

There is no separate install step. The README states that to start using Homebrew Cask you just need Homebrew installed, after which a cask is installed by name, as in brew install alfred.

### How to use Homebrew Cask?

Install a cask by name with brew install followed by the cask name. The README's example fetches the download, verifies it, moves the app bundle into /Applications and reports success.

### Is Homebrew Cask safe?

The README's sample output shows each download marked Verified before installation, and the error guide lists a checksum mismatch as a known failure, so downloads are checked. It does not document what a cask verifies beyond that, and the vendor's own signing and licence still apply to the app.

### What is Homebrew Caskroom?

The README does not use the term Caskroom and does not describe a Caskroom directory. What it documents is the install behaviour: the artifact is fetched, verified and then moved into place, as in the example where the app bundle lands at /Applications/Alfred 5.app.

## Sources

- [Official documentation](https://brew.sh)
- [Official README](https://github.com/Homebrew/homebrew-cask#readme)
- [Project repository](https://github.com/Homebrew/homebrew-cask)
- [Release notes](https://github.com/Homebrew/homebrew-cask/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/homebrew-homebrew-cask
