14

Is there a way to list all the homebrew packages explicitly installed by the user (they they installed directly using brew install)?

Note brew leaves doesn't do this. Over time formula can change change their dependencies leaving orphaned leaves that were never explicitly installed by the user or adding dependencies on previously explicitly installed packages.

3 Answers 3

15

I like @orlp's solution using jq, but I should mention that you can also use

brew leaves --installed-on-request

to exclude orphaned packages from brew leaves output. See docs

2
  • Firstly, welcome to Ask Different! :) I hope you come to find this site has a lot to offer! In case you haven't already, it's worth taking the time to read the tour. All the best!
    – Monomeeth
    Jan 1 at 22:39
  • 1
    Best answer, thanks!
    – Adam Shand
    Feb 26 at 7:10
14

Simple mode using brew bundle

We can list all taps, formulae and casks that were added by the user on stdout:

brew bundle dump --file -

Or we can do it manually, without using brew bundle.

Listing all brew taps

brew tap

Listing all brew formulae installed on request

This ignores any formulae that were added automatically as dependencies, but unlike brew leaves will still show any packages that are dependencies if you installed them manually as well, and avoids listing 'orphaned' packages:

brew info --json=v2 --installed \
    | jq -r '.formulae[]|select(any(.installed[]; .installed_on_request)).full_name'

Listing all brew casks installed

At the time of writing (2022-03-20) brew doesn't keep track of which casks were installed on request, but few if any casks are dependencies for other casks/formulae, so we can simply list them all:

brew list --cask -l1
2
  • Nice. I prefer your info/jq method of finding formulas installed explicitly. Mar 21, 2022 at 0:04
  • this doesn't work for me. It lists glib in all cases, although I didn't install glib explicitly. Where as brew leaves does not list it. Jul 4 at 2:38
4

Seems that you can use brew bundle:

brew bundle dump --file /tmp/x
brew bundle list --file /tmp/x --formula

the temporary file can be avoided using pipes

brew bundle dump --file - | brew bundle list --file - --formula
1
  • Also doesn't work for me. It lists glib in all cases, although I didn't install glib explicitly. Where as brew leaves does not list it. Jul 4 at 2:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .