Extension Icon

Brew

Search, install and manage Homebrew formulae and casks
AvatarJohn Buckley
285,505 Installs
OverviewCommandsVersion History

Versions52

Homebrew 7 support - September 21, 2026

  • Show Installed now lists formulae you asked for and their dependencies in separate sections; a dependency nothing else needs is tagged Unused. ⌘D still hides the dependencies section.
  • New Run Doctor command: shows the brew doctor report with every recommended fix, and runs them all with one confirmation (Fix All). Needs Homebrew 7.0
  • New Show Vulnerabilities command: lists installed formulae with known vulnerabilities from brew vulns (Homebrew 7), with per-advisory detail, a Show Details view that expands every advisory in full, and an Upgrade action where the formula is also outdated
  • Installed casks that own symlinks (a binary, man pages, shell completions) gained Link Cask (⌘L) and Unlink Cask (⌘⇧L): each runs brew --dry-run first and lists the exact symlinks it would create or remove before you confirm. A cask that is already linked says so instead of running anything. Needs Homebrew 7.0
  • Preview Install (⌘⇧I) on uninstalled packages shows what brew install --dry-run would install or upgrade, with Install one keystroke away
  • Preview Upgrades (⌘⇧I) in Show Upgrades shows what brew upgrade would actually do: every package with its version transition, its download size, the total to download, and any warning brew raises. It runs brew upgrade --dry-run only when you ask for it — the manifest lookups take a while on a long list
  • Preview Upgrade (⌘⌥I) on an outdated package — in Show Upgrades, Show Installed and Search — shows what brew upgrade <package> alone would do: its version transition, download size and any warning, with Upgrade one keystroke away. Only offered where there is something to upgrade
  • Cask details now show a Languages row for casks that ship language variants (firefox, thunderbird, libreoffice, and a few others) — 8 or fewer codes list inline, more collapse to a count
  • Search marks packages that can't be installed on this Mac (disabled, Linux-only, macOS version or architecture) with ⊘, says why in the sidebar, and no longer offers Install for them
  • Upgrade is now the primary action for the selected formula or cask (nhojb)
  • Upgrade All is the secondary action (if available) (nhojb)
  • Selection can be toggled via the ⌘⇧X shortcut (nhojb)
  • Select/Deselect all can be toggled via the ⌘⇧A shortcut (nhojb)

Cask pinning, Homebrew 6 - September 8, 2026

  • Casks can now be pinned, just like formulae — pin a cask and it is locked out of upgrades, gets its own section in Show Installed, and shows the same pin icon everywhere. Homebrew has supported this since 5.1.12
  • Pinning a cask that updates itself now says so: the pin holds for brew, but the app can still self-update, so the toast says "Pinning may be overridden by auto-updates" instead of implying the version is frozen
  • Uninstalling a pinned package used to surface a raw brew error — brew refuses this for pinned formulae as well as casks. It now says the package is pinned and offers "Unpin and Force Uninstall" as an explicit choice
  • Fixed: a pinned cask was included in Upgrade All and reported as a failed upgrade. Pinned packages are now skipped, matching how pinned formulae are handled
  • Fixed: pinning or unpinning a cask did not refresh the installed list — cask pins live in a separate directory that the cache was not watching
  • Fixed: the "D" dependency badge never appeared. Homebrew removed the field it read in 5.1.9; it now reads the field brew actually reports
  • The upgrade progress toast now reports the download phase as a batch rather than naming one package: brew announces every package up front, then downloads them concurrently, so a per-package label there was not true
  • A pinned cask now shows "Pinned: Yes" in the metadata panel, as pinned formulae already did — the list's tack accessory is hidden while that panel is open, so it was the only place the state could be seen. Formula metadata also gained the Tap row casks already had
  • A package Homebrew declines to upgrade is no longer reported as upgraded. Brew warns and skips a disabled, unavailable, already-current or un-upgradable package while still exiting 0, and each reason is now shown as its own outcome rather than one generic skip
  • Upgrading a single package that Homebrew declines now shows it as skipped, with the reason, rather than a red failure — and the "N of M" progress counter no longer stalls a step behind when a package is skipped mid-run
  • A cask that belongs to no tap no longer offers a "Copy Tap Name" action that would copy nothing
  • Pin state is now read from Homebrew's own pin directory immediately before an upgrade or uninstall, so a package pinned in another command — or outside Raycast — is respected rather than trusted from a cached snapshot. One directory read per run, ~20µs
  • If Homebrew refuses an upgrade or uninstall because the package is pinned, the toast now offers to unpin, instead of showing the raw error
  • Cask details now list the formulae and casks a cask depends on, and the architectures it requires — formula details have always shown dependencies, so casks were missing information brew reports (gcloud-cli needs python@3.14, for one)
  • Removed the unused two-phase loading path (brew list --versions, added in 5.0 support). It had no caller and its cache read duplicated the main loader; installed packages already paint from cache
  • This extension now requires Homebrew 6.0 or later. The "Use internal API" preference is gone — Homebrew 6 uses that API by default and deprecates the setting, which made brew abort outright under HOMEBREW_DEVELOPER

Show Upgrades: reviewed, selective upgrading - September 1, 2026

  • Show Outdated is now Show Upgrades: the outdated list has grown into a review surface — ↩ toggles a package (formula or cask) in or out of the upgrade, ⌘↩ runs it from any row ("Upgrade All" with the default full selection, "Upgrade N Selected" once narrowed) and ⌘⇧A selects or deselects everything upgradable. The default selection is everything not pinned — exactly what a plain brew upgrade would do. Every per-package action the view offered (single upgrade, pin, copy/terminal commands, uninstall) remains on each row, and the command still answers to "outdated" in search
  • A reviewed run upgrades exactly the selected packages: each is upgraded individually by name, so deselected packages are simply left out — nothing is pinned, held or otherwise touched on their behalf. Packages that become outdated during the run's own brew update are not upgraded unreviewed; they remain visible — and selectable for a follow-up run — in the list afterwards
  • A pin is a lock, matching brew's own behaviour: pinned formulae cannot be selected, and upgrading one means unpinning it — ↩ on a pinned row unpins and selects it in one step. Pinning from the review (⌘.) deselects
  • Refreshing mid-review (⌘R) keeps the selections you have already made; a formula pinned outside the extension is deselected on refresh — the lock always wins
  • Casks are selectable exactly like formulae. Cask pinning (the lock semantics) ships in a follow-up
  • Running the upgrade cancels the review's in-flight background brew update (and waits for it to release Homebrew's update lock) instead of asking the user to try again in a moment
  • Reopening either upgrade command after a run no longer flashes the pre-run list: a snapshot the run made stale is withheld until fresh data lands
  • A failed check-for-upgrades now shows a failure screen with a Retry action instead of a blank list (Show Upgrades) or a stuck checking placeholder (Upgrade); with cached packages still on screen the failure arrives as a toast instead, and with nothing outdated the empty screen offers a route to Show Installed
  • "Run Upgrade in Terminal" on outdated rows moved from ⌘↩ to ⌘⇧T, and the single-package Upgrade action moved from ↩ into the action panel — ↩ now toggles selection and ⌘↩ starts the run on every row
  • Fixed the OutdatedCask.installed_versions type: brew outdated --json=v2 returns an array for casks, not a string
  • Added a test suite (vitest, dev-only) covering the selection logic

Install statistics & popularity sort - September 1, 2026

  • Search: "Sort by Popularity" (⇧⌘P) orders results by installs over the last 30 days, ranking every match before the list is truncated — so the top rows are the most installed overall, not of the first hundred. An empty query lists the most installed packages outright.
  • The detail sidebar and the Details view both show a package's install counts for 30, 90 and 365 days, plus build errors, matching the analytics table on its formulae.brew.sh page. Only the selected package is fetched.
  • Deprecated and disabled packages carry a warning at the top of the sidebar, with the reason, the date, and the replacement package where Homebrew names one.
  • "Hide Description" (⇧⌘Y) drops the description pane and shows the sidebar as a pure metadata list, with a Caveats indicator; the full caveats text stays in Show Details, which renders it as prose.
  • "Show Details" is now offered even when the sidebar is open. It previously disappeared in that state, leaving "Show in Finder" as the default action on an installed package. Install and Upgrade remain the default where they apply.
  • Display toggles are grouped in a "View" section. "Toggle Details" is now "Toggle Sidebar" (⇧⌘D), and works in Search too; "Hide Dependencies" no longer appears in Search, where nothing filtered by it. Show Installed adds an install date and marks pinned formulae.
  • Search now marks an installed package as outdated when an update exists, and offers Upgrade on it. Previously only Show Outdated knew, because the installed cache never expired on brew update — its freshness test watched only local install state.
  • Show Outdated groups pinned formulae into their own section, as Show Installed does. They are the ones brew upgrade refuses and Upgrade All skips, so keeping them out of the actionable list says so without the row having to.
  • Pinning uses a tack rather than a map pin, and Show Outdated marks a pinned formula with that icon in place of the word "Pinned". Upgrade actions carry the same up-arrow as the row they act on, instead of a hammer.
  • Upgrading a pinned formula now says so instead of failing. brew upgrade refuses a pinned package outright, so the action surfaced its error; it now skips with an explanation, matching Upgrade All which already skipped them.
  • An available update is now marked the same way everywhere — a yellow up-arrow, replacing a red check in Search that clashed with the red used for a failed upgrade, and a grey check in Show Outdated that was the "upgraded" glyph greyed out.
  • The Details view and the search sidebar now show the same metadata, built from one definition. They had drifted: statistics, the deprecation warning and the corrected version line each landed in one and not the other.
  • The version row leads with the version you actually have, showing installed → available when they differ. It previously showed the available version labelled "installed", so an outdated package read as current.
  • Cached downloads are now written atomically, so an interrupted one can no longer leave a partial file that later fails to load. This covers the package index every command depends on, not just the new statistics. Clear Cache removes leftover temporary files too.
  • Updated to @raycast/api 2.x, and to a brace-expansion release without the denial-of-service advisory (GHSA-rgw5-rvv9-x895).

Upgrade View - August 27, 2026

  • The Upgrade command now lists the outdated formulae & casks, matching the Show Outdated command, instead of a list of progress steps.
  • Upgrade progress is reported via the toast/HUD, with the icon of each package reflecting its upgrade status.
  • "Upgrade All" now upgrades each package in turn, so its progress is reported per package.
  • Added a Refresh action to the outdated action panel.
  • Pinned formulae are skipped when upgrading.

Adopt - August 19, 2026

  • Added "Copy Adopt Command" (⌘⇧⌥C) and "Run Adopt in " (⌘⇧↵) actions in Search for packages not yet managed by Homebrew. They run brew install --adopt to reclaim an externally-installed package (e.g. installed via a .dmg or another package manager) into Homebrew so it is covered by brew upgrade.
  • The Adopt action is intentionally not shown as a direct action for uninstalled packages so it doesn't sit confusingly next to Install; adopt is available via the copy/run command actions.

Pin visibility, outdated tags, detail pane - August 4, 2026

  • Show Installed: pinned formulae now render in their own "Pinned Formulae" section at the bottom of the list, with the count as the section subtitle, instead of sitting unlabelled among the other formulae
  • Installed packages with an available update now carry an Outdated tag — formulae and casks both. The list component is shared, so the tag also appears for installed-and-outdated packages in Search results
  • Show Installed: ⌘⇧D toggles a metadata detail pane for the selected package
  • A list of nothing but pinned formulae no longer reports itself as empty

Bug fix - August 3, 2026

  • Fixed "Show Installed" listing no packages on every open after the first. The installed-package lookups are Maps, which serialise to {}, so the cached value was emptied on write and then re-served empty forever. The serialisable form is cached now and the lookups are rebuilt on read; cache entries written by earlier versions are discarded rather than trusted.
  • Fixed Search intermittently failing to mark packages as installed, which had the same cause.

Bug fix - July 10, 2026

  • Search now works instantly against the existing package index while it refreshes in the background, instead of blocking until the refresh completes

Manage Services - July 9, 2026

  • Added a "Manage Services" command to list Homebrew services and start, stop, or restart them individually or all at once. Actions update the list optimistically so it reflects the new state immediately.
  • Added a "Services Menu Bar" command to control Homebrew services from the menu bar, with a submenu per service and start/stop/restart all. The menu refreshes on a configurable interval.

Bug fix - May 21, 2026

  • Improves reliability of index cache
  • Improves toast error message if fetch fails
  • Adds a "Clear Cache & Retry" action to the error toast if fetch fails

Add Keyboard Shortcuts - May 12, 2026

  • Added keyboard shortcuts to common Brew actions, including opening package pages, opening homepages, copying URLs, and running terminal commands.
  • Standardized shortcut usage with Raycast common shortcuts where appropriate.

Bug Fix & Launch Argument - May 12, 2026

  • Added launch argument to Search command for pre-filling the search query before opening
  • Fixed search not working while the formulae/cask index is being downloaded on cold start

Cask Id - March 24, 2026

  • Add cask id to the cask metadata

Improvements - February 24, 2026

  • Remove updating homebrew index toast from outdated command

Bug Fix - February 24, 2026

  • Improve install/uninstall/upgrade failure toasts by surfacing concise Homebrew errors instead of full auto-update logs.
  • Keep full stderr/stdout output available through the toast's Copy Logs action for debugging.

Improvements - February 19, 2026

  • Improve handling of abort signal when loading search command

Improved Memory Usage - February 16, 2026

  • Use chunking to significantly reduce working memory

Metadata Detail Panel - January 27, 2026

  • Added optional split-view metadata panel for search results
  • Enable "Show metadata panel in search results" in Search command preferences (default true)
  • Displays package description and metadata alongside the search list

Improvements - January 5, 2026

  • Add a toggle to filter installed packages, allowing users to hide dependencies and show only those explicitly "installed on request".

Homebrew 5.0 Support - December 16, 2025

  • Added compatibility with Homebrew 5.0
  • Added preference to disable concurrent downloads (enabled by default in Homebrew 5.0)
  • Added preference to opt-in to Homebrew's new internal API (96% smaller downloads)
  • Updated documentation with Homebrew 5.0 compatibility information
  • Improved first-run experience with download progress indicators for large downloads (30 MB+)
  • Added hidden-by-default "Clear Cache" command for troubleshooting
  • Reordered Casks over Formulae in Search for better readability and discoverability
  • Optimized package loading with two-phase strategy (fast list, then full metadata)
  • Added lazy loading for package details to reduce initial load time
  • Added Upgrade view with clearer progress indicators and easier cancellation
  • Refactored codebase with improved error handling and logging

Improvements - December 1, 2025

  • Update dependencies and replace node-fetch with native fetch API
  • Upgrade react to 19.0.10

Bug Fix - November 3, 2025

  • Fixed an issue where the the terminal command may be mis-typed in the Raycast window

Improvements - February 17, 2025

  • Add a new action to open the Brew formula/cask page in the browser

Improvements - January 7, 2025

  • Optimized checkmark icon
  • Minor change on tint color and minor fixes
  • Updated metadata

Improvements - January 2, 2025

  • Add terminal option for Ghostty
  • Updated dependencies
  • Fixed linter error
  • Organized code

Improvements & Bugfix - September 22, 2024

  • Fix detail panel for tap that doesn't have a license (#12507)
  • Add JSON Debug Info Action

Improvements - July 29, 2024

  • Added new terminal options for Alacritty, kitty, WezTerm and Hyper.
  • Used app icons for actions to run commands in terminals.
  • Apply Destructive style to Uninstall actions.
  • Fallback to Terminal.App in case the selected terminal app is not installed.

Improvements - June 14, 2024

  • Updated dependencies

Bug Fix - July 3, 2024

  • Fix a crash that could occur when showing installed formula or cask

Improvements - June 24, 2024

  • Search now includes cask names

Improvements - June 24, 2024

  • Move formula and cask info to the metadata panel
  • Dependencies are displayed green if installed

Improvements - June 14, 2024

  • Updated dependencies
  • Updated screenshots
  • Added formula/cask name to the detail view

Bug Fix - May 14, 2024

  • Remove deprecated --ignore-pinned upgrade flag.

Bug Fix - March 22, 2024

  • Fixed various crashes that occurred due to missing data.

Improvements - March 8, 2024

  • Add Warp as an option for terminal
  • Use current terminal name for actions

Improvements - February 11, 2024

  • Add cleanup command

Improvements - January 10, 2024

  • Added Quarantine preference to enable or disable quarantine of files downloaded by brew

Bug Fix - December 1, 2022

  • Added --ignore-pinned flag to brew upgrade command to avoid problems on systems that have pinned packages installed

Bug Fix - November 16, 2022

  • Improved error handling for invalid json cache
  • Ensure cache is fetched only once (avoids memory errors)

Bug Fix - November 14, 2022

  • Reduce memory requirements for the "Search" command.
  • Improve caching logic

Updated Dependencies - November 11, 2022

  • Upgraded to latest node dependencies. Should fix a memory issue.

Improvements - August 17, 2022

  • Add a copy install command action
  • Add run install command in terminal action

Bug Fix - August 15, 2022

  • Fix error when loading "Show Outdated" command

Improvements - August 10, 2022

  • Add a "Custom Brew Path" preference for users with brew installed in a non-standard path
  • The extension will now prompt for user's login password if brew requires authorization when installed or uninstalling casks
  • Improved reporting of fetch errors
  • Add a search bar filter for the installable type (formula or cask).

Improvements - June 6, 2022

  • Removed --dry-run flag when running the Upgrade command so the casks and formulas actually upgraded

Search - March 15, 2022

  • Improve search accuracy (now includes the description)
  • Fix an issue loading installed formulae where user has a large number installed
  • Upgrade to latest @raycast/api

Improvements - January 17, 2022

  • Improve reliability of outdated command
  • Add action to copy formula/cask name
  • Add cask name & tap to cask details
  • Add Toast action to cancel current action
  • Add Toast action to copy error log after failure

Upgrades - December 1, 2021

  • Add upgrade command
  • Add greedy upgrade preference

Improvements - November 19, 2021

  • Improve discovery of brew prefix
  • Update Cask.installed correctly after installation
  • Fix installed state after uninstalling search result
  • Fix cache check after installing/uninstalling cask
  • Add uninstall action to outdated action panel

Casks - November 4, 2021

  • Add support for searching and managing casks

Initial Version - October 26, 2021