🍺 BREW Explorer

← all formulae

imessage-exporter

brew install imessage-exporter v4.2.0 GPL-3.0-only

Command-line tool to export and inspect local iMessage database

923
30-day installs · #1341
1.9k
90-day · #1649
6.8k
365-day · #1696
5.3k
★ GitHub stars · updated 2mo ago

Build dependencies

GitHub topics

apple backup cli-app export imessage reverse-engineering

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "rust"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Command-line tool to export and inspect local iMessage database",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:38:49+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "imessage-exporter",
  "github_default_branch": "develop",
  "github_last_commit_at": "2026-06-18T22:57:24Z",
  "github_readme_excerpt": "# imessage-exporter\n\nThis 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.\n\nThis free and open-source software can:\n\n- Save, export, backup, and archive iMessage data to open, portable formats\n- Preserve multimedia content (images, videos, audio) from conversations\n- Facilitate easy migration of message history between devices and platforms\n- Run diagnostics on the iMessage database\n- Give you full ownership and control over your communication history\n- Support compliance with data retention policies or legal requirements\n- Run on macOS, Linux, and Windows\n\n## Example Export\n\n![HTML Export Sample](/docs/hero.png)\n\n## Binary\n\nThe `imessage-exporter` binary exports iMessage data to `txt` or `html` formats. It can also run diagnostics to find problems with the iMessage database.\n\nInstallation instructions for the binary are located [here](imessage-exporter/README.md).\n\n## Library\n\nThe `imessage_database` library provides models that allow us to access iMessage information as native, cross-platform data structures.\n\nDocumentation for the library is located [here](imessage-database/README.md).\n\n### Supported Features\n\nThis crate supports every iMessage feature as of macOS Tahoe 26.5.1 (25F80) and iOS 26.5.1 (23F81):\n\n- iMessage, RCS, SMS, and MMS\n- Multi-part messages\n- Replies/Threads\n- Formatted text\n- Attachments\n- Expressives\n- Tapbacks\n- Stickers\n- Apple Pay\n- Group chats\n- Digital Touch\n- URL Previews\n- Audio messages\n- App Integrations\n- Edited messages\n- Business messages\n- Handwritten messages\n\nSee more detail about supported features [here](docs/features.md).\n\n## Frequently Asked Questions\n\nThe FAQ document is located [here](/docs/faq.md).\n\n## Special Thanks\n\n- All of my friends, for putting up with me sending them random messages to test things\n- [",
  "github_repo": "ReagentX/imessage-exporter",
  "github_stars": 5328,
  "github_topics": [
    "apple",
    "backup",
    "cli-app",
    "export",
    "imessage",
    "reverse-engineering"
  ],
  "homepage": "https://github.com/ReagentX/imessage-exporter",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 923,
  "installs_365d": 6801,
  "installs_90d": 1880,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "GPL-3.0-only",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "imessage-exporter",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 1341,
  "rank_365d": 1696,
  "rank_90d": 1649,
  "raw_hash": "d1c4a7aa96e41b8f",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/i/imessage-exporter.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "4.2.0",
  "versioned_formulae": [],
  "why_use_this": null
}