If you’ve been struggling with updates across System Settings, the App Store, and individual app installers, Terminal can put the essential commands in one place. It’s especially useful when you’re maintaining several Macs or need to download an update now and install it later.
Apple’s built-in softwareupdate tool handles macOS and Apple software. Mac App Store apps require mas, while apps and command-line tools installed through Homebrew use brew.
Before installing a major macOS release, make a current backup. Keep a MacBook connected to its USB-C charger, and leave enough time for downloads and restarts.
What Each Terminal Update Tool Handles
The three tools cover different parts of your Mac:
softwareupdatechecks, downloads, and installs macOS and Apple software updates.masmanages apps associated with your Apple ID through the Mac App Store.brewupdates Homebrew formulae and casks, including supported command-line tools and desktop apps.
That division matters. Running softwareupdate won’t update every app in your Applications folder.
You can use System Settings > General > Software Update when you prefer Apple’s graphical interface. Terminal addresses the same system-update task with commands you can repeat or include in a maintenance script.
Check for macOS Updates From Terminal
Open Finder > Applications > Utilities > Terminal, then run:
softwareupdate -l
The lowercase l means “list.” The command checks Apple’s update catalog and displays compatible updates for your Mac.
The results can include an update’s label, version, download size, recommendation status, and restart requirement. Copy the exact label if you plan to install or download one specific update.
If no updates appear, Terminal returns to the prompt after completing the check. You can confirm the same result under System Settings > General > Software Update.
Download macOS Updates Without Installing Them
Downloading updates ahead of time is handy when your connection is fast now but won’t be later. Run:
sudo softwareupdate -d -a
Enter your administrator password when prompted. Terminal doesn’t display password characters while you type, which is normal.
The -d option downloads updates, while -a selects all available updates. This command leaves installation for later.
For one update, copy its exact label from softwareupdate -l and run:
sudo softwareupdate -d 'update-name'
Replace update-name with the full label, keeping the quotation marks when the label contains spaces.
Install One Specific macOS Update
Installing one update gives you more control when Terminal lists several items. This is useful if you need a security fix but want to postpone a larger macOS upgrade.
First, get the current labels:
softwareupdate -l
Then install the chosen update:
sudo softwareupdate -i 'update-name'
You can use the longer form if you find it easier to remember:
sudo softwareupdate --install 'update-name'
The label must match the listing exactly. A missing character, space, or build number can cause an “update not found” error.
Some updates require a restart. Save your work before running the command, even when Terminal’s listing doesn’t make the restart requirement prominent.
Install Every Available macOS Update
To download and install all available system updates, run:
sudo softwareupdate -i -a
The equivalent long-form command is:
sudo softwareupdate --install --all
For more detailed progress output, add --verbose:
sudo softwareupdate -ia --verbose
If you’ve been staring at the same percentage for 10 minutes, don’t panic. Large updates can pause while macOS prepares files, particularly on a slower external SSD or network connection.
Keep the Mac connected to power and a stable Wi-Fi router. If the output remains unchanged for an extended period, work through the troubleshooting section below.
Download a Full macOS Installer
A regular update package patches your current system. A full installer gives you an Install macOS app in /Applications, which is useful for upgrades, recovery work, or creating installation media.
First, list the full installers Apple currently offers for your Mac:
softwareupdate --list-full-installers
Choose an exact version from the results. For example, if the list includes macOS Sequoia 15.7.4, run:
softwareupdate --fetch-full-installer --full-installer-version 15.7.4
Terminal displays download progress and places the completed installer in /Applications.
You can open the installer from Finder when you’re ready. Availability depends on your Mac model and the macOS version currently installed, so check the list before copying a version from another Mac.
Update Mac App Store Apps With mas
Apple doesn’t provide a built-in Terminal command for updating every Mac App Store app. The actively maintained mas command-line utility handles this by working with apps tied to the Apple ID signed into the App Store.
You install mas through Homebrew. I’d skip this setup unless you plan to use Terminal for App Store maintenance more than once; the App Store’s Updates page is quicker for occasional use.
Install Homebrew
If Homebrew is already installed, check it with:
brew --version
If Terminal reports that brew can’t be found, install Homebrew with its current /bin/bash installer:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Review the text shown by Terminal before approving the installation. Homebrew may also display a command that adds brew to your shell path; run the command it provides for your Mac.
Homebrew is a third-party package manager. It handles a broad range of Mac software well, but its packages remain separate from Apple’s system-update mechanism.
Install mas
Once brew works, install the Mac App Store CLI:
brew install mas
Make sure the App Store app is signed into the Apple ID associated with your purchases. mas can only manage compatible Mac App Store apps available to that account.
List Installed App Store Apps
Run:
mas list
The output includes each installed App Store app’s numeric ID, name, and version.
This list covers Mac App Store installations that mas recognizes. Apps downloaded directly from a developer won’t appear.
Find Outdated App Store Apps
Check which recognized apps have updates available:
mas outdated
If an expected app is missing, open the App Store and verify that you’re signed into the correct Apple ID. Purchases associated with another account may stay absent from the results.
Update App Store Apps
Update every outdated App Store app with:
mas upgrade
To update one app, use its numeric ID from mas outdated:
mas upgrade 497799835
Replace 497799835 with the real ID shown for your app.
You can also search for and install App Store apps:
mas search "Xcode"
mas install 497799835
The search results provide the numeric ID needed by mas install.
Update Homebrew Apps and Tools
Homebrew handles formulae and casks installed through brew. It won’t take over apps installed through the App Store or downloaded independently from a developer.
Refresh Homebrew’s package information:
brew update
Upgrade installed formulae and casks:
brew upgrade
After confirming that the upgraded software works, you can remove outdated package versions:
brew cleanup
brew cleanup is optional. I’d skip it when you’re troubleshooting a recent upgrade and may need to inspect Homebrew’s cached files.
Troubleshoot Terminal Update Problems
softwareupdate Appears Stuck
Confirm that your Mac has power, enough free storage, and a stable connection. A weak network can leave large downloads sitting at one percentage for a long time.
Retry with detailed output:
sudo softwareupdate -ia --verbose
If one update repeatedly fails, download it separately using the exact label:
sudo softwareupdate -d 'update-name'
You can then check System Settings > General > Software Update and start the installation there.
Terminal Reports “Update Not Found”
Run the relevant listing command again instead of guessing the label:
softwareupdate -l
For full installers, use:
softwareupdate --list-full-installers
Copy the version or update label exactly. Apple may exclude a full installer that isn’t compatible with your Mac.
mas Can’t Find an App
Open the App Store and confirm that you’re signed into the Apple ID used to obtain the app. Then run:
mas list
mas outdated
Apps installed from a developer’s website, a company portal, or Homebrew fall outside mas. Update those through their original installer, built-in updater, or brew upgrade.
brew or mas Returns “Command Not Found”
Close and reopen Terminal after installing Homebrew. If the installer displayed a command for adding Homebrew to your shell environment, run that exact command before trying brew install mas again.
Check each tool separately:
brew --version
mas version
A working Homebrew installation doesn’t guarantee that mas has been installed.
Keep the Three Update Channels Separate
Terminal solves the scattered-update pain point by giving each software source a clear command:
sudo softwareupdate -i -a
mas upgrade
brew update
brew upgrade
That workflow covers macOS updates, recognized Mac App Store apps, and Homebrew packages. Apps obtained elsewhere still need their own updater, but you’re no longer dealing with several Apple update screens for routine maintenance.
Once the commands are familiar, checking a Mac takes a few minutes. The relief comes from knowing which tool owns each update rather than waiting for one command to manage software it can’t see.