← All articles

iMessage Attachments Are Quietly Filling Your Mac

Every photo, video and voice memo sent to you in Messages is cached in ~/Library/Messages/Attachments. How to check its size and clear it safely.

· Updated September 14, 2026
MessagesiMessagemacOSStorage

If Messages is synced via iCloud across your iPhone and Mac — the default, and how most people run it — every photo, video, voice memo, and file anyone has ever sent you in a conversation is cached locally on this Mac too, not just on your phone.

du -sh ~/Library/Messages/Attachments

Group chats with a lot of photo and video sharing are the usual driver here — a single active group chat over a year or two can easily account for several gigabytes on its own, and most people have more than one.

Where the actual data lives

Messages splits its storage into a database (the text and metadata) and a separate attachments folder (the media itself), similar to Mail’s structure:

du -sh ~/Library/Messages/chat.db          # message text, small relative to attachments
du -sh ~/Library/Messages/Attachments      # every photo, video, voice memo — this is the big one

Attachments is organized in a nested hash-based folder structure rather than by conversation, which is why you can’t simply browse to “the folder for this one group chat” — the app’s own UI is the practical way to identify and delete per-conversation, covered below.

The easiest safe fix: let Messages manage it automatically

System Settings → Messages → iMessage → Message History, or within the Messages app’s own settings, has options to automatically delete messages and attachments after 30 days or a year instead of keeping everything forever. This is the single highest-leverage change for most people — turning on 1-year retention instead of “Forever” caps the ongoing growth without you doing anything further.

This is forward-looking only — it doesn’t retroactively clean up years of already-accumulated attachments, which the steps below handle.

Clearing what’s already accumulated

Per-conversation, from inside the app (safest, most surgical): open a conversation, use the conversation details panel to see and delete individual large attachments or photos, particularly in group chats you no longer participate in actively but never left.

System-wide, via Storage settings: System Settings → General → Storage, then the Messages category, which shows total size and offers a “Review Large Attachments” or similar view sorted by size — the fastest way to find the single largest offenders without manually opening every conversation.

Direct deletion from the Attachments folder (last resort, more disruptive): safe in the sense that Messages regenerates its internal references, but can leave broken-looking placeholder images in old conversations rather than cleanly removing the message reference too. The in-app deletion methods above are cleaner and recommended over this for most people; this option exists mainly for scripting a bulk cleanup across attachments older than a certain date:

find ~/Library/Messages/Attachments -type f -mtime +365 -exec du -ch {} + | tail -1
# Review the total first; only proceed to an actual delete via the app's own
# retention settings above rather than deleting these files directly, to
# avoid the broken-placeholder issue.

Voice memos specifically

Voice messages sent via Messages have a default expiration (2 minutes after being heard, unless “Keep” is tapped) on iOS, but this expiry behavior doesn’t always apply cleanly to how they’re cached on Mac, and some accumulate regardless. Worth a specific check if you’re a heavy voice-memo user:

find ~/Library/Messages/Attachments -iname "*.caf" -exec du -sh {} \; 2>/dev/null | sort -hr | head -10

What’s not safe to touch

chat.db is your actual message history — text content, timestamps, read receipts. Unlike attachments, which are large media files with an obvious storage cost, the database itself is small and not worth targeting for space; deleting or corrupting it loses your conversation history outright with no server-side recovery for on-device-only setups. Everything in this article is scoped to Attachments, deliberately, not the database.

The pattern, one more time

Messages joins Mail and Photos as the third major Apple-app category that silently accumulates real, synced data rather than disposable cache — worth knowing as a distinct category from the developer build caches covered across the rest of this blog, since the safe response to each is different: developer caches you delete freely, these three you manage through retention settings and selective review instead.

DevCruft, a free Mac app for developers that’s in development, is being designed to show Messages attachments sized on a disk map alongside everything else, so you’d know whether it’s worth a special trip through Settings before you go looking. Join the waitlist to hear when it’s available.

For the same situation in Mail, see the Mail.app storage guide.

A free app for this is on the way.

We’re building DevCruft to find every cache in guides like this one and show what each costs you. Join the waitlist to hear when it launches.

One email at launch, nothing else. Ask us any time to remove you. Privacy policy