current journal · 3 min read

How to update Mac apps that aren’t from the App Store

The App Store only updates apps it installed. Here’s how Sparkle, Electron, Microsoft, Adobe and updater-less Mac apps update, and how to find which is which.

Published November 1, 2026 · Updated November 1, 2026

The App Store’s Updates page only knows about apps the App Store installed. Everything you downloaded from a developer’s website, from browsers to editors to small menu bar utilities, updates through its own system. Here’s how to tell which system each app uses and how to update it.

Why the App Store can’t update them

An app from the App Store carries a receipt tied to your Apple Account, and Apple delivers its updates. An app from a website is signed by the developer with their own Developer ID and delivered from their servers. macOS checks those apps when you open them, through Gatekeeper, but it doesn’t fetch new versions of them. To see which of your apps fall into this group, open System Information → Software → Applications and look for Obtained from: Identified Developer.

Sparkle apps: “Check for Updates…”

Sparkle is the open-source update framework most independent Mac apps use. The app reads a feed (an “appcast”) from the developer’s site, compares versions, and offers the update. Look for Check for Updates… in the app’s own menu, next to About, and for a setting to check automatically.

To list the Sparkle apps on your Mac, run this in Terminal:

ls -d /Applications/*.app/Contents/Frameworks/Sparkle.framework | sed 's#/Contents.*##'

Sparkle checks only run while the app is open, so an app you rarely use can be several versions behind without telling you.

Electron apps: update on relaunch

Apps built with Electron, such as Slack, Figma, Postman and many AI and developer tools, usually download updates silently and apply them when you quit and reopen the app. If one is behind, quit it with ⌘Q (closing the window isn’t enough) and open it again. To list them:

ls -d /Applications/*.app/Contents/Frameworks/"Electron Framework.framework" | sed 's#/Contents.*##'

Apps with their own updater

  • Microsoft Office uses Microsoft AutoUpdate. Open any Office app and choose Help → Check for Updates.
  • Adobe apps update through the Creative Cloud app.
  • Google Chrome updates itself; Chrome → About Google Chrome triggers a check.
  • Setapp updates the apps it installed from its own window.

Apps with no updater at all

Some small utilities and older apps never check for updates. Compare the version under App menu → About with the developer’s website or GitHub Releases page, download the new version from there, quit the old one, and replace it in Applications. Before you open it, it’s worth confirming the new copy is signed by the same developer as the old one; here’s how to check.

Homebrew casks

If you installed an app with brew install --cask, Homebrew can update it too. Run brew outdated --cask --greedy to see which are behind, including the ones that also update themselves. Our Homebrew guide covers the details.

Keeping them all current without opening each one

The catch with all of the above is that most apps only check while they’re open. An updater app reads each app’s update source for you and shows one list. Current, which we make, reads Sparkle appcasts, Electron update feeds and Homebrew’s cask catalog, opens App Store apps in the App Store, and lets you add a GitHub Releases repository or a JSON feed for an app it can’t find. Before installing, it checks that each update is from the same developer, notarized by Apple, built for your Mac and actually newer, and it puts the old version back if the new one fails its final check.

For a wider look at how macOS splits updates between systems, see Why Mac app updates feel fragmented.

← All articles