56

Is there a way to obtain a list (possibly with descriptions) of all the casks installable with Homebrew Cask?

Dave Powers
  • 2,051
  • 2
  • 30
  • 34
enrico.bacis
  • 30,497
  • 10
  • 86
  • 115

9 Answers9

57

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 \*

Norod78
  • 693
  • 1
  • 6
  • 6
  • So what does 'locally available' mean here? – pius Aug 14 '19 at 18:14
  • 1
    It'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
26

Brew search now has a --desc flag.

This lists all of them with the description:

brew search --casks --desc ''
Derimagia
  • 406
  • 4
  • 3
15

List using a browser

  1. Visit the website https://formulae.brew.sh/
  2. 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
dgisser
  • 142
  • 1
  • 10
enrico.bacis
  • 30,497
  • 10
  • 86
  • 115
  • Maybe need `$(brew cask search | grep -v '==> Partial matches')` – sideshowbarker Aug 14 '16 at 03:28
  • 3
    For 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
  • 2
    Does 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
7

Run brew search without argument to list all of them. You won’t get descriptions, thought.

bfontaine
  • 18,169
  • 13
  • 73
  • 107
  • 2
    For 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
2

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/

lprsd
  • 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
2

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.

epox
  • 9,236
  • 1
  • 55
  • 38
2

Multiple ways to do, collating different answers:

1.

for cask in $(brew search ''); do
brew info $cask; done
  1. brew search --casks
  2. 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
Łukasz Rysiak
  • 2,898
  • 1
  • 22
  • 19
anshul Gupta
  • 1,182
  • 8
  • 17
1

Slight modification to the answer above:

for cask in $(brew search --casks); do
    brew cask info $cask;
done
  • 3
    Instead 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
0

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)
Łukasz Rysiak
  • 2,898
  • 1
  • 22
  • 19