telegram · git:20260407.4e28aab · 2026-04-07 · sha256 c321199c62e3dafc
telegram git:20260407.4e28aabA
Immutable. This exact content is served forever at /api/v1/blob/c321199c62e3dafc.
--- name: telegram description: "Use when reading or sending Telegram messages. Triggered by requests to check recent messages, search conversation history, or send messages/media to chats." allowed-tools: Bash user-invocable: false --- # Telegram Unified interface for reading and sending Telegram messages. ## PM Tool vs CLI Tool There are two sending interfaces. Use the correct one for your context: | Tool | Context | How It Works | |------|---------|--------------| | `python tools/send_telegram.py` | PM session | Queues via Redis, relay sends via Telethon, records msg_id for summarizer bypass | | `valor-telegram send` | Dev session / CLI | Sends directly via Telethon, no Redis queue, no summarizer bypass | **PM sessions** should always use `tools/send_telegram.py`. It supports text, single file attachments, and multi-file albums via `--file` (repeatable, max 10 files). Using `valor-telegram send` from a PM session would bypass the Redis queue and break `has_pm_messages()` tracking. ### PM Tool Examples ```bash # Text only python tools/send_telegram.py "Status update message" # Single file with caption python tools/send_telegram.py "Screenshot attached" --file /path/to/screenshot.png # Multi-file album (grouped as one Telegram album message) python tools/send_telegram.py "PR review screenshots" --file before.png --file during.png --file after.png # File only (no caption) python tools/send_telegram.py --file /path/to/document.pdf ``` **Dev sessions** use `valor-telegram send` for direct CLI sends when needed. ## Reading Messages **CLI**: `valor-telegram` ```bash # Recent messages from a chat valor-telegram read --chat "Dev: Valor" --limit 10 # Recent messages from a DM user valor-telegram read --chat "Tom" --limit 5 # Search messages by keyword valor-telegram read --chat "Dev: Valor" --search "deployment" # Messages from a time range valor-telegram read --chat "Dev: Valor" --since "1 hour ago" # JSON output for parsing valor-telegram read --chat "Dev: Valor" --limit 5 --json ``` ## Sending Messages (CLI -- Dev session only) ```bash # Send text message valor-telegram send --chat "Dev: Valor" "Hello world" # Send with file attachment valor-telegram send --chat "Tom" "Check this screenshot" --file ./screenshot.png # Send image with caption valor-telegram send --chat "Dev: Valor" --image ./photo.jpg "Caption here" # Send audio valor-telegram send --chat "Dev: Valor" --audio ./recording.mp3 ``` ## Listing Known Chats ```bash valor-telegram chats ``` ## When to Use - **Check what someone said**: `valor-telegram read --chat "Tom" --limit 10` - **Find a past discussion**: `valor-telegram read --chat "Dev: Valor" --search "authentication"` - **Get recent context**: `valor-telegram read --chat "Dev: Valor" --since "2 hours ago"` - **Send a status update (Dev session)**: `valor-telegram send --chat "Dev: Valor" "Deployment complete"` - **Share a file (Dev session)**: `valor-telegram send --chat "Tom" "Here's the report" --file ./report.pdf` ## Notes - Chat names are resolved from the history database (groups) and DM whitelist (users) - Messages are read from Redis via Popoto ORM (TelegramMessage model) - Sending uses Telethon directly (requires bridge session and API credentials) - Use `valor-telegram chats` if unsure of the exact chat name