Ensure your terminal emulator has full disk access if using the default location or ensure that the path to the database file is correct.
Yes, all iMessage features are supported. See here for more detail.
Yes. See here for more detail on supported features.
Does imessage-exporter export message conversations that are in iCloud or on a user's iPhone/iPad but not on the user's Mac?
imessage-exporter only reads data present in the provided source, which can be either macOS's chat.db or a local full iOS backup. It cannot read data that is only stored in iCloud.
In the Messages app, if you click the info (ⓘ) button for a conversation and scroll to the bottom, there is a button that downloads all of the attachments for that conversation. This works on both macOS and iOS.
Yes.
If files with the current output type exist in the output directory, imessage-exporter will alert the user that they will overwrite existing exported data and the export will be cancelled. If the export directory is clear, imessage-exporter will export all messages by default. Alternatively, it will export messages between the dates specified by the --start-date and --end-date arguments.
See here for details on imessage-exporter arguments.
No, I do not want to be trusted with write access to your iMessage data. This software is read only.
No, this software just builds exports. I use ripgrep to search though the exported files.
Yes, the --start-date and --end-date arguments specify date ranges for exports.
See here for details on imessage-exporter arguments.
Expired ones cannot because they are deleted. If you kept them then they are included in the exports.
This software can recover some, but not all, deleted messages.
Messages removed by deleting an entire conversation or by deleting a single message from a conversation are moved to a separate collection for up to 30 days. Messages present in this collection are restored to the conversations they belong to. Apple details this process here.
Messages that have expired from this restoration process are permanently deleted and cannot be recovered.
In some instances, deleted messages are removed from the chat_message_join table but not from the messages table. These messages will populate in Orphaned.html or Orphaned.txt.
This is a complicated question that depends on CPU, database size, chosen export type, encryption state, and chosen attachment handling style.
On my M1 Max MacBook Pro, approximate performance is as follows:
--copy-method |
Messages exported per second |
|---|---|
disabled |
> 112,000 |
clone |
≈ 42,000 |
basic |
≈ 350 |
full |
≈ 250 |
For more information on --copy-method, see here and here.
However, if you recently deleted a large amount of data from Messages, the database will be slow for awhile, resulting in significantly reduced performance from imessage-exporter.
