188 words
1 minutes
Update everything on macOS with one Fish command

Picture from Andras Vas on Unsplash

Got tired of running multiple apps and commands to keep my Mac updated? Here’s a Fish shell function that handles everything in one go:

function upall --description "Update all the things"
    brew update-reset && \
    brew update && \
    brew upgrade --formulae && \
    brew cu --all --cleanup --no-brew-update --interactive --include-mas && \
    brew cleanup --prune=all
end

Just run upall and you’re set! Here’s what each part does:

  • brew update-reset - Resets Homebrew to fix any potential issues
  • brew update - Fetches the latest package definitions
  • brew upgrade --formulae - Updates all your CLI tools and libraries
  • brew cu --all --cleanup --no-brew-update --interactive --include-mas - Updates cask applications and Mac App Store apps (requires brew-cask-upgrade)
  • brew cleanup --prune=all - Removes old versions and cleans up the cache

The --interactive flag is particularly nice—it lets you choose which cask apps to update, perfect for when you want to skip that one app that always breaks after updates.

To add this to your Fish shell, paste the function into a function file, mine is .config/fish/functions/upall.fish. No more remembering multiple commands or running them one by one!

Note: You’ll need to install brew-cask-upgrade first, see github.com/buo/homebrew-cask-upgrade.

Update everything on macOS with one Fish command
https://alyx.pink/posts/2025-09-17-fish-shell-update-everything-mac/
Author
Alyx
Published at
2025-09-17