Local-only analytics for iMessage, Call History, and macOS Contacts names on macOS. Data never leaves your machine — think Spotify Wrapped for messages and calls.
- macOS with Messages / Phone / Contacts data
- Python 3.11+
- Full Disk Access for the app that runs the tool (e.g. Terminal):
System Settings → Privacy & Security → Full Disk Access → add that app
Then runinsightmefrom your terminal
pip install insightmeinsightme
The insightme command starts the Streamlit UI. Open the URL shown in the terminal (usually http://localhost:8501).
- Run on your Mac with Full Disk Access for the terminal as above.
- To avoid locking and race conditions with system apps, SQLite files (where the message/call/contacts data are) are copied to a temporary directory and read from the copy.
- SQL loads messages, calls, and address-book rows into pandas DataFrames for analytics.
- Analytics live under
src/insightme/analytics/. - The Streamlit app (default port 8501) renders dashboards locally.