imessage-exporter - Export MacOS iMessage data + run iMessage Diagnostics

Created at: 2022-05-05 10:33:49
Language: Rust
License: GPL-3.0


This crate provides both a library to interact with iMessage data as well as a binary that can perform some useful read-only operations using that data.

HTML Export Sample


The imessage-exporter binary exports iMessage data to txt or html formats. It can also run diagnostics to find problems with the iMessage database.

Installation instructions for the binary are located here.


The imessage_database library provides models that allow us to access iMessage information as native data structures.

Documentation for the library is located here.

Supported Features

This crate supports every iMessage feature as of MacOS 13.1 (22C65):

  • Multi-part messages
  • Replies/Threads
  • Attachments
  • Expressives
  • Reactions
  • Stickers
  • Apple Pay
  • URL Previews
  • App Integrations
  • Edited messages

See more detail about supported features here.

Special Thanks

  • All of my friends, for putting up with me sending them random messages to test things
  • SQLiteFlow, the SQL viewer I used to explore and reverse engineer the iMessage database
  • Xplist, an invaluable tool for reverse engineering the payload_data plist format
  • Compart, an amazing resource for looking up esoteric unicode details