Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Analyze iMessage (macOS) and Signal conversation history to reveal relationship dynamics — message volume, initiation patterns, silence gaps, tone samples, a...
Analyze iMessage (macOS) and Signal conversation history to reveal relationship dynamics — message volume, initiation patterns, silence gaps, tone samples, a...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Analyze iMessage (macOS) and Signal conversations to produce relationship reports.
iMessage data is stored locally on macOS. Depending on your security settings, you may need to grant Full Disk Access: Option 1: Run the script directly with Python (no special permissions needed if you have read access to ~/Library/Messages/chat.db) Option 2: If you get a permission error, grant Full Disk Access: Open System Settings → Privacy & Security → Full Disk Access Click + and add Python or your terminal app
iMessage is not available on Linux/Windows Signal analysis works via exported JSON
Install signal-cli: brew install signal-cli (macOS) or see https://github.com/AsamK/signal-cli Link your device: signal-cli link and scan QR code Export messages: signal-cli export --output ~/signal_export.json
python3 skills/message-analyzer/scripts/analyze.py imessage <phone_or_handle> Examples: python3 skills/message-analyzer/scripts/analyze.py imessage "+15551234567" python3 skills/message-analyzer/scripts/analyze.py imessage "+15551234567" --limit 500
First, export your Signal data (one-time): signal-cli export --output ~/signal_export.json Then analyze: python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json <phone_or_name> Examples: python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json "+15551234567" python3 skills/message-analyzer/scripts/analyze.py signal ~/signal_export.json "+15559876543"
If you have a name but not a number: DB=$(ls ~/Library/Application\ Support/AddressBook/Sources/*/AddressBook-v22.abcddb 2>/dev/null | head -1) sqlite3 "$DB" "SELECT ZFIRSTNAME, ZLASTNAME FROM ZABCDRECORD WHERE ZFIRSTNAME LIKE '%Name%';" If AddressBook returns no results, ask the user for the number.
Signal exports include phone numbers in the JSON. Search by name or number.
Your sent messages may only exist from the current device's setup date — older sent messages are lost when switching devices. This skews initiation stats. Binary messages (attributedBody) are partially decoded — some formatting artifacts like +@ prefixes may appear in samples; these are normal. Multiple handles: One contact may have 2–3 duplicate handles (iMessage + SMS + RCS). The script aggregates them automatically.
Export required: You must export Signal data first using signal-cli export Media: Exported JSON contains message text; media (images, files) is not included Reactions: Emoji reactions are included as separate message entries
The script produces: Total message count (you vs. them) Date range Messages per year with volume bar Conversation initiation breakdown (new convo = gap > 4 hours) Notable silences (>30 days) Sample messages by year Most recent 10 messages
After running the script, synthesize findings conversationally: Volume patterns: When was the friendship most active? Any notable surges or drops? Initiation skew: Who reaches out first? (Note: your sent messages may be missing from old periods) Gaps: Were long silences mutual drift or explainable (device switch, platform change, life event)? Tone/content: What do the sample messages reveal about the relationship's energy? Context from user: Always ask the user to fill in context gaps Present the analysis conversationally, not just as raw numbers. Offer a genuine take on the relationship dynamic.
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.