Cross-platform messaging aggregator. Use as DEFAULT when user does NOT specify a platform (telegram/imessage). Provides unified inbox, search, and triage across both platforms. Triggers: "check messages" (no platform), "inbox", "who messaged me", "all my messages", "triage". NOT for platform- specific requests - use tg-ingest for "telegram X" or imsg-ingest for "imessage X".
Cross-platform aggregator for Telegram + iMessage. Use when no platform specified.
If user says "telegram" → use tg-ingest skill If user says "imessage" → use imsg-ingest skill If user says "messages" (no platform) → use this skill
# Sync both platforms
python -m unified.cli sync
# List pending threads
python -m unified.cli list
# Check status
python -m unified.cli status --detailed
All threads use canonical IDs:
tg:dm:username (e.g., tg:dm:vibhu)tg:group:slug (e.g., tg:group:crypto_trenches)imsg:dm:+14155551234imsg:dm:[email protected]imsg:group:chat123456| Tool | Purpose |
|---|---|
unified_search | Search people/threads across platforms |
unified_inbox | List threads needing attention |
unified_get_person | Full context for a person (threads, messages, notes) |
unified_get_thread | Messages and state for specific thread |
unified_save_draft | Save draft reply |
unified_set_status | Set pending/done/archived |
unified_snooze | Snooze until datetime |
unified_add_note | Add note to thread |
unified_sync | Sync both platforms |
unified_sync - Pull latestunified_inbox - See what needs attentionset_status("done") or save_draft()unified_search("vibhu") - Returns person with all thread IDsunified_get_person("vibhu") - Full context with recent messagesunified_get_thread("tg:dm:username") - Read conversationunified_save_draft("tg:dm:username", "Draft...") - Save draftunified_set_status("tg:dm:username", "done") - Mark completeunified-messages/
├── unified/
│ ├── cli.py # CLI (sync, status, list, generate, render)
│ ├── aggregator.py # Cross-platform search, inbox, sync
│ ├── router.py # Routes to correct platform
│ ├── contacts.py # Person-centric contact resolution
│ └── triage.py # Triage context generation
├── mcp_server.py # MCP server (9 tools)
└── data/contacts.json # Person registry
Imports from sibling repos:
tg-ingest/ - Telegram (Telethon)imsg-ingest/ - iMessage (SQLite chat.db)See references/cli-commands.md for full CLI docs. See references/data-locations.md for data paths.