An easy, convenient way to automatically update Homebrew.
This script will run brew update
in the background once every 24 hours (by
default) until explicitly told to stop, utilising launchd
.
brew upgrade
and brew cleanup
can also be handled automatically, but
are optional flags.
Notifications are enabled by default using a new, code-signed, universal AppleScript applet.
Just brew tap domt4/autoupdate
.
Now run brew autoupdate start [interval] [options]
to enable autoupdate.
brew autoupdate start 43200 --upgrade --cleanup --immediate --sudo
This will upgrade all your casks and formulae every 12 hours and on every system boot.
If a sudo password is required for an upgrade, a GUI to enter your password will be displayed.
Also, it will clean up every old version and left-over files.
Casks that have built-in auto-updates enabled by default will not be upgraded.
Refer to the link below to find an in-depth description of the commands.
Homebrew Documentation autoupdate subcommand
Logs of the performed operations can be found at: ~/Library/Logs/com.github.domt4.homebrew-autoupdate
This command mostly exists to ensure Homebrew is updated regardless of whether
you invoke brew
or not, which is the primary difference from the autoupdate
mechanism built into brew
, the latter requiring a user to explicitly run
any of brew install
, brew tap
or brew upgrade
.
If you run brew
commands regularly yourself, you may wish to consider using
the built-in autoupdate mechanism, which can be instructed to autoupdate less
often, or disabled entirely. If you wish to update every 24 hours using the
built-in autoupdate mechanism set this in your environment:
export HOMEBREW_AUTO_UPDATE_SECS="86400"
or if you wish to disable the built-in autoupdate mechanism entirely:
export HOMEBREW_NO_AUTO_UPDATE="1"
Please note that Homebrew slightly frowns upon people disabling the built-in autoupdate mechanism.
This tap was created by DomT4 in April 2015 to address a personal desire for a background updater, before being moved to the Homebrew organisation in April 2021 to become an official part of the project after gaining somewhat widespread usage, something I'm both surprised by, but also very appreciative of people finding a small tool I wrote so useful & contributing their own ideas and time towards.
It was in late 2023 moved back to DomT4's ownership to reduce the burden on the wider Homebrew leadership team in terms of maintenance/support requests.
Code is under the BSD 2 Clause (NetBSD) license.