New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Read Telegram channels and groups for financial news

Telegram News Skill (Read-Only)

by himself65 · MIT license · ★ 3,347 on GitHub · updated Aug 27

Telegram News Skill (Read-Only) cover

Read Telegram channels and groups for financial news and market research using tdl (read-only). Use this skill whenever the user wants to read Telegram channels, export messages from financial Telegram groups, list their Telegram chats,…

---
name: telegram-reader
description: >
  Read Telegram channels and groups for financial news and market research using tdl (read-only).
  Use this skill whenever the user wants to read Telegram channels, export messages from financial
  Telegram groups, list their Telegram chats, search for news in Telegram channels, or gather
  market intelligence from Telegram.
  Triggers include: "check my Telegram", "read Telegram channel", "Telegram news",
  "what's new in my Telegram channels", "export messages from", "list my Telegram chats",
  "financial news on Telegram", "crypto Telegram", "market news Telegram",
  any mention of Telegram in context of reading financial news, crypto signals, or market research.
  This skill is READ-ONLY — it does NOT support sending messages, joining channels, or any write operations.
---

# Telegram News Skill (Read-Only)

Reads Telegram channels and groups for financial news and market research using [tdl](https://github.com/iyear/tdl), a Telegram CLI tool.

Overview

Reads Telegram channels and groups for financial news and market research using tdl, a Telegram CLI tool.

Manual install (npx, ZIP)
Claude Codenpx skills add himself65/finance-skills --skill telegram-reader -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/himself65/finance-skills/tar.gz/0a5759bca1ea \ | tar -xz -C ~/.claude/skills --strip-components=4 finance-skills-0a5759bca1ea/plugins/social-readers/skills/telegram-reader
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/ef1a4b1095fe5fd4f8d6/telegram-reader.zip" -OutFile "$env:TEMP\telegram-reader.zip"; Expand-Archive "$env:TEMP\telegram-reader.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md8.0 KB
  • README.md1.9 KB
  • references/1 file · 4.5 KB
Read the files here
himself65/0a5759b3 files
SKILL.md
Show the full text224 lines

Telegram News Skill (Read-Only)

Reads Telegram channels and groups for financial news and market research using tdl, a Telegram CLI tool.

This skill is read-only. It is designed for financial research: reading channel messages, monitoring financial news channels, and exporting message history. It does NOT support sending messages, joining/leaving channels, or any write operations.


Step 1: Ensure tdl Is Installed

Current environment status:

!`(command -v tdl && tdl version 2>&1 | head -3 || echo "TDL_NOT_INSTALLED") 2>/dev/null`

If the status above shows a version number, tdl is installed — skip to Step 2.

If TDL_NOT_INSTALLED, install tdl based on the user's platform:

Platform Install Command
macOS / Linux curl -sSL https://docs.iyear.me/tdl/install.sh | sudo bash
macOS (Homebrew) brew install telegram-downloader
Linux (Termux) pkg install tdl
Linux (AUR) yay -S tdl
Linux (Nix) nix-env -iA nixos.tdl
Go (any platform) go install github.com/iyear/tdl@latest

Ask the user which installation method they prefer. Default to Homebrew on macOS, curl script on Linux.


Step 2: Ensure tdl Is Authenticated

Current auth status:

!`(tdl chat ls --limit 1 2>&1 >/dev/null && echo "AUTH_OK" || echo "AUTH_NEEDED") 2>/dev/null`

If AUTH_OK, skip to Step 3.

If AUTH_NEEDED, guide the user through login. Login requires interactive input — the user must enter their phone number and verification code manually.

Login methods

Method A: QR Code (recommended — fastest)

tdl login -T qr

A QR code will be displayed in the terminal. The user scans it with their Telegram mobile app (Settings > Devices > Link Desktop Device).

Method B: Phone + Code

tdl login -T code

The user enters their phone number, then the verification code sent to their Telegram app.

Method C: Import from Telegram Desktop

If the user has Telegram Desktop installed and logged in:

tdl login

This imports the session from the existing desktop client. The desktop client must be from the official website, NOT from the App Store or Microsoft Store.

Namespaces

By default, tdl uses a default namespace. To manage multiple accounts:

tdl login -n work -T qr      # Login to "work" namespace
tdl chat ls -n work           # Use "work" namespace for commands
Important login notes
  • Login is a one-time operation. The session persists on disk after successful login.
  • If login fails, ask the user to check their internet connection and try again.
  • Never ask for or handle Telegram passwords/2FA codes programmatically — always let the user enter them interactively.

Step 3: Identify What the User Needs

Match the user's request to one of the read operations below.

User Request Command Key Flags
List all chats/channels tdl chat ls -o json, -f "FILTER"
List only channels tdl chat ls -f "Type contains 'channel'" -o json
Export recent messages tdl chat export -c CHAT -T last -i N --all, --with-content
Export messages by time range tdl chat export -c CHAT -T time -i START,END --all, --with-content
Export messages by ID range tdl chat export -c CHAT -T id -i FROM,TO --all, --with-content
Export from a topic/thread tdl chat export -c CHAT --topic TOPIC_ID --all, --with-content
Search for a channel by name tdl chat ls -f "VisibleName contains 'NAME'" -o json
Chat identifiers

The -c flag accepts multiple formats:

Format Example
Username (with @) -c @channel_name
Username (without @) -c channel_name
Numeric chat ID -c 123456789
Public link -c https://t.me/channel_name
Phone number -c "+1 123456789"
Saved Messages -c "" (empty)

Step 4: Execute the Command

Listing chats
# List all chats
tdl chat ls

# JSON output for processing
tdl chat ls -o json

# Filter for channels only
tdl chat ls -f "Type contains 'channel'"

# Search by name
tdl chat ls -f "VisibleName contains 'Bloomberg'"
Exporting messages

Always use --all --with-content to get text messages (not just media):

# Last 20 messages from a channel
tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json

# Messages from a time range (Unix timestamps)
tdl chat export -c @channel_name -T time -i 1710288000,1710374400 --all --with-content -o /tmp/tdl-export.json

# Messages by ID range
tdl chat export -c @channel_name -T id -i 100,200 --all --with-content -o /tmp/tdl-export.json
Key rules
  1. Check auth first — run tdl chat ls --limit 1 before other commands to verify the session is valid
  2. Always use --all --with-content when exporting messages for reading — without these flags, tdl only exports media messages
  3. Use -o FILE to save exports to a file, then read the JSON — this is more reliable than parsing stdout
  4. Start with small exports — use -T last -i 20 unless the user asks for more
  5. Use filters on chat ls to help users find the right channel before exporting
  6. NEVER execute write operations — this skill is read-only; do not send messages, join channels, or modify anything
  7. Convert timestamps — when the user gives dates, convert to Unix timestamps for the -T time filter
Working with exported JSON

After exporting, read the JSON file and extract the relevant information:

# Export messages
tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json

# Read and process the export
cat /tmp/tdl-export.json

The export JSON contains message objects with fields like id, date, message (text content), from_id, views, and media metadata.


Step 5: Present the Results

After fetching data, present it clearly for financial research:

  1. Summarize key messages — highlight the most relevant news or market updates
  2. Include timestamps — show when each message was posted
  3. Group by topic — if multiple channels, organize by theme (macro, earnings, crypto, etc.)
  4. Flag actionable information — note breaking news, price targets, earnings surprises
  5. Provide channel context — mention which channel/group each message came from
  6. For channel lists, show channel name, member count, and type

Step 6: Diagnostics

If something isn't working:

Error Cause Fix
not authorized or session errors Not logged in or session expired Run tdl login -T qr to re-authenticate
FLOOD_WAIT_X Rate limited by Telegram Wait X seconds, then retry
CHANNEL_PRIVATE No access to channel User must join the channel in their Telegram app first
tdl: command not found tdl not installed Install using Step 1

Reference Files

  • references/commands.md — Complete tdl command reference for reading channels and exporting messages

Read the reference file when you need exact command syntax or detailed flag documentation.

1---
2name: telegram-reader
3description: >
4 Read Telegram channels and groups for financial news and market research using tdl (read-only).
5 Use this skill whenever the user wants to read Telegram channels, export messages from financial
6 Telegram groups, list their Telegram chats, search for news in Telegram channels, or gather
7 market intelligence from Telegram.
8 Triggers include: "check my Telegram", "read Telegram channel", "Telegram news",
9 "what's new in my Telegram channels", "export messages from", "list my Telegram chats",
10 "financial news on Telegram", "crypto Telegram", "market news Telegram",
11 any mention of Telegram in context of reading financial news, crypto signals, or market research.
12 This skill is READ-ONLY — it does NOT support sending messages, joining channels, or any write operations.
13---
14 
15# Telegram News Skill (Read-Only)
16 
17Reads Telegram channels and groups for financial news and market research using [tdl](https://github.com/iyear/tdl), a Telegram CLI tool.
18 
19**This skill is read-only.** It is designed for financial research: reading channel messages, monitoring financial news channels, and exporting message history. It does NOT support sending messages, joining/leaving channels, or any write operations.
20 
21---
22 
23## Step 1: Ensure tdl Is Installed
24 
25**Current environment status:**
26 
27```
28!`(command -v tdl && tdl version 2>&1 | head -3 || echo "TDL_NOT_INSTALLED") 2>/dev/null`
29```
30 
31If the status above shows a version number, tdl is installed — skip to Step 2.
32 
33If `TDL_NOT_INSTALLED`, install tdl based on the user's platform:
34 
35| Platform | Install Command |
36|----------|----------------|
37| macOS / Linux | `curl -sSL https://docs.iyear.me/tdl/install.sh \| sudo bash` |
38| macOS (Homebrew) | `brew install telegram-downloader` |
39| Linux (Termux) | `pkg install tdl` |
40| Linux (AUR) | `yay -S tdl` |
41| Linux (Nix) | `nix-env -iA nixos.tdl` |
42| Go (any platform) | `go install github.com/iyear/tdl@latest` |
43 
44Ask the user which installation method they prefer. Default to Homebrew on macOS, curl script on Linux.
45 
46---
47 
48## Step 2: Ensure tdl Is Authenticated
49 
50**Current auth status:**
51 
52```
53!`(tdl chat ls --limit 1 2>&1 >/dev/null && echo "AUTH_OK" || echo "AUTH_NEEDED") 2>/dev/null`
54```
55 
56If `AUTH_OK`, skip to Step 3.
57 
58If `AUTH_NEEDED`, guide the user through login. **Login requires interactive input** — the user must enter their phone number and verification code manually.
59 
60### Login methods
61 
62**Method A: QR Code (recommended — fastest)**
63 
64```bash
65tdl login -T qr
66```
67 
68A QR code will be displayed in the terminal. The user scans it with their Telegram mobile app (Settings > Devices > Link Desktop Device).
69 
70**Method B: Phone + Code**
71 
72```bash
73tdl login -T code
74```
75 
76The user enters their phone number, then the verification code sent to their Telegram app.
77 
78**Method C: Import from Telegram Desktop**
79 
80If the user has Telegram Desktop installed and logged in:
81 
82```bash
83tdl login
84```
85 
86This imports the session from the existing desktop client. The desktop client must be from the [official website](https://desktop.telegram.org/), NOT from the App Store or Microsoft Store.
87 
88### Namespaces
89 
90By default, tdl uses a `default` namespace. To manage multiple accounts:
91 
92```bash
93tdl login -n work -T qr # Login to "work" namespace
94tdl chat ls -n work # Use "work" namespace for commands
95```
96 
97### Important login notes
98 
99- Login is a **one-time** operation. The session persists on disk after successful login.
100- If login fails, ask the user to check their internet connection and try again.
101- **Never ask for or handle Telegram passwords/2FA codes programmatically** — always let the user enter them interactively.
102 
103---
104 
105## Step 3: Identify What the User Needs
106 
107Match the user's request to one of the read operations below.
108 
109| User Request | Command | Key Flags |
110|---|---|---|
111| List all chats/channels | `tdl chat ls` | `-o json`, `-f "FILTER"` |
112| List only channels | `tdl chat ls -f "Type contains 'channel'"` | `-o json` |
113| Export recent messages | `tdl chat export -c CHAT -T last -i N` | `--all`, `--with-content` |
114| Export messages by time range | `tdl chat export -c CHAT -T time -i START,END` | `--all`, `--with-content` |
115| Export messages by ID range | `tdl chat export -c CHAT -T id -i FROM,TO` | `--all`, `--with-content` |
116| Export from a topic/thread | `tdl chat export -c CHAT --topic TOPIC_ID` | `--all`, `--with-content` |
117| Search for a channel by name | `tdl chat ls -f "VisibleName contains 'NAME'"` | `-o json` |
118 
119### Chat identifiers
120 
121The `-c` flag accepts multiple formats:
122 
123| Format | Example |
124|--------|---------|
125| Username (with @) | `-c @channel_name` |
126| Username (without @) | `-c channel_name` |
127| Numeric chat ID | `-c 123456789` |
128| Public link | `-c https://t.me/channel_name` |
129| Phone number | `-c "+1 123456789"` |
130| Saved Messages | `-c ""` (empty) |
131 
132---
133 
134## Step 4: Execute the Command
135 
136### Listing chats
137 
138```bash
139# List all chats
140tdl chat ls
141 
142# JSON output for processing
143tdl chat ls -o json
144 
145# Filter for channels only
146tdl chat ls -f "Type contains 'channel'"
147 
148# Search by name
149tdl chat ls -f "VisibleName contains 'Bloomberg'"
150```
151 
152### Exporting messages
153 
154Always use `--all --with-content` to get text messages (not just media):
155 
156```bash
157# Last 20 messages from a channel
158tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json
159 
160# Messages from a time range (Unix timestamps)
161tdl chat export -c @channel_name -T time -i 1710288000,1710374400 --all --with-content -o /tmp/tdl-export.json
162 
163# Messages by ID range
164tdl chat export -c @channel_name -T id -i 100,200 --all --with-content -o /tmp/tdl-export.json
165```
166 
167### Key rules
168 
1691. **Check auth first** — run `tdl chat ls --limit 1` before other commands to verify the session is valid
1702. **Always use `--all --with-content`** when exporting messages for reading — without these flags, tdl only exports media messages
1713. **Use `-o FILE`** to save exports to a file, then read the JSON — this is more reliable than parsing stdout
1724. **Start with small exports** — use `-T last -i 20` unless the user asks for more
1735. **Use filters on `chat ls`** to help users find the right channel before exporting
1746. **NEVER execute write operations** — this skill is read-only; do not send messages, join channels, or modify anything
1757. **Convert timestamps** — when the user gives dates, convert to Unix timestamps for the `-T time` filter
176 
177### Working with exported JSON
178 
179After exporting, read the JSON file and extract the relevant information:
180 
181```bash
182# Export messages
183tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json
184 
185# Read and process the export
186cat /tmp/tdl-export.json
187```
188 
189The export JSON contains message objects with fields like `id`, `date`, `message` (text content), `from_id`, `views`, and media metadata.
190 
191---
192 
193## Step 5: Present the Results
194 
195After fetching data, present it clearly for financial research:
196 
1971. **Summarize key messages** — highlight the most relevant news or market updates
1982. **Include timestamps** — show when each message was posted
1993. **Group by topic** — if multiple channels, organize by theme (macro, earnings, crypto, etc.)
2004. **Flag actionable information** — note breaking news, price targets, earnings surprises
2015. **Provide channel context** — mention which channel/group each message came from
2026. **For channel lists**, show channel name, member count, and type
203 
204---
205 
206## Step 6: Diagnostics
207 
208If something isn't working:
209 
210| Error | Cause | Fix |
211|-------|-------|-----|
212| `not authorized` or session errors | Not logged in or session expired | Run `tdl login -T qr` to re-authenticate |
213| `FLOOD_WAIT_X` | Rate limited by Telegram | Wait X seconds, then retry |
214| `CHANNEL_PRIVATE` | No access to channel | User must join the channel in their Telegram app first |
215| `tdl: command not found` | tdl not installed | Install using Step 1 |
216 
217---
218 
219## Reference Files
220 
221- `references/commands.md` — Complete tdl command reference for reading channels and exporting messages
222 
223Read the reference file when you need exact command syntax or detailed flag documentation.
224 
View all files on GitHub →

Details

Updated
Aug 27, 2026
License
MIT
Stars on the repo
★ 3,347
Checked
Source
himself65/finance-skills ↗
Creator
himself65 · 24 listings
View creator

Similar skills

See all →
SkillAnalyzes market trends across platforms for a given topicSkill: trend-analysisMaxKmet/idea-validation-agents · by MaxKmetAnalyzes market trends across platforms (TikTok, Reddit, App Store, Google Trends) for a given topic or category. Writes a new file to memory/market_insights/.★ 468 GitHub starsPromptIts goal is to help users quickly understand confusingInternet Trend & Slang Intelligencef/prompts.chat · by Scott MalinIts goal is to help users quickly understand confusing or unfamiliar phrases appearing in social media, news, workplaces, or online conversations.New listingPromptAct as a cutting-edge market trend analystTrend researcherf/prompts.chat · by Ersin YılmazAct as a cutting-edge market trend analyst specializing in identifying viral opportunities and emerging user behaviors across social media platforms, app stores, and digital culture. Your superpower is spotting trends before they peak and translating cultural moments into product opportunities that can be built within 6-day sprints.New listingMCPExpert investment researcher specializing in market research🔍 Investment Researcher Agentmsitarzewski/agency-agents · by msitarzewskiExpert investment researcher specializing in market research, due diligence, portfolio analysis, and asset valuation. Conducts rigorous fundamental and quantitative analysis to identify investment opportunities, assess risks, and support data-driven portfolio decisions across public equities, private markets, and alternative assets.★ 154k GitHub starsMCP3-7 days | Agents: 6 | Gate Keeper: Executive Summary🔍 Phase 0 Playbook — Intelligence & Discoverymsitarzewski/agency-agents · by msitarzewski> Duration: 3-7 days | Agents: 6 | Gate Keeper: Executive Summary Generator★ 154k GitHub starsMCPExpert market intelligence analystProduct Trend Researcher Agentmsitarzewski/agency-agents · by msitarzewskiExpert market intelligence analyst specializing in identifying emerging trends, competitive analysis, and opportunity assessment. Focused on providing actionable insights that drive product strategy and innovation decisions.★ 154k GitHub stars

More from himself65

SkillEstimate the intrinsic value of a public company using DCFCompany valuationhimself65/finance-skills · by himself65Estimate the intrinsic value of a public company using DCF, relative (peer multiple) and sum-of-parts (SOTP) methods, then triangulate to an implied share price with upside/downside versus the current market price. Use this skill whenever the user asks: what is AAPL worth", "valuation of NVDA", "fair value of TSLA", "intrinsic value", DCF for MSFT", "build a DCF", "discounted cash flow", "WACC", "terminal value", implied share price", "upside to fair value", "is X overvalued/undervalued", relative valuation", "peer comparison valuation", "EV/EBITDA target", "SOTP", sum of the parts", "how much is [company] worth", "price target from fundamentals", value this company", or any ticker in the context of computing intrinsic or relative valuation. Default to running ALL three methods (DCF + relative + SOTP-if-applicable) and presenting a blended implied price with a sensitivity table. Do not answer valuation questions from memory — always run the workflow.★ 3.3k GitHub starsSkillRead Discord for financial research using opencliDiscord Skill (Read-Only)himself65/finance-skills · by himself65Read Discord for financial research using opencli (read-only). Use this skill whenever the user wants to read Discord channels, search for messages in trading servers, view guild/channel info, monitor crypto or market discussion groups, or gather financial sentiment from Discord. Triggers include: "check my Discord", "search Discord for", "read Discord messages", what's happening in the trading Discord", "show Discord channels", "list my servers", Discord sentiment on BTC", "what are people saying in Discord about AAPL", monitor crypto Discord", any mention of Discord in context of reading financial news, market research, or trading community discussions. This skill is READ-ONLY — it does NOT support sending messages, reacting, or any write operations.★ 3.3k GitHub starsSkillGenerate a pre-earnings briefing for any stock using YahooEarnings Preview Skillhimself65/finance-skills · by himself65Generate a pre-earnings briefing for any stock using Yahoo Finance data. Use this skill whenever the user wants to prepare for an upcoming earnings report, understand what analysts expect, review a company's beat/miss track record, or get a quick overview before an earnings call. Triggers include: "earnings preview for AAPL", "what to expect from TSLA earnings", MSFT reports next week", "earnings preview", "pre-earnings analysis", what are analysts expecting for NVDA", "earnings estimates for", will GOOGL beat earnings", "earnings beat/miss history", upcoming earnings", "before earnings", "earnings setup", consensus estimates", "earnings whisper", "EPS expectations", what's the street expecting", "earnings season preview", any mention of preparing for or previewing an earnings report, or any request to understand expectations ahead of a company's earnings date. Always use this skill when the user mentions a ticker in context of upcoming earnings, even if they don't say "preview" explicitly.★ 3.3k GitHub starsSkillGenerate a post-earnings analysis for any stock using YahooEarnings Recap Skillhimself65/finance-skills · by himself65Generate a post-earnings analysis for any stock using Yahoo Finance data. Use when the user wants to review what happened after earnings, understand beat/miss results, see stock reaction, or get an earnings recap. Triggers: "AAPL earnings recap", "how did TSLA earnings go", "MSFT earnings results", did NVDA beat earnings", "post-earnings analysis", "earnings surprise", what happened with GOOGL earnings", "earnings reaction", stock moved after earnings", "EPS beat or miss", "revenue beat or miss", quarterly results for", "how were earnings", "AMZN reported last night", earnings call recap", or any request about a company's recent earnings outcome. Use this skill when the user references a past earnings event, even if they just say "AAPL reported" or "how did they do".★ 3.3k GitHub starsSkillDeep-dive into analyst estimates and revision trends for anyEstimate Analysis Skillhimself65/finance-skills · by himself65Deep-dive into analyst estimates and revision trends for any stock using Yahoo Finance data. Use when the user wants to understand analyst estimate direction, how EPS or revenue forecasts changed over time, compare estimate distributions, or analyze growth projections across periods. Triggers: "estimate analysis for AAPL", "analyst estimate trends for NVDA", EPS revisions for TSLA", "how have estimates changed for MSFT", estimate revisions", "EPS trend", "revenue estimates", consensus changes", "analyst estimates", "estimate distribution", growth estimates for", "estimate momentum", "revision trend", forward estimates", "next quarter estimates", "annual estimates", estimate spread", "bull vs bear estimates", "estimate range", or any request about tracking or comparing analyst estimates/revisions. Use this skill when the user asks about estimates beyond a simple lookup — if they want context, trends, or analysis, this is the right skill.★ 3.3k GitHub starsSkillCalculate ETF premium/discount vs NAV via Yahoo FinanceETF Premium/Discount Analysis Skillhimself65/finance-skills · by himself65Calculate ETF premium/discount vs NAV via Yahoo Finance, and decompose single-day surges into NAV-driven vs structural components (gamma squeeze, dealer hedging, blocked AP arbitrage). Use whenever the user asks about an ETF's premium or discount, NAV comparison, why an ETF diverged from its holdings, or how much of a move is dealer-hedging-driven. Triggers: "ETF premium", "ETF discount", "NAV premium", "is SPY at a premium", "BITO premium", IBIT premium", "bond ETF discount", "trading above/below NAV", "ETF premium screener", biggest discount", "compare ETF NAV", "ETF arbitrage", "ETF gamma squeeze", ETF premium surge", "decompose ETF move", "dealer gamma exposure", "GEX for ETF", why did this ETF jump", "premium convergence", "AP arbitrage blocked", or any request about the gap between an ETF's price and underlying value. Especially relevant for leveraged, inverse, international, bond, commodity, and crypto ETFs.★ 3.3k GitHub stars