5.9k stars · MIT · v3.31.0 (2026-08-25) · Track this in Scout
Async Python framework for Telegram bots — the distribution surface a Russian-speaking audience is actually on.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A modern, fully asynchronous Python framework for the Telegram Bot API: routers, filters, finite-state dialogs, inline keyboards, and delivery by either webhook or long polling, with a typed API surface that tracks Telegram's own releases closely.
What it is good for. Edition 4 was about reaching a second audience and covered translation, dubbing, localisation and bilingual docs — everything except somewhere to publish. In Russian-speaking tech, that somewhere is a Telegram channel: distribution, comments and a subscriber list on one surface, with no algorithm deciding who sees a post. Two concrete uses, and the second is the interesting one. First, a posting bot — FastAPI or n8n pushes every new video and article to a channel automatically, which is the job Mixpost and Postiz do for the platforms they cover, and Telegram is the platform they cover worst. Second, a product bot: someone forwards a long chat export to it and gets a subtopic map back as a message. That is a whole product, with no signup and no landing page, on the app the audience already has open — a distribution channel and a free trial at the same time.
- MIT, async, and written in the same Pydantic-flavoured Python a FastAPI service already uses
- A Telegram channel is a subscriber list nobody can reprice — the Listmonk argument, in the place a Russian-speaking audience lives
- The v3 API has been stable for years and the documentation is thorough, so Claude Code writes it correctly first time
- Telegram is a conversation, not a broadcast pipe. A bot that never answers is worse than no bot — the same warning Edition 5 gave about the support chat
- Bot API rate limits are strict and fail quietly. A bulk send needs deliberate throttling or messages simply vanish
- It only pays off if you commit to running a Russian-language channel. Half-committed, it becomes another inbox you avoid opening
Install into the FastAPI virtual environment and run the bot as a second process beside the API — or, for the posting half, as a Procrastinate periodic task, since you now have a job queue.
pip install aiogram
