I had 5 years of WhatsApp conversationssitting on my phone and realized I had no idea what was actually in them. Not the events — I remembered those. But the patterns. Who I was at 2am. How I talked to people I was in love with. Whether I'd changed at all.
So I built this.
Parses your exported WhatsApp chats and tells you things like:
- words and phrases you repeat without noticing
- who always writes first (you or them)
- how the balance shifted over months
- your emoji signature
- the longest silences, and who broke them
- how your vocabulary changed year to year
Optional: plug in an OpenAI or Anthropic key and have a conversation about what it all means.
pip install chatself
# with AI support:
pip install "chatself[ai]"Export a chat from WhatsApp: Settings → Chats → Export chat → Without media
# single chat
chatself analyze "Chat with Ana.txt" --name Ana
# whole folder
chatself analyze ./exports/ --name Ana
# save an HTML report
chatself analyze "Chat with Ana.txt" --name Ana --html report.html
# talk to an AI about it (needs ANTHROPIC_API_KEY or OPENAI_API_KEY)
chatself analyze "Chat with Ana.txt" --name Ana --ai anthropicThe --ai flag sends only pre-computed stats to the LLM — not your actual messages.
If you want everything, not just one export, you can use the decrypted msgstore.db from your Android backup. chatself includes a DbParser for that. Instructions coming in the wiki.
Everything runs locally. No accounts, no telemetry, no cloud.
The only exception is --ai, which sends anonymized summaries (word frequencies, ratios, timestamps) to the API you choose.
Open issues, send PRs. The codebase is small and straightforward — parsers, analyzers, a CLI, an HTML builder.
MIT