https://github.com/ReagentX/imessage-exporter
Export iMessage data + run iMessage Diagnostics
https://github.com/ReagentX/imessage-exporter
apple backup cli-app export imessage reverse-engineering
Last synced: 21 days ago
JSON representation
Export iMessage data + run iMessage Diagnostics
- Host: GitHub
- URL: https://github.com/ReagentX/imessage-exporter
- Owner: ReagentX
- License: gpl-3.0
- Created: 2022-05-05T02:33:49.000Z (almost 3 years ago)
- Default Branch: develop
- Last Pushed: 2025-03-24T23:35:58.000Z (22 days ago)
- Last Synced: 2025-03-25T19:07:49.237Z (21 days ago)
- Topics: apple, backup, cli-app, export, imessage, reverse-engineering
- Language: Rust
- Homepage:
- Size: 16.8 MB
- Stars: 3,622
- Watchers: 30
- Forks: 165
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-iPhoneBlog.de-List - ReagentX/imessage-exporter: Export MacOS iMessage data + run iMessage Diagnostics
- starred - ReagentX/imessage-exporter - Export iMessage data + run iMessage Diagnostics (Rust)
- project-awesome - ReagentX/imessage-exporter - Export iMessage data + run iMessage Diagnostics (Rust)
README
# imessage-exporter
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. The aim of this project is to provide the most comprehensive and accurate representation of iMessage data available.
This free and open-source software can:
- Save, export, backup, and archive iMessage data to open, portable formats
- Preserve multimedia content (images, videos, audio) from conversations
- Facilitate easy migration of message history between devices and platforms
- Run diagnostics on the iMessage database
- Give you full ownership and control over your communication history
- Support compliance with data retention policies or legal requirements
- Run on macOS, Linux, and Windows## Example Export

## Binary
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](imessage-exporter/README.md).
## Library
The `imessage_database` library provides models that allow us to access iMessage information as native, cross-platform data structures.
Documentation for the library is located [here](imessage-database/README.md).
### Supported Features
This crate supports every iMessage feature as of macOS 15.3.2 (24D81) and iOS 18.3.2 (22D82):
- Multi-part messages
- Replies/Threads
- Formatted text
- Attachments
- Expressives
- Tapbacks
- Stickers
- Apple Pay
- Digital Touch
- URL Previews
- Audio messages
- App Integrations
- Edited messages
- Handwritten messagesSee more detail about supported features [here](docs/features.md).
## Frequently Asked Questions
The FAQ document is located [here](/docs/faq.md).
## Special Thanks
- All of my friends, for putting up with me sending them random messages to test things
- [SQLiteFlow](https://www.sqliteflow.com), the SQL viewer I used to explore and reverse engineer the iMessage database
- [Xplist](https://github.com/ic005k/Xplist), an invaluable tool for reverse engineering the `payload_data` plist format
- [Compart](https://www.compart.com/en/unicode/), an amazing resource for looking up esoteric unicode details
- [GNU Project](https://github.com/gnustep/libobjc) and [Archive.org](https://archive.org/details/darwin_0.1), for hosting source code referenced to reverse engineer the `typedstream` format