Where apps hide your files
Signal Desktop stores received files in its own data folder, away from Downloads, and current versions encrypt them on disk. Here is where to look, and what to do instead of copying files out.
Signal Desktop keeps everything in one folder, the same one Signal's support pages tell you to remove when you reset the app:
~/Library/Application Support/Signal/
Received and sent attachments sit in a subfolder of it:
~/Library/Application Support/Signal/attachments.noindex/
The .noindex suffix tells Spotlight to skip the folder, which is one reason a normal search never finds these files. The folder and file names in this post are the ones defined in Signal Desktop's open-source code.
Choose Go > Go to Folder (⇧⌘G) in Finder and paste the path, or run this in Terminal:
open ~/Library/Application\ Support/Signal
To check what is there without opening any file, list names only:
ls ~/Library/Application\ Support/Signal
| Item | What it is |
|---|---|
attachments.noindex/ | Attachments, in subfolders with hash-like names |
avatars.noindex/, stickers.noindex/, drafts.noindex/ | Profile pictures, sticker packs, attachments in unsent drafts |
sql/db.sqlite | The message database, which is encrypted |
config.json | Settings, including the database key in encrypted form. Treat it as private |
temp/, update-cache/ | Working files and downloaded app updates |
logs/ | Debug logs |
You will also see the usual folders of an Electron app (the framework Signal Desktop is built on), such as Local Storage and Session Storage. The exact set varies by version.
Signal Desktop changed how it stores attachments in mid-2024. Each attachment is now encrypted on disk with its own key, the keys live in the encrypted message database, and attachments saved by older versions are converted to the new format. So the files in attachments.noindex have no original names, no extensions and no readable contents: Finder cannot preview them and no app can open them.
The database itself is locked with a key that config.json stores only in encrypted form, protected by your macOS Keychain. Copied to another Mac or another user account, the whole folder is unreadable. That is good for privacy, and it is also why the folder is useless as a backup.
Open the message in Signal Desktop and use the download or save option on the attachment, then choose a folder. You get a normal file with its original name and type. Signal Desktop has no command that exports every chat or every attachment at once, so for many items from one conversation, save them one at a time. Your phone remains the primary device, and the desktop app is a linked copy of it.
Attachments are the part that grows. To see how large the folder is without reading anything in it:
du -sh ~/Library/Application\ Support/Signal/attachments.noindex
To shrink it, work inside Signal: delete messages or whole chats you no longer need, or turn on disappearing messages for busy chats. Signal also sweeps up attachment files that no message refers to any more. Removing files from the folder by hand does the opposite of what you want: the messages stay, pointing at files that no longer exist, and they show as broken.
Copying the Signal folder to another Mac does not work, because the database key is protected by the old Mac's Keychain and the folder belongs to that one linked-device session. Instead, install Signal Desktop on the new Mac and link it to your phone by scanning the QR code. During linking, Signal asks whether to transfer your message history; its support pages say this brings across your chats and the last 45 days of media from the phone.
Media older than that, which may exist only on the old Mac, does not come across. Before you wipe the old Mac, save anything you need from it with the per-attachment save above.
Do not rename, merge or tidy the files in attachments.noindex. The database refers to each attachment by its stored path, so a renamed file is a lost file as far as Signal is concerned. Do not expect a restore of this folder from a backup to work on a different Mac, for the reasons above. And keep config.json and the sql folder out of cloud storage and shared drives.
If you are only after one photo someone sent you, scrolling back to the message and saving it is the way. With encrypted, unnamed files, hunting through the folder cannot find it.
Signal Desktop is distributed from signal.org rather than the Mac App Store, so there is no sandbox container to look in. If Signal is missing from Application Support, the app has not been set up under your user account, or its data was removed. Check with:
ls ~/Library/Application\ Support | grep -i signal
Typing attachments.noindex into Everywhere lists that folder even though Spotlight skips it, and ⌘T opens a Terminal right there for a du -sh size check. Everywhere matches file names only, and Signal's attachment files have no meaningful ones, so save what you need from inside Signal and search for the name you saved it under.
In ~/Library/Application Support/Signal/attachments.noindex. Current versions store them encrypted and without their original names, so save attachments from within the app to get usable files.
No. The database is encrypted, its key is protected by your Mac's Keychain, and Signal provides no full export. Treat the sql folder and config.json as private and do not copy them around.
The folder name ends in .noindex, which tells Spotlight to skip it, and it also sits inside ~/Library, which Spotlight does not show results from.
No. Link Signal Desktop on the new Mac to your phone and choose to transfer message history during linking, which Signal says brings your chats and the last 45 days of media.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised