How Threads & Streaming Text Work for Telegram Bots: Parallel Conversations & Real-Time AI Generation
Some bots answer by writing in front of you: a message appears, then grows, then settles. Nothing is being typed — the bot is editing the same message over and over as its answer arrives.
It feels alive, and it changes how a reply should be written, because a message that keeps moving cannot be read while it moves.
What you will be able to do
- check_circle Explain what a growing message actually is.
- check_circle Decide when streaming helps and when it annoys.
- check_circle Keep several conversations apart in one room.
- check_circle Recognise the limits a bot is working against.
One message, edited repeatedly — which is why the final version is the only one that is ever complete.
graphic_eq It is edits, not typing
A bot cannot send letters one at a time. What it does is post a short message and then replace its contents repeatedly as more of the answer becomes available, which produces the growing effect — and which explains every odd thing you may have noticed about it.
The text jumps rather than flowing, because it arrives in batches rather than continuously. Formatting often appears only at the end, since half a table or an unclosed code block cannot be rendered sensibly. And on a poor connection you may see the message leap from a fragment to the whole thing, because the intermediate versions never reached you.
None of that is a fault. It is a reasonable way to show progress on something slow, and the alternative — a blank pause followed by four paragraphs — feels considerably worse even when it is faster overall.
Why does the formatting appear only at the end?
Because partial formatting is broken formatting. A table with two of its rows, a half-written link, a code block that has not been closed — none of those can be displayed correctly, so a sensible bot streams plain text and applies the structure once the answer is complete. If you are reading the intermediate version, you are reading a draft.
Should a short answer stream?
No, and it is the most common misuse. Streaming exists to fill a wait; if the answer is two lines, there is no wait to fill and the animation just delays something that could have arrived complete. Stream long replies, send short ones. A user who watches three words assemble themselves has been made to wait for a performance.
What does it do in a group?
It occupies the room. A message changing every fraction of a second sits at the bottom of everybody's screen while other people are trying to talk, and in an active group that is genuinely disruptive. In a shared space the better pattern is a short acknowledgement followed by one complete answer — save the streaming for private chats where the person asking is the only one watching.
Can I stop one?
Only if the bot offers it, usually as a button on the message itself. Without that there is no client-side way to cancel something another party is writing — you can leave the chat, but the message will finish. For bot operators that is an argument for including a stop control on anything that can run long.
Is it worth copying the answer before it finishes?
No. Copy a message that is still being edited and you get whatever was there at that instant, often mid-sentence and without the final formatting. The completed version is what stays in the chat, so waiting the extra moment is always the right move — and if the answer matters, the completed version is also the only one worth quoting.
Why do some bots use topics for this?
Because several long answers in one stream of messages become unreadable. Giving each conversation its own thread keeps the question next to its answer and stops two exchanges interleaving. It is the same reason a busy group uses topics at all, applied to a room where one participant writes at length.
account_tree If you are the one building it
Three decisions do most of the work. Stream only what is long enough to need it. Update in batches large enough to be readable rather than as often as the limits allow — text that changes faster than a person reads is worse than text that arrives in paragraphs. And always finish with a single clean final edit, so that what remains in the chat is a well-formed message rather than the last frame of an animation.
The fourth, which is skipped constantly: decide what happens when it fails halfway. A message that stops growing and is never completed leaves a truncated fragment in somebody's chat with no indication that anything went wrong. Editing it to say the answer was interrupted costs one more call and is the difference between a broken bot and a bot that had a problem.
settings Working with them
- Wait for it to settle before reading The intermediate text is a draft.
- Copy only the finished version Mid-edit copies are truncated.
- Expect formatting last Partial structure cannot render.
- Builders: stream only long answers Short ones should just arrive.
- Keep streams out of busy groups They hold the bottom of the screen.
- Mark the end, and mark failures Nothing else does.
This page is about one message being written slowly. The curriculum step is the plumbing underneath: how a bot is delivered its messages, what the limits are, and what happens when more arrive than it can handle.
Streaming replies at a glance
Why a growing message is a sequence of edits, why formatting arrives last, when streaming helps and when it occupies a room, and what a stalled answer looks like, on one page. Tap to open it at full resolution.