Skip to main content

Analyzes the entire history of a macOS Messages conversation

Project description

iMessage Conversation Analyzer

Copyright 2020-2024 Caleb Evans
Released under the MIT license

This macOS CLI program will read the contents of an iMessage conversation via the Messages app's database on your Mac. You can then gather various metrics of interest on the messages and attachments collected.

Much of this program was inspired by and built using findings from this blog post by Yorgos Askalidis.

Caveats

Please note that currently, you can only query conversations between you and a single other person (i.e. group chats are currently unsupported).

Installation

1. Install Python 3

macOS does not include Python 3 out of the box, but you can install Python 3 with the Homebrew package manager.

brew install python@3

2. Set up virtualenv

pip3 install virtualenv
virtualenv --python=python3 .virtualenv
source .virtualenv/bin/activate

3. Install project depdendencies

pip install -r requirements.txt

Usage

-c / --contact-name

Required; the combined first and last name of the macOS contact whose conversation you want to fetch (e.g. John Doe).

ica -c 'John Doe' -m ica/metrics/message_totals.py

-m / --metric-file

Required; a Python file with an analyze() function; this file must return a pandas DataFrame. See the examples in ica/metrics.

ica -c 'John Doe' -m ica/metrics/most_frequent_emojis.py

-f / --format

Optional; the output format of the result. Omit this argument for a simple textual table, or specify csv to print output as CSV.

ica -c 'John Doe' -m ica/metrics/message_totals.py -f csv

You can also output as CSV and use the pbcopy command for easy copy/pasting into a spreadsheet program (like Excel or Numbers).

ica -c 'John Doe' -m ica/metrics/message_totals.py -f csv | pbcopy

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imessage-conversation-analyzer-1.2.1.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imessage_conversation_analyzer-1.2.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file imessage-conversation-analyzer-1.2.1.tar.gz.

File metadata

File hashes

Hashes for imessage-conversation-analyzer-1.2.1.tar.gz
Algorithm Hash digest
SHA256 ba771e9e5e94d2d388ffadd37e6b24596f74f39bc1a52954dbccbf49aa6f4cef
MD5 77bc78c13f5cc413a1b5f0c6ba09bf6d
BLAKE2b-256 c00f4f80fcbd63b53b01c3468c29a4e775676a597964117c43bd7fdeb9524924

See more details on using hashes here.

File details

Details for the file imessage_conversation_analyzer-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for imessage_conversation_analyzer-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7918c13ec54493d0f059d1dfa4e2faac2715e8cf2b371749faa38a2a1e62029f
MD5 b0c6fa3a493ef2821b34befd88012df9
BLAKE2b-256 a18f38acb11f43c5fc6e32fc1487993123b62bcef3a9203bbd0249e5e8fa8ca3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page