Today, I’m proud to announce Homebrew 7.0.0. The most significant changes since 6.0.0 are faster installations and upgrades, stronger sandboxing, a native macOS app, built-in vulnerability checks and an advisory database, the end of macOS 10.15 support and Intel Macs moving to Tier 3.
Contents
An auto-update or manual brew update (if you have $HOMEBREW_NO_AUTO_UPDATE set) will upgrade Homebrew for you.
Now means 7.0.0. Deprecated interfaces warn until disablement; disabled interfaces reject use and removed interfaces are unavailable.
| Environment | 7.0.0 behaviour and action | Timing | PR links |
|---|---|---|---|
| macOS 10.15 or earlier | Upgrade to macOS 11 or later | Now | Minimum version |
| macOS Sonoma 14 | Tier 3; upgrade to Sequoia 15+ for bottles and .pkg installations |
Now | Support window |
| macOS Golden Gate 27 on Apple Silicon | Fully supported (Tier 1), with prebuilt bottles | Now | Full support |
ghcr.io/homebrew/ubuntu22.04 |
Image removed; migrate to ghcr.io/homebrew/brew |
Now | Notice, removal |
Homebrew/actions/*@master or @main |
master removed; pin a CalVer release or full SHA |
Now | Branch migration, releases |
| Setuid wrappers with different real and effective UIDs | Rejected; run as the installation’s owner without a wrapper | Now | Execution model |
Third-party brew wrappers |
Tier 3; internal commands bypass wrappers; seek support from the wrapper project | Now | Wrapper changes |
Homebrew/brew master |
Frozen bootstrap; switch to main before removal |
2027-03-01 | Bootstrap |
| Intel macOS 11 or later | Tier 3; no new bottles; migrate to MacPorts before Homebrew stops running | 2027-09-01 | Support, bottles |
| Apple Silicon macOS 11 | Upgrade to macOS 12 or later before support ends | 2027-09-01 | Support schedule |
Third-party formula post_install and cask flight blocks |
Deprecated; migrate to *_steps; brew style --fix converts common hooks |
2027-12-11 | Deprecation, migration |
The following improvements apply across platforms unless stated otherwise.
Greater concurrency across downloads, preparation and installation maximises performance while coordinating failures and summaries.
brew install, brew reinstall and brew upgrade overlap package preparation and downloads, including brew bundle batches, reducing waits between packages and allowing a Brewfile to benefit from the same shared installation work as a command naming several packages.brew config gathers independent system details concurrently, so compiler, operating-system and repository checks overlap instead of making diagnostic reports wait for every subprocess in turn.brew tap-info --installed --json=v1 collects tap metadata concurrently, shortening inventory requests when several repositories need Git or network checks while preserving the output order expected by scripts.brew cleanup avoids repeated cache scans, speeding up cleanup for installations with many packages.brew fetch reads download information directly from API metadata for bottles and casks, starting downloads without loading complete package definitions merely to discover URLs and checksums.brew update prepares Ruby caches so subsequent commands start faster.stty.Homebrew 7.0.0 includes various security fixes and new installation protections.
The first fixed releases are listed below.
sudo; all vulnerable recovery code and API accessors have been deleted.brew livecheck restricts redirects to prevent server-side request forgery.Tap trust remains the primary protection against malicious third-party casks; sandboxing mainly limits accidental damage and adds installation safeguards. It cannot make untrusted software safe to run: applications execute with the user’s privileges, and vendor .pkg installers run outside the sandbox and may require sudo. We balance tighter restrictions with keeping existing software working.
fetch phase: migrated formulae download with network access and writable caches, then install disables networking and makes those caches read-only; migration remains ongoing.Trust and environment migrations and replacements.
Commands provide clearer previews, package information and service configuration.
brew install --dry-run previews formulae and casks together.brew list --no-installed-on-request identifies formulae installed as dependencies.brew info distinguishes uninstallable packages with ⊘ from uninstalled packages with ✘ and marks unmet operating-system and architecture requirements, making it easier to understand whether a package can run on the current machine before starting an installation.brew services reads persistent overrides from $HOMEBREW_USER_CONFIG_HOME/services/<formula>.env, allowing local service settings to survive package upgrades and take effect on restart without editing generated service files. New and restarted services use sh.brew.<formula> on macOS and Linux, recognising legacy registrations until restart.brew bundle restores language tools from declared sources: Cargo Git repositories or paths and source: for remote uv tools.brew doctor --json provides structured diagnostics for automation; brew doctor also warns when another brew shadows the current installation in PATH, helping diagnose wrapper and installation conflicts.brew deps --brewfile inspects a Brewfile’s dependencies, making it easier to review the packages a development environment will bring in before installing that environment.brew untap offers to uninstall a tap’s packages first, allowing an unwanted package source and its installed software to be removed together.HOMEBREW_AUTO_UPDATE_QUIET suppresses automatic-update package details, keeping routine command output focused while still allowing Homebrew to update in the background of normal use.BUNDLER_VERSION to child processes, allowing formula builds to use their required Bundler version.Brewfiles record language-tool sources alongside other packages, reducing separate installation instructions when reproducing an environment on another machine.
Command and configuration migrations and replacements.
brew upgrade skips incompatible casks while upgrading compatible applications; both it and brew outdated honour HOMEBREW_NO_UPGRADE_AUTO_UPDATES_CASKS, preserving self-updating applications’ opt-out.brew uninstall removes records for casks missing from the API, warning about possible leftovers, and avoids needless password prompts when files are already owned by the current user.brew link and brew unlink accept --cask/--casks and --formula/--formulae, allowing cask binaries, manpages and completions to be disabled or restored without reinstalling; --dry-run previews changes, while brew link --overwrite replaces conflicts and --force replaces only symlinks from the same cask.Cask configuration migrations and replacements.
Homebrew moves macOS Intel x86_64 to Tier 3 in September 2026, announced in August 2025 and repeated in the 5.0.0 release notes on 12 November 2025; 7.0.0 also drops macOS 10.15. Homebrew still runs on Intel until September 2027, without project support or routine bottle builds. Apple and GitHub’s retreat from Intel support exceeds what Homebrew’s volunteers can replace.
brew services run applies per-service environment overrides without registering a login service, making temporary runs use the same configuration as a permanently registered service.brew shellenv sets PATH directly, avoiding macOS path_helper subprocesses and configuration-file writes..pkg installer is Apple Silicon only and requires macOS Sequoia 15 or later; MacPorts may offer Intel users better binary package coverage.| Interface or platform | Status in 7.0.0 | Timing | Replacement |
|---|---|---|---|
| macOS Catalina 10.15 and earlier | Removed | Now | Upgrade to macOS Big Sur 11 or later. |
| Intel macOS | Tier 3; no new bottles | Now | Apple Silicon or MacPorts. |
| macOS Sonoma 14 | Tier 3; no new bottles | Now | macOS Sequoia 15 or later. |
| macOS Golden Gate 27 on Apple Silicon | Supported; Tier 1 | Now | No migration required; prebuilt bottles available. |
| Running Homebrew on Intel Macs | Upcoming removal | 2027-09-01 | Apple Silicon or another package manager. |
| macOS Big Sur 11 on Apple Silicon | Upcoming removal | 2027-09-01 | macOS Monterey 12 or later. |
BrewUI is Homebrew’s fully released official graphical interface for macOS, making package management more approachable through a native application.
brew install homebrew-app installs BrewUI on macOS Tahoe 26 or later.brew commands for package operations, keeping the work visible and helping connect graphical actions with familiar terminal commands.Homebrew 6.0.0 introduced Bubblewrap sandboxing. Homebrew 7.0.0 replaces it with Landlock, requiring no dependencies or escalated Docker permissions, which caused setup problems with Bubblewrap.
Status in 7.0.0: kernels without Landlock continue working without Linux sandboxing in the less secure pre-6.0.0 configuration; brew doctor reports missing protection as an advisory.
brew config reports the Landlock ABI for troubleshooting..app installations instead of versioned symlinks, so self-updates preserve launchers.| Interface or platform | Status in 7.0.0 | Timing | Replacement |
|---|---|---|---|
HOMEBREW_SANDBOX_LINUX |
Disabled | Now | Remove it; Landlock is used automatically where available. |
HOMEBREW_NO_SANDBOX_LINUX |
Deprecated | 2027-12-11 | No replacement opt-out; unavailable Landlock remains advisory. |
HOMEBREW_ARCH |
Deprecated | 2027-12-11 | Default native CPU optimisation. |
Homebrew relocates compatible bottles to shorter prefixes, avoiding source builds outside the default installation location.
Status in 7.0.0: limits are 13 bytes on Apple Silicon macOS, 26 on Linux and 10 for existing Intel macOS bottles. These count the full path, including slashes; the Cellar must also fit its build-time length. Bottles marked :any or :any_skip_relocation are relocatable to any prefix.
Upcoming rollout: padded builds aim to make every bottle and dependency relocatable to prefixes up to 64 bytes on Apple Silicon macOS and both Linux architectures. This may eventually allow full support within those limits; non-default prefixes remain unsupported for now, with no rollout date.
Homebrew’s new advisory database records vulnerabilities against the formula versions and revisions Homebrew ships, including backported security fixes. brew vulns is built in, checking known vulnerabilities using OSV.dev without another tap or gem.
brew vulns scans installed formulae and reports untrusted-tap skips, with --severity=high, --deps and --brewfile for focused checks. It prioritises remediation using --fix-available and --no-fix-available, --fix-type for released versus patched fixes and --list-skipped for coverage gaps.resolves, avoiding vulnerability reports for fixes already included in a package.homebrew/core when a tap publishes the required attestations.Homebrew images and GitHub Actions provide maintained migration targets.
brew test-bot --build-dependents-from-source limits source builds to ten dependants per formula per shard, prioritising popular packages, enabling broader Linux source-build coverage while keeping CI runtime manageable.xcode-27 runners, reducing reliance on self-hosted infrastructure.@main and removed @master references to releases or full SHAs.Homebrew/actions/setup-ruby with portable-ruby: true in its Ruby workflow, allowing CI jobs to select the same interpreter as Homebrew without depending on internal Ruby entry points.| Interface or platform | Status in 7.0.0 | Timing | Replacement |
|---|---|---|---|
ghcr.io/homebrew/ubuntu22.04 |
Removed | Now | ghcr.io/homebrew/brew. |
Homebrew/actions/*@master |
Removed | Now | CalVer release or full SHA; no redirect. |
Homebrew/actions/*@main |
Migration recommended | Now | CalVer release or full SHA. |
Authoring tools reduce manual setup and encourage safer package definitions.
brew audit --cask --online --fix corrects macOS requirements and application-name case; brew audit --strict detects downloaded prebuilt npm executables in installed homebrew/core formulae, helping maintainers enforce source-build requirements.brew style --fix consolidates platform-specific cask checksums and sorts dependencies, simplifying cross-platform definitions; brew style also rejects broad com.install4j.* uninstall and zap patterns that could affect unrelated applications.brew tap-new generates automatic update workflows for new taps, checking upstream versions on a schedule and opening pull requests so maintainers can review updates without manually checking each formula. It also generates attesting bottle-publishing workflows by default, with --no-attestations as an opt-out, helping new taps publish the provenance that Homebrew can verify when their users install bottles.brew bump-cask-pr can generate separate Intel and Apple Silicon version stanzas from architecture-specific update results, allowing maintainers to follow upstream applications that release different versions for each architecture without manually rewriting supported root-level definitions.brew bump-formula-pr updates Git resources whose version is a commit hash, keeping both the version and pinned revision in sync for projects without release tags.brew create generates syntactically valid formula templates, with separate fetch and offline-build phases for Go and Rust to prevent downloads during compilation.brew update-python-resources --ignore-main-package-cooldown bypasses only the main package’s cooldown in third-party formulae.brew benchmark measures cold and warm install/fetch workloads separately, with --runs= controlling repetitions and --exec supporting custom Hyperfine commands, so contributors can identify whether a change improves fresh downloads, cached installations or command overhead rather than relying on one combined timing.brew bump-compatibility-version records changes requiring dependant rebuilds.brew formula-python-resources --all/--tap= inventories Python resources, while brew bump-python-resources-pr --packages= opens security updates, with -n/--dry-run, --install-dependencies, --no-fork, --branch=, --message= and --output= supporting automation.python3 to select their direct Python dependency without hardcoded interpreter paths.stop_timeout for services, giving databases and other stateful applications longer to shut down gracefully before the service manager terminates them; stop_timeout 60 sets a one-minute allowance on both macOS and Linux.python_major_minor_version helper supplies the selected Python version, avoiding repeated version-detection code in formula definitions that need versioned paths or arguments.std_go_args(ldflags: :goreleaser) supplies common GoReleaser build metadata, including version, commit and build date, helping upstream applications report useful version information from Homebrew builds without each formula recreating those linker arguments.homepage ..., browsed: "YYYY-MM-DD", pausing automated availability checks for one year when a site works in browsers but blocks automated requests, while ensuring the manual check has an expiry.Formula post_install and cask *flight Ruby blocks are deprecated in favour of declared *_steps. Explicit operations and paths allow validation, sandboxing and signed API delivery, making setup safer and avoiding repeated package evaluation.
Status in 7.0.0: official taps reject legacy hooks; third-party taps receive warnings until 11 December 2027.
brew style --fix converts common hooks; manual migrations require rewriting the block’s contents as declared steps, following the Formula Cookbook or Cask Cookbook.| Interface or platform | Status in 7.0.0 | Timing | Replacement |
|---|---|---|---|
Formula post_install |
Deprecated | 2027-12-11 | post_install_steps |
Cask preflight |
Deprecated | 2027-12-11 | preflight_steps |
Cask postflight |
Deprecated | 2027-12-11 | postflight_steps |
Cask uninstall_preflight |
Deprecated | 2027-12-11 | uninstall_preflight_steps |
Cask uninstall_postflight |
Deprecated | 2027-12-11 | uninstall_postflight_steps |
The migration guide lists install-step names, DSLs and public API replacements.
Maintenance command removals and replacements are also documented.
x86_64 support from macOS 27 Golden Gate and GitHub Actions will retire Intel macOS runners in autumn 2027. If Apple and Microsoft’s GitHub, two of the world’s largest technology companies, cannot continue supporting macOS Intel x86_64, sadly neither can Homebrew. MacPorts still supports macOS Intel x86_64 and is likely to provide better results on this platform.Thanks to all our hard-working volunteer maintainers, contributors, sponsors and supporters for getting us this far.
Today, I’m proud to announce Homebrew 6.0.0. The most significant changes since 5.1.0 are a new tap trust security mechanism, the new faster, smaller, default internal...
Homebrew 5.1.0 has been released. Homebrew’s most significant changes since 5.0.0 are expanded brew bundle support, brew version-install, new -full formula handling an...
Today, I’d like to announce Homebrew 5.0.0. The most significant changes since 4.6.0 are download concurrency by default, official support for Linux ARM64/AArch64, tim...
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 ma...