Activity Monitor

mediaanalysisd Isn’t a Virus — It’s Visual Look Up (and Sometimes a Runaway Cache)

A process called mediaanalysisd is pinning your CPU, your fans are up, and something named com.apple.mediaanalysisd has quietly eaten tens of gigabytes of disk. Here’s what it actually is, the reported 2025 bug behind the worst cases, whether your photos are leaving the Mac, and how to calm it down safely.

The short version

mediaanalysisd is Apple’s media-analysis daemon — the on-device engine behind Visual Look Up (identify a landmark, plant, or pet) and Live Text (grab text out of an image). It’s not a virus. Most spikes are a one-time backlog after an import, update, or iCloud sync, and they fade. But since macOS 15.1 there’s a widely reported bug where it loops on a few undecodable images and never finishes — pinning a core for days and ballooning a cache under ~/Library/Containers/com.apple.mediaanalysisd to a reported 15–140 GB. Apple hasn’t said what triggers it. Quitting it is safe (macOS relaunches it); the honest fix is to stop the trigger, not just delete the cache.

WHAT YOU SEE mediaanalysisd 99% CPU · reported com.apple.mediaanalysisd 92 GBcache · reported WHAT IT ACTUALLY IS Visual Look Up & Live Text landmarks · plants · text in images → usually a one-time backlog Apple · on-device · expected … but since 15.1, sometimes a loop.
The scary number is Apple’s Visual Look Up and Live Text engine doing its job — usually a backlog that ends. The exception is a reported macOS 15.1+ bug that turns it into a loop.

There are two ways people arrive at this page. Some open Activity Monitor because the Mac is hot and find mediaanalysisd near the top of the CPU list. Others open the Storage settings, or a “what’s eating my disk” tool, and discover a folder called com.apple.mediaanalysisd that has somehow swallowed 40, 80, even a reported 140 GB. Both trails lead to the same daemon, and — in 2025 and into 2026 — often to the same underlying story.

Here’s the whole picture: what mediaanalysisd is for, why it’s usually harmless, the specific reported bug behind the ugly cases, the honest answer to “is it sending my photos to Apple,” and how to calm it down without deleting things you’ll regret.

What is mediaanalysisd?

mediaanalysisd is the part of macOS that analyzes images and video on your Mac to power two features you’ve probably used without thinking about the plumbing:

  • Visual Look Up — the little sparkle icon that identifies a landmark, plant, pet, or object in a photo. It arrived in macOS 12 Monterey (2021).
  • Live Text — the on-device OCR that lets you select, copy, and translate text inside an image or screenshot.

The important part — and the source of a lot of confusion — is that mediaanalysisd works system-wide, not just inside the Photos app. It’s driven by a framework called VisionKit: open an image in Quick Look, Preview, or Finder and VisionKit fires off an on-demand request that mediaanalysisd services, offloading the heavy math to the Apple Neural Engine. Howard Oakley’s log traces show exactly this — a VCPMADServiceImageProcessingTask kicking off the moment an image is opened.

mediaanalysisd vs. photoanalysisd: what’s the difference?

These two get mixed up constantly, because the names rhyme and they’re often busy at the same time. A useful mental model (it’s not an Apple-published spec, so treat it as a guide, not gospel):

  • photoanalysisd is the Photos-library daemon. Per its man page it “handles background processing of photo libraries for Memories, People and scene or object based search.” It walks your library to build the People album, Memories, and search.
  • mediaanalysisd is the broader, system-wide engine for Visual Look Up and Live Text on any image you open — a screenshot, a web image in Preview, a video frame — not only your Photos library.

Rule of thumb: if the burn is tied to Photos chewing through your library after an import, suspect photoanalysisd; if it’s tied to Visual Look Up, Live Text, or a runaway cache, suspect mediaanalysisd. On a real machine you’ll often see both.

TWO DAEMONS, DIFFERENT JOBS photoanalysisd Indexes your Photos library · People & Pets · Memories · content search in Photos scope: your library mediaanalysisd System-wide media analysis · Visual Look Up (landmarks, plants…) · Live Text (OCR in any image) · the runaway-cache bug lives here scope: any image you open
Same “analysis” family, two different daemons. photoanalysisd is about your library; mediaanalysisd is the system-wide Visual Look Up / Live Text engine.

Why is mediaanalysisd using so much CPU?

Most of the time, the answer is boring and benign: it’s working through a backlog. After a big photo or video import, a macOS upgrade, a restore, or a fresh iCloud sync, there’s a queue of unanalyzed media, and mediaanalysisd grinds through it — usually while the Mac is idle and on power. A single Visual Look Up is genuinely cheap: Howard Oakley measured a reported ~6.9 joules over about 6.5 seconds for one lookup on an M4 Pro (he cautions the measuring tool is uncalibrated). So a brief spike per image is normal, and a backlog spike ends.

Then there’s the case that brought most people here. Since late 2024, there’s a well-documented runaway bug, and the most honest thing anyone can tell you about its cause is what Michael Tsai wrote after collecting the reports: the trigger “is currently unknown … or if it’s just a bug.” What the logs do show is the shape of it. The developer behind zerosleeps captured mediaanalysisd on macOS 15.5 and reported the shape of it: ~1.64 million log lines in three hours, about 993,000 of them errors, while it retried the same 675 files — all figures from that write-up. It was stuck retrying the same handful of tiny, 1×1, or undecodable images (think stray favicons and thumbnails), choking on messages like “Image has invalid or too small dimensions” and “Failed to decode image,” never marking them done, and starting over. Forever.

If that shape — a background process pinning the CPU while nothing you did explains it — feels familiar, it’s the same lesson behind coreduetd’s busy-versus-stuck problem: a spike that fades is work; a spike that’s pinned flat for days is a loop.

The cache that ate your disk

The runaway loop has an expensive side effect: it doesn’t just burn CPU, it writes. Every retry re-caches compiled Neural Engine model bundles, and the cache balloons. This is the com.apple.mediaanalysisd folder people find eating their SSD, and it’s worth knowing exactly where it lives, because two different paths get quoted:

  • The container: ~/Library/Containers/com.apple.mediaanalysisd/Data/Library/Caches/com.apple.mediaanalysisd/
  • The subfolder where the bloat actually accumulates: …/com.apple.e5rt.e5bundlecache/ — the E5-runtime bundle cache that stores those compiled model bundles.

The numbers people report are genuinely alarming, and they’re all reported, not Apple-confirmed. The owner of the main Apple Community thread watched it grow at a reported ~67.9 MB per hour while the Mac sat idle, reaching ~17 GB in a week; others cite 50, 80, even a reported 143 GB “for a 27 GB photo library.” Just as important for anyone who cares about drive longevity: the loop drives heavy disk writes — users reported hundreds of gigabytes written per day — which is real SSD wear, the same reason we wrote about a local tool quietly spending an SSD’s endurance.

The onset lines up with a specific version: reports say it started with macOS 15.1 (October 28, 2024) and did not happen on 15.0.1; some users say it improved in 15.3, yet it’s still reported on 15.5 and 15.7, with an early mention on macOS 26 Tahoe. There is no official Apple fix note, so treat it as an ongoing, version-variable bug rather than something “fixed in X.”

THE RUNAWAY LOOP (REPORTED) try to analyze 675 tiny / 1×1 files fail → never done ↩ retry e5bundlecache GROWS ~67.9 MB / hour → a reported 15–140 GB THE REAL COST heavy SSD writes hundreds of GB / day (reported) Deleting the cache clears the symptom; if the loop still runs, it just grows back. Stop the trigger.
Why the folder balloons: the loop keeps failing on the same undecodable files and re-writing model bundles. Clearing the cache without stopping the loop just resets the counter.

Is mediaanalysisd a virus?

No. Even when it’s pinning a core and hoarding disk, mediaanalysisd is a legitimate Apple system daemon — the “media analysis daemon” — not malware and not spyware. When the crypto researcher Howard Oakley tested the “is Apple scanning my images” fear back in 2023, he found no evidence that merely viewing local images in the Finder uploads anything to Apple.

As always, the fair version of the question is about impostors, because any file can borrow a trusted name. So verify the path and the signature, not the name. The real binary lives inside a system framework — note PrivateFrameworks, not the public Frameworks folder — at /System/Library/PrivateFrameworks/MediaAnalysis.framework/Versions/A/mediaanalysisd, on the sealed, read-only System volume where it can’t be quietly modified. One command confirms it — codesign -d --requirements - prints the signing requirement, and a genuine Apple binary ends in anchor apple (Apple’s own root, used only for OS code — distinct from the anchor apple generic you’d see on third-party apps):

verify mediaanalysisd $ codesign -d --requirements - \ /System/Library/PrivateFrameworks/ MediaAnalysis.framework/Versions/A/mediaanalysisd designated => identifier "com.apple.mediaanalysisd" and anchor apple ✓ anchor apple — a genuine Apple signature THE RED FLAG A “mediaanalysisd” running from: ~/ · Downloads · an app bundle is NOT the real one. Investigate that.
Path and signature, not the name. The genuine daemon sits in MediaAnalysis.framework on the sealed System volume and signs with anchor apple.

Does mediaanalysisd send my photos to Apple?

This is the fair, important question, and it deserves an honest answer rather than either a shrug or a scare. Short version: not the images themselves. Classic Visual Look Up does its analysis on-device and only reaches out to Apple when you actually tap a result to fetch, say, the details about a landmark.

The part worth understanding is newer. In macOS 15.1 Sequoia / iOS 18.1 (October 28, 2024) Apple added Enhanced Visual Search, which lets Photos match landmarks even in pictures with no location data. Here’s how Apple describes the mechanism: your device decides a photo probably contains a landmark, computes a low-fidelity “embedding” — a mathematical fingerprint, not the photo — then encrypts it with homomorphic encryption, adds noise for differential privacy, and sends it through an OHTTP relay (run by a third party, reported to be Cloudflare) that hides your IP address. A private match runs against Apple’s landmark index and returns an encrypted result only your device can read. Apple’s own line: it “works without sending your photos or videos to Apple.”

Credit where it’s due: that’s a genuinely privacy-engineered design, and cryptographers who reviewed it said the math is sound. The fair criticism — from developer Jeff Johnson and Johns Hopkins cryptographer Matthew Green — isn’t that it steals your photos; it’s that Apple turned it on by default and barely announced it. If you’d rather it were off, the toggle is Photos → Settings → General → “Enhanced Visual Search” on macOS (on iPhone: Settings → Apps → Photos). One honest catch worth knowing, because most write-ups miss it: turning off Enhanced Visual Search does not turn off ordinary Visual Look Up — those are separate settings.

ENHANCED VISUAL SEARCH · WHAT LEAVES YOUR MAC your photo stays on device ON-DEVICE an “embedding” a math fingerprint, not the image + homomorphic encryption OHTTP RELAY hides your IP relay sees IP, not the data (reported: Cloudflare) APPLE private match on landmark index Apple sees data, not your IP The math is sound — the fair criticism is that it was on by default. Turn it off: Photos → Settings → General → Enhanced Visual Search Note: this does NOT disable ordinary Visual Look Up — that’s a separate setting.
Enhanced Visual Search is privacy-engineered: an encrypted fingerprint, not your photo, behind an IP-hiding relay. The honest gripe is that it shipped on by default — and it’s one toggle to turn off.

Can I quit or disable mediaanalysisd?

You can quit it, and it’s safe. Like every system daemon in this family, mediaanalysisd is managed by launchd, so quitting it in Activity Monitor (select it → stop → Quit) or with killall mediaanalysisd just relaunches it the next time a feature needs it. If it was mid-loop, that restart buys you a pause — useful right before you clear the cache, so it isn’t writing while you delete — but it isn’t a cure on its own.

You cannot permanently delete or disable it: the binary is on the sealed, read-only System volume, protected by System Integrity Protection, and it comes back on reboot. Disabling SIP to strip it out would be a real security downgrade to kill a normal system process — not warranted. The productive levers are in the next section.

How to calm mediaanalysisd down (safely)

Match the fix to which case you’re in:

  1. If it’s a backlog (it’s fading), just let it finish. After an import, upgrade, or big iCloud sync, plug in, leave the Mac awake and idle for a while, and let it complete. The spike is expected and ends.
  2. Confirm which case you’re in. Check the cache size with du -sh ~/Library/Containers/com.apple.mediaanalysisd. A few hundred megabytes is normal; tens of gigabytes, plus days of pinned CPU, is the runaway bug.
  3. For the runaway bug: quit, then stop the trigger. Quit mediaanalysisd first (above). The lever that actually broke the loop for several people — per the zerosleeps write-up — was excluding the offending media folder from Spotlight indexing in System Settings → Spotlight → Search Privacy, which stops it from re-scanning the files it chokes on.
  4. Clear the cache only after you’ve stopped the loop — and know the caveat. Clearing the cache inside ~/Library/Containers/com.apple.mediaanalysisd (the e5bundlecache folder) reclaims the space, but it’s a cache: macOS rebuilds what it needs, and if the loop is still running it just grows back (one user cleared ~50 GB and watched ~20 GB return). So it treats the symptom; the Spotlight exclusion cuts off the files the loop keeps choking on. (The bug’s root trigger is still officially unknown, so this is a reported lever, not a certified fix.)
  5. Optionally, turn off Enhanced Visual Search in Photos → Settings → General if you don’t use landmark search and prefer nothing leaving the device. This turns off only the Photos landmark-matching path — ordinary Visual Look Up is separate and stays on — and there’s no evidence it stops the runaway-cache bug, so don’t treat it as the fix.

And a reported curiosity worth a mention, because it’s odd and free: some users found that simply keeping the Photos app open stops mediaanalysisd from running its background pass. File that under “workaround,” not “explanation.” What doesn’t help: a “cleaner” or “antivirus” app — it can’t touch a sealed Apple system daemon, and the pages promising to “fix mediaanalysisd” are a marketing hook, not a fix.

When is mediaanalysisd actually a problem?

When the runaway picture holds all at once:

  • CPU pinned for days, not a fading backlog.
  • The com.apple.mediaanalysisd cache is tens of gigabytes and still growing.
  • You’re seeing heavy disk writes with the machine otherwise idle.

That combination is the reported bug, and it’s worth the steps above — and worth reporting to Apple through Feedback Assistant, since the trigger is officially unknown and more reports are how it gets fixed. Everything short of that — a spike that fades after you imported photos or updated macOS — is the system doing its job, and the right move is to let it finish.

What CoreGuard shows during a mediaanalysisd spike

This is exactly the kind of moment I’m building CoreGuard for, so let me be concrete — and honest about the limits.

The hard part here is seeing the whole shape: the scary process, whether it’s fading or stuck, and the cache quietly growing in the background. CoreGuard names the top process in plain English — “mediaanalysisd — Visual Look Up & Live Text,” not a cryptic string — so you know it isn’t malware. It shows live temperatures, fan RPM, and CPU/load with a history, so you can tell a fading backlog from a flat, pinned loop. And in its read-only disk inventory, it surfaces a ballooning directory like com.apple.mediaanalysisd so you can actually see the bloat instead of hunting for it — the process naming, the live readings, and every danger warning are free, forever; the detailed disk inventory and per-app energy history are part of Pro.

The honest limits: CoreGuard does not clean, delete, throttle, or “fix” mediaanalysisd, it doesn’t empty that cache for you, and it is not an antivirus. It observes and explains, then hands you Apple’s own real settings — the Spotlight exclusion, the Enhanced Visual Search toggle — and lets you decide. It’s local-only, too: zero network connections, no account, no telemetry, which you can verify yourself with lsof -i -nP | grep CoreGuard and watch nothing happen.

CoreGuard isn’t out yet — the download and checkout go live shortly. Free covers the live readings, the “what’s eating your Mac” process naming, the history, and every danger warning, forever; Pro is a one-time $29 (Family $49), perpetual, not a subscription, with a 30-day money-back guarantee. So the honest ask: get notified and grab it free at launch, or see what Pro adds. Either way — next time a process runs your Mac hot and your disk keeps shrinking, check the name, the trend, and the cache before you touch anything.

Frequently asked questions

What is mediaanalysisd on Mac?

mediaanalysisd is Apple's media-analysis daemon in macOS. It runs the on-device machine learning behind Visual Look Up and Live Text — identifying landmarks, plants, pets and objects, and pulling text out of images — across the whole system, not just the Photos app. It ships with macOS and is not a virus.

Why is mediaanalysisd using so much CPU?

Usually it's working through a backlog of media after a big import, a macOS update, or an iCloud sync, which is expected and ends. Since macOS 15.1 there's also a reported bug where it gets stuck re-processing a handful of tiny or undecodable images in a loop and never finishes; Apple hasn't said what triggers it. Watch whether the CPU fades over hours (normal) or stays pinned for days (the bug).

Is mediaanalysisd a virus?

No. The real mediaanalysisd is an Apple-signed system daemon at /System/Library/PrivateFrameworks/MediaAnalysis.framework/Versions/A/mediaanalysisd. Run codesign -d --requirements - on that path; a genuine Apple binary ends in 'anchor apple'. A process using that name from your home folder or Downloads would be the red flag.

Why is com.apple.mediaanalysisd taking so much disk space?

Since macOS 15.1, many users have reported its cache — under ~/Library/Containers/com.apple.mediaanalysisd, in the e5bundlecache folder — ballooning to a reported 15 to 140 GB, usually alongside the runaway-CPU bug. It's a cache, so clearing it is generally safe, but it can regrow if the underlying loop isn't stopped, so quit the daemon first and treat the cause, not just the size.

Is it safe to quit mediaanalysisd?

Yes. It is managed by launchd, so quitting it in Activity Monitor or with killall just relaunches it when a feature needs it. You cannot permanently delete it because it lives on the sealed system volume. Quitting is a pause, not a cure.

Does mediaanalysisd send my photos to Apple?

Not the images themselves. Visual Look Up only contacts Apple when you tap a result, and the newer Enhanced Visual Search sends an encrypted mathematical embedding — not the photo — using homomorphic encryption and a relay that hides your IP. The fair criticism is that Enhanced Visual Search was on by default; you can turn it off in Photos, Settings, General.

See the whole shape — the process, the trend, and the cache.

CoreGuard names the hot process in plain English, tells you when it’s an expected daemon like mediaanalysisd, keeps the history so you can tell fading from stuck, and surfaces a ballooning cache in a read-only disk inventory. It observes and explains — it won’t clean, delete, or “fix” an Apple background process, and it’s not an antivirus.

launching soon · one-time purchase, not a subscription · 30-day money-back · local-only, zero telemetry

Sources & further reading

Related reading

All insights