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.
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.