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 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 an unencrypted iOS backup file.
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.
I don't pre-build binaries for Windows or Linux, but it should compile to those targets. As long as you can point it at an iMessage database, it should work.
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, and chosen attachment handling style.
On my M1 Max MacBook Pro, approximate performance is as follows:
--copy-method |
Messages exported per second |
---|---|
disabled |
36,000 |
clone |
23,000 |
basic |
< 350 |
full |
< 20 |
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
.