smithery/rohunvora

unified-messages

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".

Installation

$ npx skills add smithery/rohunvora --skill unified-messages

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/rohunvora · top by installs.

npx skills add smithery/rohunvora

Browse all from smithery/rohunvora

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,122 B
  • docs SUMMARY.md 401 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Unified Messages

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

Quick Start

# Sync both platforms
python -m unified.cli sync

# List pending threads
python -m unified.cli list

# Check status
python -m unified.cli status --detailed

Thread ID Format

All threads use canonical IDs:

  • Telegram DM: tg:dm:username (e.g., tg:dm:vibhu)
  • Telegram Group: tg:group:slug (e.g., tg:group:crypto_trenches)
  • iMessage DM: imsg:dm:+14155551234 or imsg:dm:[email protected]
  • iMessage Group: imsg:group:chat123456

MCP Tools

Tool Purpose
unified_search Search people/threads across platforms
unified_inbox List threads needing attention
unifiedgetperson Full context for a person (threads, messages, notes)
unifiedgetthread Messages and state for specific thread
unifiedsavedraft Save draft reply
unifiedsetstatus Set pending/done/archived
unified_snooze Snooze until datetime
unifiedaddnote Add note to thread
unified_sync Sync both platforms

Workflows

Daily Triage

  1. unified_sync - Pull latest
  2. unified_inbox - See what needs attention
  3. Review each thread, then setstatus("done") or savedraft()

Find a Person

  1. unified_search("vibhu") - Returns person with all thread IDs
  2. unifiedgetperson("vibhu") - Full context with recent messages

Reply Workflow

  1. unifiedgetthread("tg:dm:username") - Read conversation
  2. unifiedsavedraft("tg:dm:username", "Draft...") - Save draft
  3. Send manually in Telegram/iMessage
  4. unifiedsetstatus("tg:dm:username", "done") - Mark complete

Project Structure

unified-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

Platform Dependencies

Imports from sibling repos:

  • tg-ingest/ - Telegram (Telethon)
  • imsg-ingest/ - iMessage (SQLite chat.db)

See [references/cli-commands.md](references/cli-commands.md) for full CLI docs. See [references/data-locations.md](references/data-locations.md) for data paths.