UpdatePeek
How to use UpdatePeek to see macOS updates, open Software Update, check Homebrew and global npm packages, and update an npm package after you confirm.
The question it answers: what updates are available?
What you see
- Your macOS version and build, and a prominent Open Software Update button, which opens System Settings → General → Software Update. That is where macOS updates are installed; MacPeek never installs them.
- macOS update status, with its source always shown:
- When you open UpdatePeek, it reads macOS’s own record of its last background check. If macOS has already found an update, it is listed (name, version, Recommended, Restart required where macOS says so) and the launcher shows “N updates found”. This can be out of date, and an empty record proves nothing, so with no record the status is Not checked.
- Check now asks Apple’s update servers through the
softwareupdatetool and shows what it answered with the time: the updates it lists, or “macOS reports no new software available”. If it cannot check (you are offline, for example) you see a failure with a retry, never “no new software”.
- Homebrew, only if installed: press Check under Homebrew packages to list outdated formulae and casks, each with its installed and current version, the source and the time of the check.
- npm, only if it is installed in
/opt/homebrew/binor/usr/local/bin: press Check under npm global packages to list the globally installed packages that are outdated, each with its installed and latest version. Project dependencies are not checked, and npm installed with nvm, fnm or Volta is not detected. - Other apps: “update status unavailable”. UpdatePeek does not infer it from app metadata or web pages.
How to use it
- Open UpdatePeek. Read the macOS status, press Check now to ask Apple, or press Open Software Update to install what macOS offers.
- If you use Homebrew or npm, press Check under its heading.
- For a Homebrew package, press Copy command (
brew upgrade <name>) and run it in Terminal. - For an npm package, press Update. UpdatePeek shows the exact command,
npm install -g <name>@latest, and runs it only after you confirm. Or press Copy command and run it yourself.
Updating an npm package
- UpdatePeek runs the command only for a package npm just listed, one at a time, and never with administrator rights (it never runs
sudoand never asks for your password). A package’s own install scripts run, exactly as they would if you ran the command in Terminal. - npm’s latest can be a new major version. Read the package’s release notes first; the confirmation reminds you.
- If npm is not allowed to change its global packages (common when Node was installed with the nodejs.org installer), you see a plain explanation and the same command with
sudoin front, with a copy button:sudo npm install -g <name>@latest. Paste it into Terminal; Terminal asks for your password, and MacPeek never sees it. Withsudo, the package’s install scripts run with administrator rights, so use it only for packages you trust. Fixing npm’s folder permissions, or using a Node install your user owns such as Homebrew’s, avoids needingsudoat all. - An update that has started keeps running if you leave the screen, so an install is never interrupted halfway. The result shows when you return, and after a successful update npm is asked again so the list shows what is left.
- Homebrew packages stay copy-only, because cask upgrades can ask for a password.
Good to know
- “Homebrew reports no outdated packages” means exactly that. It reflects Homebrew’s last-fetched index, because UpdatePeek never runs
brew update, and the screen says so. - UpdatePeek shows what macOS, Homebrew and npm report. It never says your Mac is “up to date”.
- If a tool is missing or fails, you see a plain message and can try again.
Privacy and safety
Nothing runs until you press a button, except reading macOS’s local update record when you open the screen. Checks run as fixed commands with no shell and are cancelled if you leave the screen. UpdatePeek needs no permission and does not show raw command output.
Three actions use the network, each only when you press its button: Check now asks Apple’s update servers; the npm Check asks the npm registry (npmjs.org unless your own npm settings say otherwise), which sees the names of your global packages, as it does for any npm outdated -g; and an npm Update downloads the package from the registry. Homebrew’s check makes no request, because MacPeek never runs brew update. MacPeek makes no network request of its own.