2025-09-16 21:46:51 -07:00
2025-09-16 21:46:51 -07:00
2025-07-16 20:43:22 -07:00
2025-09-15 20:20:09 -07:00
2025-08-13 20:42:23 -07:00
2025-08-15 20:31:37 -07:00
2025-07-04 22:13:48 -07:00
2025-09-15 15:41:34 +08:00
2025-09-15 15:18:15 +08:00
2025-07-14 14:48:24 -07:00

taproom is featured as "Tool of The Week" (July 15, 2025) on Terminal Trove, the $HOME of all things in the terminal.

Terminal Trove Tool of The Week

taproom

taproom is a cozy terminal user interface (TUI) for Homebrew. It provides a fast and fluid way to explore formulae and casks directly in your terminal.

Highlights

taproom does a few things faster and easier than the brew cli:

  • Search: searching in taproom gives results with all the details in real time; while using brew you need to run brew search then brew info on each package.
  • Dependencies: brew info shows direct dependencies; while taproom also shows all recusive dependencies that are not installed - this is helpful to understand what exactly would be installed as dependencies
    • taproom also has clear indication for packages installed as dependencies vs installed explicitly
  • Dependents: brew uses --eval-all shows dependents that require the target package but it is a pretty slow command; taproom have this information available without additional data loading
  • Sorting: taproom supports sorting by popularity (90d installs) and size (disk spaced used)
  • Navigation: 'h' opens an app's home page and 'b' opens the brew formula page

Features

  • Table View: Overview of all avaiable formulae and casks in Homebrew.
  • Detailed View: Get more info on any package, including its description, version, homepage, license, dependencies, and 90-day install count.
    • Also shows dependencies recursively (only when the dependencies is not installed)
    • Also shows dependents (which other packages depends on this one)
  • Search: Quickly find packages by keywords
    • Default: match each keyword in either name or description
    • Prefix n:: match the keyword only in name
    • Prefix d:: match the keyword only in description
    • Prefix t:: match the keyword only in tap
    • Prefix h:: match the keyword only in home page
    • Prefix -: turn into a negative keyword, can be combined with prefixes
      • For example: ebook -facebook - search for ebook but not facebook
  • Filtering: View all packages, or filter by:
    • Formulae only
    • Casks only
    • Installed packages
    • Outdated packages
    • Packages you installed explicitly (not as dependencies)
  • Flexible Sorting: Sort packages alphabetically by name or by 90-day popularity.
  • Status Indicators: See at a glance which packages are installed, outdated, or pinned.
  • Execute brew commands: upgrade, install, uninstall, pin or unpin packages directly in the TUI.

🚀 Getting Started

Dependencies

  • A terminal emulator with a nerd font
  • du (MacOS builtin command)
  • brew Homebrew
  • gh Github CLI
    • Optional, used for getting release info when --fetch-release flag is set

Install from pre-built binary

gromgit@ (Thank you!) maintains a formula:

brew install gromgit/brewtils/taproom

Or use eget:

eget hzqtc/taproom

Build from source

To build from source, follow these simple steps:

Build dependencies

Build

  1. Navigate to the project directory.
  2. Build the binary:
    make
    
  3. Run the application:
    ./taproom
    

🪄 Customization

The app's behavior can be further customized with command line flags:

  • --invalidate-cahce or -i in short: invalidate cache and re-download data from brew.sh
  • --fetch-release: fetch release information for installed packages. This flag enables displaying release date and 'r' key to open release page
    • Note release information is only available when homebrew url or home page points to a github repo with releases
    • About 60% packages would show release date and support 'r' to open release page with this flag enabled
    • Requires gh (Github CLI) to be in the PATH
  • --hide-columns: hide and skip loading data for specified columns
    • This can be helpful to further simplify the UI
    • While all data loading is done in parallel, some may be slower than others. This flag can be used to skip loading certain data to speed up app load
  • --load-timer or -t in short: show a timer in the loading screen
  • --hide-help: hide the help text on the bottom of the app
  • --sort-column or -s in short: specify the column to sort by (this can still be changed in app with s and S keys)
  • --filters or -f in short: specify initial filters (can still be changed later in the app)

Run taproom -h to learn more about the command line flags.

🛠️ Built With

🔀 Alternatives

taproom is inspired by boldbrew but it's not a clone.

  • taproom has a different UI style
  • taproom supports casks
  • taproom supports sorting by different columns
  • taproom shows missing dependencies recursively (i.e. dependencies of dependencies)
  • taproom shows reverse dependencies (i.e. used by) that replaces an very slow brew uses <formula> --eval-all command
  • taproom shows the size of installed packages

Star History

Star History Chart

Description
An interactive TUI for Homebrew
Readme MIT 2.6 MiB
Languages
Go 98.7%
Makefile 1.3%