The short version
The August 2026 reporting snapshot contains 56,002 retained app reports covering 9,171 distinct bundle identities. Assigning each identity its latest reported channel produces 10 categories that add up exactly to the identity total. A real Mac can still combine store apps, package-manager installs, appcast updates and vendor installers; these counts describe this reporting sample, not the mix on every Mac.
What this report measures
The reporting window is 2026-08-01 inclusive through 2026-09-01 exclusive, in UTC. We queried retained coverage reports on 2026-09-07. A record describes an app reported to macCurrent's coverage pipeline; repeated records are not additional users or additional apps.
App coverage reports retained for the UTC calendar month. This is a reporting sample, not a representative sample of Macs or a count of users.
An app can appear in these reports and also appear in today's catalog. Reporting behavior, development activity and catalog coverage change over time. App Store is a reported category too; this dataset does not exclude every store app. No market-share or whole-Mac coverage estimate follows from these figures.
The headline numbers
Latest reported channel per bundle identity, August 2026. Each identity contributes to exactly one row.
| Latest reported channel | Distinct app identities |
|---|---|
| Direct | 6,488 |
| App Store | 1,330 |
| Sparkle | 1,329 |
| Adobe Remote Update Manager | 11 |
| Homebrew Cask | 6 |
| Homebrew Formula | 2 |
| Microsoft EdgeUpdater | 2 |
| Docker Desktop | 1 |
| Google Software Update | 1 |
| Microsoft AutoUpdate | 1 |
| Total (one row per identity) | 9,171 |
451 identities had more than one channel label during the month. Counting an identity in every observed channel would create overlapping totals. This table uses only its latest report, with report ID as the tie-breaker for equal timestamps. A Direct label is a client classification; it does not prove that an app lacks another updater or that an update is unsafe.
What the curated catalog shows
A separate catalog snapshot taken 2026-09-07 contains 5,845 app records marked verified or vendor-managed with at least one enabled source. This is a configuration count, not the number of apps macCurrent can automatically update. An App Store catalog entry is not proof of a current offer for a particular Apple Account or Mac.
| Configured source type | Distinct catalog apps |
|---|---|
| app store | 5,657 |
| homebrew cask | 123 |
| vendor managed | 25 |
| github releases | 22 |
| manual version page | 21 |
| sparkle appcast | 12 |
| vendor download redirect | 7 |
| tauri updater | 3 |
| brave versions | 1 |
| capture one releases | 1 |
| cua driver releases | 1 |
| duckstation releases | 1 |
| electron releases json | 1 |
| folge changelog rss | 1 |
| installomator label | 1 |
| lm studio download page | 1 |
| maxon cinema4d downloads | 1 |
| rpcs3 update api | 1 |
| warp stable versions | 1 |
| zevrix version control | 1 |
35 catalog apps have more than one enabled source type, so this table deliberately overlaps. Do not add its rows to obtain the unique app total. The separate Homebrew index contains 7,913 cask records, of which 6,737 are neither deprecated nor disabled; those index records are not all reviewed macCurrent update routes.
The six common update channels
Zoom out from the counts and most Mac apps fall into one of six update paths: App Store receipts, Homebrew formulae and casks, Sparkle appcasts, vendor-managed updaters, direct-download replacement archives, and manual release pages. Each has a different trust signal, install method, and failure mode. The update sources guide walks through each in detail.
What each channel needs before you trust it
App Store updates should match the installed receipt, Homebrew updates the installed cask or formula identity, and Sparkle updates should verify appcast and archive signatures. Direct replacements should preserve bundle ID and signing team. Vendor updaters should be recognized as intentionally vendor-managed, and manual updates should slow down for review instead of installing silently. A channel label by itself is not evidence that these checks passed.
Why comparing Mac update data is hard
Update coverage claims are hard to verify because every tool sees a different slice of the same Mac: a Homebrew-only view counts casks, a Sparkle-focused menu app counts appcast feeds, and the App Store counts only its own receipts. None is wrong; they measure different populations, so coverage numbers from different tools cannot be compared directly.
This report counts retained app reports and assigns one latest label per bundle identity. It does not measure whether every reported app could be updated successfully. A fair product comparison needs a controlled app set and observed installation outcomes in addition to source labels.
What fragmentation means in practice
A mixed app library needs several checks: brew outdated --cask will not list App Store installations, the App Store will not list casks, and other apps may depend on an in-app updater or the publisher’s release page. A reported Direct label does not tell us which of those checks an individual app needs.
The practical fix is not one magic updater; it is knowing which channel owns each app and applying the right checks for it. The pillar guide to updating Mac apps safely covers those habits; the update tracker guide covers keeping an inventory of what updates from where.
Methodology notes
Case-insensitive bundle identifier; blank identities excluded. Different versions, builds, signing teams and installations sharing that identifier are counted together.
Reported channel labels are observations, not installation tests or independently verified update authority. The public downloads contain aggregate counts only, with no app-level records or client identifiers.
The previous July table listed 2,036 identities but its channel rows summed to 2,045. Its published aggregates did not establish the overlap. This edition replaces it with a dated snapshot and an explicit, reconciled counting rule; it does not claim growth relative to July.
Download the aggregate JSON and methodology or the aggregate CSV tables. Both tables are generated from the same snapshot used for this page.
Where macCurrent fits
macCurrent is built around source-aware update review: it shows App Store, Homebrew, Sparkle, vendor, and direct-download paths together, separating updates that look safe from ones that need review or a handoff. It backs up apps before direct replacements and keeps per-app history. The current release candidate is free to use. Install macCurrent to see the update map of your own Mac.
Frequently asked questions
Why are Mac app updates so fragmented?
macOS has several legitimate distribution models. Apple controls App Store updates, Homebrew manages its own packages, many indie apps use Sparkle, and large vendors often ship their own update services.
Can one tool safely update every Mac app?
No tool should blindly update every app. A safer tool should detect the source, verify identity and signing where possible, back up direct replacements when appropriate, and hand off risky paths for review.
What is the safest Mac app update channel?
There is no single safest channel for every app. The safest path is the one that matches how the app was installed and can be verified before replacement.
Where does the data in this report come from?
56,002 retained coverage reports received during August 2026, grouped into 9,171 case-insensitive bundle identities. Each identity is assigned its latest reported channel. Counts describe the retained reporting sample, not users or market share.
How often is this report updated?
This edition uses the complete August 2026 reporting window and a separate catalog snapshot dated 2026-09-07. New editions should retain dated aggregate files and the same counting rules before making comparisons.
Can I contribute by running scans?
Using macCurrent’s coverage reporting can help identify apps that need review. Reporting settings and eligibility determine which records are sent. The public report contains aggregate counts only.