Today, I’d like to announce Homebrew 4.6.0.
The most significant changes since 4.5.0 are opt-in concurrent downloads with HOMEBREW_DOWNLOAD_CONCURRENCY
, preliminary macOS 26 (Tahoe) support and a built-in brew mcp-server
.
Major changes and deprecations since 4.5.0:
HOMEBREW_DOWNLOAD_CONCURRENCY
is a new environment variable that allows opt-in to Homebrew’s new download concurrency support. We recommend usingHOMEBREW_DOWNLOAD_CONCURRENCY=auto
as a starting point. This will become the default behaviour in a later version of Homebrew (with an opt-out).- Homebrew provides preliminary macOS 26 (Tahoe) support. It will be officially supported after Apple’s public release.
brew mcp-server
is an MCP server for Homebrew and is available in Homebrew by default.- Miscellaneous additional code deprecations, disables and removals scheduled for Homebrew 4.6.
Other changes since 4.5.0 I’d like to highlight are the following:
- All repositories in the Homebrew organisation, including e.g. Homebrew/brew,
Homebrew/homebrew-cask and
Homebrew/homebrew-core, now use
main
as their default branch. - All casks submitted in Homebrew/homebrew-cask must be signed. We have not yet completed the process of disabling/removing those that aren’t but this will happen at some point in the future.
- Homebrew prohibits non-ASCII characters in URLs.
- Homebrew now allows users in Tier 2/3 to file some types of issues.
- Homebrew’s
.pkg
and official/shell installers will now add Homebrew to the defaultPATH
if possible. - Third-party Homebrew GitHub Packages mirrors that do not require authentication now work as expected.
HOMEBREW_FORBID_CASKS
is a new environment variable that forbids all casks.HOMEBREW_VERIFY_ATTESTATIONS
must be explicitly set again, even forHOMEBREW_DEVELOPER
s.brew
no longer copies across zeroed environment-variable values.brew
resets thesudo
timestamp later so it’s not done by e.g.brew --prefix
orbrew shellenv
but remains done by e.g.brew install
.brew --debug
output is a bit quieter by default.brew bundle
no longer uses thebrew tap --force-auto-update
option as it was removed.brew bundle
better handles cask renames forbrew bundle
andbrew bundle dump
.brew bundle
refers to “formulae” rather than “brews” for consistency with other parts of Homebrew.brew bundle add
will create aBrewfile
if it doesn’t exist.brew cleanup
doesn’t warn when loading a renamed cask.brew install
outputs a better error message when there are tap conflicts.brew install --ask
will also prompt before installing casks.brew uninstall
won’t suggest deleting configuration files that belong to other formulae.brew update
displays descriptions for new formulae and casks.brew update
will migrate taps frommaster
tomain
when necessary.brew pin
returns a non-zero exit code if pinning formulae that are not installed.brew sh
andbrew bundle sh
use more of the user’s configuration but provide a custom prompt.brew audit
ensures that official formula and cask names don’t conflict.brew deps
outputs a warning when runtime dependencies are not used (so results may be inconsistent or confusing).env_script_all_files
in formulae won’t overwrite existing files.
Finally:
- Homebrew is now on Bluesky.
- Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.
Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.