Read and summarize Telegram channels without a bot
· the plori team
Ask a plori agent to summarize a Telegram channel, and the path depends on one thing:
whether the channel is public. A public channel is readable immediately with zero
credentials, because Telegram serves its recent posts as plain HTML at
t.me/s/<username>. A private or invite-only channel needs your own account, connected
read-only through a guided in-chat login where every credential goes through a masked
card.
Neither path involves a Telegram bot. A bot could not do this job anyway: the Bot API shows a bot only the chats it was explicitly added to, never the channels you follow.
One ask, two paths
A public channel needs no credentials at all. Only a private channel needs the read-only login.
- 01
Public path
Fetch the t.me preview
Zero credentials
- 02
Consent
Private path asks first
Nothing collected yet
- 03
Log in
Masked cards, sealed session
Read-only tools
- 04
Summarize
Bounded posts, cited
Source-linked digest
Which path does your channel take?
- Public:
t.me/<username>,t.me/s/<username>, or an @username. The agent reads the web preview. Nothing to connect. - Private: invite links (
t.me/+..., the oldert.me/joinchat/...) and internalt.me/c/...links. The preview cannot see these, so the agent offers the account connection instead of guessing.
What do you need?
For a public channel, only the channel name or link.
For a private channel:
- Your own Telegram account, somewhere you can receive a login code.
- An api_id and api_hash from my.telegram.org: sign in, open "API development tools", and create an app. The pair identifies your own app registration; plori deliberately does not log you in through a shared app.
- Your two-step verification password, if the account has one.
What prompt should you give plori?
Replace CHANNEL with the channel link or @username. The prompt covers both paths, so
you do not need to know in advance whether the channel is public.
Summarize the last 30 posts from CHANNEL.
If the channel is public, read it through its t.me/s web preview. Do not ask me to connect anything, create a bot, or provide an API key for a public channel.
If the channel is private or invite-only, walk me through connecting my own Telegram account read-only. Explain the risks first and get my explicit consent before collecting anything. Collect my api_id, api_hash, phone number, login code, and two-step password only through masked secret cards, never in plain chat.
In the summary, group the posts by topic and link each claim to the exact t.me message it came from. Tell me plainly if fewer than 30 posts were available, and do not invent text for media-only posts.How does the public path work?
Telegram publishes a public channel's recent posts as server-rendered HTML at
https://t.me/s/<username>. The agent fetches that page, extracts each post's message
link, timestamp, and visible text, and pages further back with the
?before=<message id> parameter until it has the count you asked for. No login, no bot
token, no developer account, and nothing stored afterwards.
Most channels people ask about are public, so this path covers the common case. And because every post in the digest carries its t.me link, a claim that looks off is one click away from its source.
What does connecting your account actually grant?
The honest answer has two halves, and the agent states both before it collects anything.
The tools are read-only. The connector can list your chats, read channel history, search, and resolve links, and it contains no send, join, or delete operation: the write calls are removed when the tool is built, not merely hidden behind a policy.
The session is not read-only at the protocol level. Logging in produces a full-account Telegram session, the same kind your phone holds. plori's answer to that is containment rather than denial: the session is sealed to this one agent, never shared or pooled, and there is no central store of Telegram sessions anywhere in plori. You can end it at any moment from Telegram's Settings, Devices, and the agent will simply report that it needs reconnecting.
One more risk to weigh: Telegram watches logins from datacenter IPs and occasionally flags or limits an account for them. The chance is small but real. For heavy automated reading, Telegram's own guidance is to write to [email protected] first.
How does the guided login run?
Consent comes first. The agent states the risks above and asks a plain yes or no; decline, and nothing has been collected. Approve, and the flow takes one masked card per value: api_id, api_hash, phone number, then the login code Telegram sends you, then the two-step password only if your account has one.
Type the code into the card, not the chat. Telegram invalidates a login code that gets forwarded through a Telegram message, so pasting it into the conversation would burn it.
After connecting, the agent confirms with a small smoke read, listing your five most recent chats, before it touches the channel you asked about. We ran this path end to end with a real account: consent card, masked cards, the smoke read, then a history read of an invite-only channel, all without any credential appearing in chat.
What are the limits?
- Reading only. The connector cannot post, forward, join, or leave anything, so a "summarize and reply" job stops at the summary. Sending is a separate connection on purpose: a Telegram bot token, for workflow notifications to a group that bot was added to.
- One account per agent. The session seals to the agent that performed the login, so a second agent means a second login.
- The scope is the channels you actually belong to. Bulk scraping, member harvesting, and mass-joining channels to mine them are out of scope by policy, not just by tooling.
- A media-only post appears in the digest as its link and caption. The agent does not invent a description for an image it cannot read.
Common questions about reading Telegram with an agent
Can an AI agent read a Telegram channel without a bot?
Yes, two ways. A public channel is read straight from its t.me/s/<username> web
preview with no credentials at all. A private channel is read through a read-only
connection to your own account, established by a guided login where every credential
goes through a masked card.
Why can't a Telegram bot read the channels I follow? The Bot API shows a bot only the chats it was added to. Your subscription list and the history of a private channel exist only for a full account session, which is why the private path connects your account read-only instead of asking you to create a bot.
Is the Telegram connection really read-only? The tool surface is: list chats, read history, search, resolve links, with every write operation removed when the tool is built. The underlying session is still a full-account login at the protocol level, so plori seals it to the single agent that created it and never pools or centrally stores sessions. You can revoke it any time from Telegram's Settings, Devices.
Do I need my own api_id and api_hash? Yes, from my.telegram.org under "API development tools". Keeping the login on your own app registration, rather than one shared plori app, is deliberate: a server that logs a fleet of accounts in through a single app is the pattern Telegram treats as abuse, and your account should not share its fate with anyone else's.
Build it in plori
Open a plori agent and paste the prompt. For a private channel, approve the consent card first; every credential goes through a masked card.