imessage-extraction

Extract and decode iMessage conversations from macOS chat.db into SQLite-ready datasets.

3|1|Updated Dec 23, 2025
One-click install
npx skills add https://github.com/marcus/marcus-skills --skill imessage-extraction
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: imessage-extraction
Source: https://github.com/marcus/marcus-skills/tree/main/skills/imessage-extraction
Command: npx skills add https://github.com/marcus/marcus-skills --skill imessage-extraction

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This solution helps users access, decode, and analyze iMessage history stored in macOS's Messages database, turning opaque blob data into readable, queryable content for audits, research, or archival purposes.

Core Features & Use Cases

  • Decode NSAttributedBody payloads to readable text.
  • Convert Apple timestamps to human-friendly dates for accurate timelines.
  • Clean decoding artifacts and assemble a clean, SQLite-ready dataset.
  • Build queryable views to search and export conversations for analysis, incident response, and compliance tasks.

Quick Start

Run the provided Python script to generate a clean, decoded iMessage dataset from your chat.db for immediate analysis.

Frequently Asked Questions about imessage-extraction

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decode iMessage chat.db data into readable text on macOS?

To decode iMessage chat.db data, you extract and decode NSAttributedBody payloads from the macOS Messages database, converting opaque blob data into readable text using a provided Python script that outputs a clean, queryable dataset.

What is the best way to convert Apple timestamps from chat.db for conversation analysis?

Converting Apple timestamps from chat.db involves processing the raw SQLite message records to translate Apple's epoch format into human-friendly dates, ensuring accurate timelines for auditing or exporting iMessage conversation histories.

Can I use Python to extract and clean decoding artifacts from the macOS Messages database?

Yes, you can use Python to extract and clean decoding artifacts from the macOS Messages database by running a script that assembles a SQLite-ready dataset, removing artifacts to produce clean content for incident response or compliance analysis.

Does this iMessage extraction process require any special dependencies to query chat.db?

Querying chat.db with this iMessage extraction process requires no special dependencies, as the provided Python script independently handles decoding NSAttributedBody payloads, converting timestamps, and producing a clean dataset for analysis.

Why are my iMessage text exports showing unreadable characters from chat.db?

iMessage text exports show unreadable characters from chat.db because the messages are stored as opaque NSAttributedBody blobs, requiring a specific decoding process to remove artifacts and convert the payloads into readable text.

How do I build queryable views from iMessage data for compliance audits?

You build queryable views from iMessage data by running a Python script to extract and decode the macOS chat.db, producing a clean SQLite-ready dataset that allows you to search, filter, and export conversations for compliance audits.