telegram
π―Skillfrom pytaichukbohdan/danacockfightbot
Retrieves, searches, and manages Telegram messages across chats with flexible filtering and output options.
Installation
npx skills add https://github.com/pytaichukbohdan/danacockfightbot --skill telegramSkill Details
This skill should be used when fetching, searching, downloading, or sending messages on Telegram. Use for queries like "show my Telegram messages", "search Telegram for...", "get unread messages", "send a message to...", or "add Telegram messages to my notes".
Overview
# Telegram Message Skill
Fetch, search, download, and send Telegram messages with flexible filtering and output options.
Prerequisites
Authentication must be configured in ~/.telegram_dl/. Run setup command to check status or get instructions:
```bash
python3 scripts/telegram_fetch.py setup
```
If not configured, follow these steps:
- Get API credentials from https://my.telegram.org/auth
- Clone telegram_dl: https://github.com/glebis/telegram_dl
- Run
python telegram_dl.pyand follow interactive prompts - Verify with
python3 scripts/telegram_fetch.py setup
Quick Start
Run the script at scripts/telegram_fetch.py with appropriate commands:
```bash
# List available chats
python3 scripts/telegram_fetch.py list
# Get recent messages
python3 scripts/telegram_fetch.py recent --limit 20
# Search messages
python3 scripts/telegram_fetch.py search "meeting"
# Get unread messages
python3 scripts/telegram_fetch.py unread
```
Commands
List Chats
To see available Telegram chats:
```bash
python3 scripts/telegram_fetch.py list
python3 scripts/telegram_fetch.py list --limit 50
python3 scripts/telegram_fetch.py list --search "AI"
```
Returns JSON with chat IDs, names, types, and unread counts.
Fetch Recent Messages
To get recent messages:
```bash
# From all chats (last 50 messages across top 10 chats)
python3 scripts/telegram_fetch.py recent
# From specific chat
python3 scripts/telegram_fetch.py recent --chat "Tool Building Ape"
python3 scripts/telegram_fetch.py recent --chat-id 123456789
# With limits
python3 scripts/telegram_fetch.py recent --limit 100
python3 scripts/telegram_fetch.py recent --days 7
```
Search Messages
To search message content:
```bash
# Global search across all chats
python3 scripts/telegram_fetch.py search "project deadline"
# Search in specific chat
python3 scripts/telegram_fetch.py search "meeting" --chat-id 123456789
# Limit results
python3 scripts/telegram_fetch.py search "important" --limit 20
```
Fetch Unread Messages
To get only unread messages:
```bash
python3 scripts/telegram_fetch.py unread
python3 scripts/telegram_fetch.py unread --chat-id 123456789
```
Send Messages
To send a message to a chat:
```bash
# Send to existing chat by name
python3 scripts/telegram_fetch.py send --chat "John Doe" --text "Hello!"
# Send to username (works even without prior conversation)
python3 scripts/telegram_fetch.py send --chat "@username" --text "Hello!"
# Reply to a specific message (use message ID from recent/search output)
python3 scripts/telegram_fetch.py send --chat "Tool Building Ape" --text "Thanks!" --reply-to 12345
# Send to a forum topic (for groups with topics enabled)
python3 scripts/telegram_fetch.py send --chat "Group Name" --text "Hello topic!" --topic 12
```
Send Files
To send images, documents, or videos:
```bash
# Send an image
python3 scripts/telegram_fetch.py send --chat "John Doe" --file "/path/to/image.jpg"
# Send document with caption
python3 scripts/telegram_fetch.py send --chat "@username" --file "report.pdf" --text "Here's the report"
# Reply with media
python3 scripts/telegram_fetch.py send --chat "Group" --file "screenshot.png" --reply-to 12345
```
Chat resolution order:
@username- Resolves Telegram username directly- Numeric ID - Resolves chat by Telegram ID
- Name match - Fuzzy search in existing dialogs
Returns JSON with send status, resolved chat name, message ID, and file info (for media).
Download Attachments
To download media files from a chat:
```bash
# Download last 5 attachments from a chat (default)
python3 scripts/telegram_fetch.py download --chat "Tool Building Ape"
# Download last 10 attachments
python3 scripts/telegram_fetch.py download --chat "Project Group" --limit 10
# Download to custom directory
python3 scripts/telegram_fetch.py download --chat "@username" --output "/path/to/folder"
# Download from specific message
python3 scripts/telegram_fetch.py download --chat "John Doe" --message-id 12345
```
Default output: ~/Downloads/telegram_attachments/
Returns JSON with download results (file names, paths, sizes).
Output Options
Default (Markdown to stdout)
By default, outputs formatted markdown suitable for Claude to read and summarize.
JSON Format
Add --json flag for structured data:
```bash
python3 scripts/telegram_fetch.py recent --json
```
Append to Obsidian Daily Note
Add messages to today's daily note in the vault:
```bash
python3 scripts/telegram_fetch.py recent --to-daily
python3 scripts/telegram_fetch.py search "project" --to-daily
```
Appends to ~/Brains/brain/Daily/YYYYMMDD.md
Append to Person's Note
Add messages to a specific person's note:
```bash
python3 scripts/telegram_fetch.py recent --chat "John Doe" --to-person "John Doe"
```
Creates or appends to ~/Brains/brain/{PersonName}.md
Save to File (Token-Efficient)
Save messages directly to file without consuming context tokens:
```bash
# Save 100 messages to markdown file
python3 scripts/telegram_fetch.py recent --chat "AGENCY: Community" --limit 100 -o ~/chat_archive.md
# Save with media files downloaded to same folder
python3 scripts/telegram_fetch.py recent --chat "Project Group" --limit 50 -o ~/project/archive.md --with-media
# Save search results to file
python3 scripts/telegram_fetch.py search "meeting" -o ~/meetings.md
```
Returns JSON with save status (file path, message count, media download results) - minimal token usage.
Example User Requests
When user asks:
- "Show my recent Telegram messages" ->
recent --limit 20 - "What Telegram messages did I get today?" ->
recent --days 1 - "Search Telegram for messages about the project" ->
search "project" - "Get unread messages from Tool Building Ape" ->
unread+ filter output - "Add my Telegram messages to daily note" ->
recent --to-daily - "What chats do I have on Telegram?" ->
list - "Send hello to John on Telegram" ->
send --chat "John" --text "Hello!" - "Message @username on Telegram" ->
send --chat "@username" --text "..." - "Reply to that message with thanks" ->
send --chat "..." --text "Thanks!" --reply-to - "Send this image to John" ->
send --chat "John" --file "/path/to/image.jpg" - "Send report.pdf with caption" ->
send --chat "..." --file "report.pdf" --text "Here's the report" - "Send to topic 12 in Group" ->
send --chat "Group" --text "..." --topic 12 - "Download attachments from Tool Building Ape" ->
download --chat "Tool Building Ape" - "Download last 10 files from Project Group" ->
download --chat "Project Group" --limit 10 - "Save last 100 messages from AGENCY to file" ->
recent --chat "AGENCY: Community" --limit 100 -o ~/agency.md - "Archive chat with media" ->
recent --chat "Group" -o ~/archive.md --with-media - "Is Telegram configured?" ->
setup - "How do I set up Telegram?" ->
setup(returns instructions if not configured)
Rate Limiting
The script includes built-in rate limiting (0.1s between messages) and handles Telegram's FloodWaitError automatically with backoff.
Dependencies
Requires telethon Python package. Install with: pip install telethon