
I found 27 Intel-only apps on one Mac: a fleet view for the Rosetta wind-down
Apple is winding Rosetta down, and Jamf can't tell you which Macs still have Intel-only apps installed. This Extension Attribute reports it fleet-wide, and fails closed instead of handing you a false zero.
I scanned one Mac and found 27 Intel-only apps still installed. Apple is winding Rosetta 2 down, and that count is one most Mac admins don't have across a whole fleet yet.
General-purpose Rosetta stays available through macOS 27. From macOS 28 it narrows to a subset of older, unmaintained games. macOS already notifies a user when an Intel app won't work with a future release, which is fair warning to someone sitting at their Mac. It lands per-machine, at launch time, one warning at a time. The fleet question is the one Apple doesn't answer: across every Mac, which apps still carry Intel-classified status, and which are they? Jamf's built-in Applications criteria cover title and version, not architecture.
The design is in how it runs
So I built the fleet view as a Jamf Extension Attribute, and how it runs is half the point. A full application scan isn't instant, so the EA doesn't scan. A background LaunchDaemon runs the scan on its own timer, caches the result to a root-only file, and the EA reads that file in well under a second. The default interval is seven days, one install parameter you set to match your own migration deadlines.
Two things I wanted to get right, because they are where this kind of tool usually breaks.
Classify on the field, not the label
The obvious approach is to grep system_profiler for Kind: Intel. That label is localized. On a non-English Mac the English string doesn't match, the count silently reads zero, and you would never know. This reads the observed arch_kind field underneath the label instead, from system_profiler -json SPApplicationsDataType. Anything it doesn't recognize is reported as Unknown, not assumed native.
Fail closed when the tool can't tell
system_profiler with a timeout can return exit code 0 and an empty result, which looks exactly like a clean "no Intel apps" if you trust the exit code. A missing field or an empty list gets marked Unknown and Partial instead.
A complete-looking list is its own trap. system_profiler can hand back a well-formed inventory that quietly omits bundles. So a Complete result isn't trusted on its own. It gets reconciled against a direct scan of the bundles on disk, and if the two disagree, the read is Partial. That is the belt-and-suspenders habit: a false "you're clean" is worse than an honest "I'm not sure."
The 27 on my test Mac came from that fallback path. Spotlight was disabled, system_profiler returned an empty array, and the script fell back to scanning each application bundle's executable directly. The result records DetectionSource: DirectBundleScan, so Jamf inventory shows which path supplied the count.
One reader, three signals
The EA surfaces the count summary, the Intel-only app list, or both. Each is a single value you can Smart-group on. A migrated Mac reads IntelOnly: 0, but only when the scan is Complete, Unknown is 0, and the read isn't stale or uncollected. Zero on its own isn't enough to trust, and the reader flags NOT_COLLECTED and STALE rather than reporting an empty or stale cache as a clean result.
Go64 and HoudahSpot already do this well on a single Mac. I wanted the fleet answer as a Jamf EA and couldn't find one, so it is open source and MIT-licensed in the macadmin-toolbox repo. Scope is application bundles under the paths you set; it classifies the top-level architecture, not nested helpers or frameworks, and not whether anything has actually run. The README covers deploying it across a fleet and the questions that come up first.
Sources
The Rosetta timeline is Apple's own deprecation note; the tool and its README are in the repo. Prior art is credited where a link exists:
- Apple: Apple Platform Deprecations (Rosetta 2 through macOS 27, narrows from macOS 28)
- St. Clair Software: Go64 (per-Mac Intel/Rosetta checker, prior art)
- GitHub: macadmin-toolbox (MIT)
- GitHub: Intel App Auditor Extension Attribute and README