Is there a way to obtain a list (possibly with descriptions) of all the casks installable with Homebrew Cask?
9 Answers
The new way to list all installable cask packages is:
brew search --casks
The man page for brew has the following information:
search --casks
Display all locally available casks (including tapped ones). No online search is performed.
Update:
While the documentation didn't change, seems like search-text is now mandatory. We can specify * by adding a \*
as parameter (to avoid it thinking we are referring to the content of the current directory). So basically it's possible to do:
brew search --casks \*

- 693
- 1
- 6
- 6
-
So what does 'locally available' mean here? – pius Aug 14 '19 at 18:14
-
1It's the local formula files which are like the "known packages available for download and installation". you can see them if you `ls /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks` then `cat` any of them to see how their information is stored. – Norod78 Aug 16 '19 at 15:36
-
Thanks. Assume Homebrew downloads these files when it's updating or otherwise connected online. – pius Aug 16 '19 at 20:24
-
This does not seem to work. When I invoke the above command, brew tells me I'm using it wrong. 'Usage: brew search, -S [options] text|/regex/ [...]' – Jan Sep 28 '22 at 09:38
-
@Jan You are right, while the documentation didn't change, seems like text is now mandatory, you can add a * by adding a \* (to avoid it thinking you are referring to the content of the current directory). So: brew search --casks \* – Norod78 Sep 29 '22 at 10:39
Brew search now has a --desc flag.
This lists all of them with the description:
brew search --casks --desc ''

- 406
- 4
- 3
List using a browser
- Visit the website https://formulae.brew.sh/
- Use
*
as search string and all the casks will be displayed
List using the command line
for cask in $(brew search); do
brew cask info $cask;
done

- 142
- 1
- 10

- 30,497
- 10
- 86
- 115
-
Maybe need `$(brew cask search | grep -v '==> Partial matches')` – sideshowbarker Aug 14 '16 at 03:28
-
3For new people finding this page, Per Homebrew: Calling `brew cask search` is deprecated and will be disabled on 2018-09-30! Use `brew search` instead – Delicia Brummitt Sep 01 '18 at 23:59
-
2Does formulae.brew.sh show casks? It looks like just packages to me. For example, when I use `brew search nextcloud` from the command line it indicates there's a nextcloud cask. But when I load the package list on formulae.brew.sh, nextcloud doesn't show up. – bobpaul Nov 13 '18 at 16:32
-
Homebrew has changed. Following limits to casks: `for cask in $(brew search --casks); do brew cask info $cask; done` – Phil T. Nov 27 '20 at 16:45
Run brew search
without argument to list all of them. You won’t get descriptions, thought.

- 18,169
- 13
- 73
- 107
-
2For new people finding this page, Per Homebrew: Calling `brew cask search` is deprecated and will be disabled on 2018-09-30! Use `brew search` instead – Delicia Brummitt Sep 01 '18 at 23:58
There's a new GUI that enables quick browsing on all the Homebrew packages.
You might want to try out Cakebrew
Also worth noting the analytics data of the top downloads of all cask packages in the past 365 days: https://formulae.brew.sh/analytics/

- 84,407
- 47
- 135
- 168
-
Are you sure Cakebrew supports searching for casks? I tried installing it and I cannot find any such functionality, nor anything on the web to support that claim (at the moment). – P A N Jul 06 '19 at 11:25
The installable list is 7000+ casks. You, of course, can grep the result.., but more practical is to list some subset of the installable casks using search
command:
brew search [YOUR-SEARCH-SUBSTRING
]
It will print you 2 groups. The first group will be installable ==> Formulae, if any. The second group will be ==> Casks
For example, if you are looking for Beaver DB browser, you can type either:
brew search Beaver
---- Output ----
==> Casks
dbeaver-enterprise dbeaver-enterprise swiftybeaver swiftybeaver
or:
brew search DB
---- Output ----
==> Formulae
ansible-cmdb dbmate lbdb mariadb@10.2 questdb
...
==> Casks
1password-beta dynamodb-local mongodb-compass-readonly
actual-odbc-pack dynamodb-local mongodbpreferencepane
actual-odbc-pack exist-db mongodbpreferencepane
apache-couchdb exist-db navicat-for-mariadb
apache-couchdb flvcd-bigrats navicat-for-mariadb
arq-cloud-backup flvcd-bigrats nosql-workbench-for-amazon-dynamodb
arq-cloud-backup gcollazo-mongodb nosql-workbench-for-amazon-dynamodb
db-browser-for-sqlite gcollazo-mongodb nosqlbooster-for-mongodb
db-browser-for-sqlite handbrake nosqlbooster-for-mongodb
dbeaver-community ✔ handbrake omnidb
dbeaver-community ✔ handbrake-nightly omnidb
dbeaver-enterprise handbrakebatch rekordbox
dbeaver-enterprise handbrakebatch rekordbox
dbglass hex-fiend-beta soundboosterlite
dbglass macgdbp soundboosterlite
dbkoda macgdbp sql-power-architect-jdbc
dbkoda mongodb-compass sql-power-architect-jdbc
dbngin mongodb-compass thingsmacsandboxhelper
dbngin mongodb-compass-beta thingsmacsandboxhelper
dbschema mongodb-compass-community thunderbird-beta
dbschema mongodb-compass-community wireshark-chmodbpf
dbvisualizer mongodb-compass-isolated-edition wireshark-chmodbpf
dbvisualizer mongodb-compass-isolated-edition
deadbeef-devel mongodb-compass-readonly
the ✔
mark indicates installed casks.

- 9,236
- 1
- 55
- 38
Multiple ways to do, collating different answers:
1.
for cask in $(brew search ''); do
brew info $cask; done
brew search --casks
brew search
You could one-line it to put results into file for later (because its really slow querying packages one by one):
for cask in $(brew search ''); do brew info $cask; echo "==="; done > list_of_casks.txt

- 2,898
- 1
- 22
- 19

- 1,182
- 8
- 17
Slight modification to the answer above:
for cask in $(brew search --casks); do
brew cask info $cask;
done

- 11
- 1
-
3Instead of posting your own answer with some modifications you could also `edit` the answer from another user directly. There should be a small `edit` button between the `share` and `flag` button. – Aaron3219 May 04 '19 at 23:32
If you're not interested in installation stats, which you could get by using brew search
answers above, you could simply go with:
grep -e '\(version\|cask\|creator\|desc\|homepage\) ' /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/*.rb
This will get you a list lite this:
zotero.rb:cask "zotero" do
zotero.rb: version "5.0.96.3"
zotero.rb: desc "Collect, organize, cite, and share research sources"
zotero.rb: homepage "https://www.zotero.org/"
zprint.rb:cask "zprint" do
zprint.rb: version "1.2.1"
zprint.rb: desc "Library to reformat Clojure and Clojurescript source code and s-expressions"
zprint.rb: homepage "https://github.com/kkinnear/zprint"
zterm.rb:cask "zterm" do
zterm.rb: version "1.2"
zterm.rb: desc "Terminal emulation program"
zterm.rb: homepage "https://www.dalverson.com/zterm/"
which will be instant, rather than waiting for ages for
for cask in $(brew search ''); do brew info $cask; echo "\n\n"; done
where you'd get prettier results and info regarding popularity:
cobalt: stable 0.17.5 (bottled)
Static site generator written in Rust
https://cobalt-org.github.io/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/cobalt.rb
License: MIT
==> Dependencies
Build: rust
==> Analytics
install: 10 (30 days), 45 (90 days), 147 (365 days)
install-on-request: 10 (30 days), 45 (90 days), 147 (365 days)
build-error: 0 (30 days)
coccinelle: stable 1.1.1 (bottled), HEAD
Program matching and transformation engine for C code
http://coccinelle.lip6.fr/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/coccinelle.rb
License: GPL-2.0-only
==> Dependencies
Build: autoconf, automake, hevea, ocaml-findlib, opam, pkg-config
Required: ocaml, pcre
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 3 (30 days), 22 (90 days), 167 (365 days)
install-on-request: 3 (30 days), 22 (90 days), 167 (365 days)
build-error: 0 (30 days)

- 2,898
- 1
- 22
- 19