update-all
update-all is a small macOS and Linux CLI that updates the package managers and developer tools installed on your machine.
It skips tools that are not installed, runs independent updates in parallel, and keeps system updates in a sequential pass.
Install
Production install with uv:
uv tool install update-all@latest --force --python 3.11
Editable development install:
pip install -e ".[dev]"
Usage
update-all
update-all --os
update-all --only BREW,NPM
update-all --skip CLAUDE
update-all --jobs 4
update-all --force
update-all update
update-all logs
Useful options:
| Option | Description |
|---|---|
--os |
Include macOS or Linux system updates. |
--only LABELS |
Run only the comma-separated updater labels. |
--skip LABELS |
Skip the comma-separated updater labels. |
--jobs N |
Set the maximum number of parallel workers. |
--force |
Ignore the once-per-day idempotency check. |
--background |
Run without interactive output, skip OS updates, and log to a file. |
--install-agent |
Install a LaunchAgent on macOS or a systemd timer on Linux. |
--uninstall-agent |
Remove the background scheduler. |
update |
Update update-all itself from PyPI using uv. |
logs |
Display the latest background-run log. |
Updates performed
Each updater runs only when its tool is available.
| Label | Tool | Commands |
|---|---|---|
BREW |
Homebrew formulae and casks | brew update; brew upgrade; macOS: brew upgrade --cask --greedy; brew autoremove; brew cleanup --prune=all; brew doctor |
APT |
APT system packages | sudo apt update; sudo apt full-upgrade -y; sudo apt autoremove -y; sudo apt clean |
SNAP |
Snap packages | sudo snap refresh |
FLATPAK |
Flatpak packages | flatpak update -y |
MAS |
Mac App Store | mas upgrade |
NPM |
Global npm packages | npm update -g |
PNPM |
Global pnpm packages | pnpm update -g |
YARN |
Global Yarn v1 packages | yarn global upgrade |
PIPX |
pipx packages | pipx upgrade-all --include-injected |
RUST |
Rust toolchain | rustup self update && rustup update |
CARGO |
Cargo-installed binaries | cargo install-update -a |
ASDF |
asdf plugins | asdf update && asdf plugin-update --all |
MISE |
mise toolchain | mise self-update -y && mise upgrade -y |
HERMES |
Hermes Agent CLI | hermes update |
CLAUDE |
Claude CLI | claude update |
OMZ |
Oh My Zsh | Run Oh My Zsh's upgrade script, falling back to git pull --rebase --autostash |
With --os, the additional system commands are:
- macOS:
sudo softwareupdate -landsudo softwareupdate -ia --verbose - Linux:
sudo apt full-upgrade -yandsudo apt autoremove -y
Release files for update-all 2.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| update_all-2.0.7.tar.gz | 34.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| update_all-2.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.0 kB
Release files / update_all-2.0.7.tar.gz
| Download URL | update_all-2.0.7.tar.gz |
|---|---|
| Size | 34.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0322ea430da470e4a5f2c5e53e35e409510db132ff76101f423bfa7764908320
|
|
BLAKE2b-256 checksum How to use checksums |
304ff3f96c06f5bff30f99c3f5bcfa233bdc162127684de69e6d0076ec1a070e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / update_all-2.0.7-py3-none-any.whl
| Download URL | update_all-2.0.7-py3-none-any.whl |
|---|---|
| Size | 24.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
021a6adfc63c381e33a31ac15c5b3dbfa56dae6daf2e371075176ec2a4d88f4a
|
|
BLAKE2b-256 checksum How to use checksums |
a30fefb92eda322f1831b267656037750e107e5df825eeed330b9fd3c8106b1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log