How to Update macOS and Mac Apps From Terminal in 2026

·
8 min read

Switching to Mac is reader-supported. We may earn a commission when you buy through links on our site. Learn more.

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.

Terminal window on macOS showing softwareupdate, mas, and brew update commands at the command prompt

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:

  • softwareupdate checks, downloads, and installs macOS and Apple software updates.
  • mas manages apps associated with your Apple ID through the Mac App Store.
  • brew updates 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.

Terminal window with softwareupdate -l entered at the prompt and the command highlighted

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.

Terminal showing Software Update Tool results with available update labels, versions, sizes, and restart requirements visible

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.

Terminal window with sudo softwareupdate -d -a entered and download progress for all available macOS updates visible

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'
Terminal window showing sudo softwareupdate -i followed by a quoted macOS update label, with installation progress visible

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
Terminal window with sudo softwareupdate -i -a entered and multiple macOS updates downloading and installing

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.

Terminal window showing the current Homebrew installation command using /bin/bash and the install.sh script from the Homebrew GitHub repository

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
Terminal window with brew install mas entered and Homebrew showing a successful mas installation

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.

Terminal showing mas list output with installed Mac App Store app IDs, names, and versions

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
Terminal window showing mas outdated output with Mac App Store app IDs, installed versions, and available versions

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
Terminal window showing mas upgrade downloading and installing updates for multiple Mac App Store apps

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.