Kurigram
Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots
What it is and what it does
Kurigram is a maintained fork of Pyrogram that provides an asynchronous Python interface to Telegram's MTProto API. It abstracts low-level protocol details while giving you full access to Telegram's official client actions, supporting both user accounts and bot identities. The framework is type-hinted, async-first (with optional synchronous convenience wrappers), and designed to be a drop-in replacement for Pyrogram.
You use it to build Telegram clients and bots in Python by defining message handlers, managing conversations, and calling Telegram API methods through a clean, Pythonic interface. It depends on pyaes for encryption and python-socks for proxy support, and is built on top of high-performance C-based cryptography (TgCrypto) for speed. The package supports modern Python versions (3.8 through 3.14) and is actively maintained with recent feature additions.
Use it for:
- Build a Telegram bot that responds to messages, handles commands, and manages conversations without running a separate bot API server.
- Create a user client that automates Telegram account actions like sending messages, managing groups, or monitoring channels.
- Develop applications that need access to Telegram features like Stories, Topics, or Business Accounts that may not be available through the official Bot API.
- Implement a Telegram client with custom business logic, such as message filtering, forwarding, or analytics.
- Build multi-account Telegram automation tools that interact with the protocol directly rather than through HTTP endpoints.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Kurigram is an asynchronous Python framework for interacting with Telegram's MTProto API, enabling you to build user clients and bots that access Telegram features including Gifts, Stories, Topics, and Business Accounts.
Yes, if you need direct MTProto access to Telegram or want a Pyrogram replacement. Kurigram has low install friction, active maintenance, no known vulnerabilities, and broad Python version support. The copyleft license (LGPL-3.0) is permissive for most use cases but requires derivative works to remain open-source. Install it if you're building Telegram bots or clients; skip it if you only need the official Bot API or prefer a simpler HTTP-based wrapper.
Install
kurigram on PyPI
pip
pip install kurigramuv
uv add kurigrampoetry
poetry add kurigramInstalling Kurigram
Before you install
Low install friction with only two runtime dependencies (pyaes, python-socks). Actively maintained with recent commits and a stable production release status; last release 34 days old.
License in practice
Licensed under LGPL-3.0-or-later (copyleft). You may use and modify the package freely, but any derivative work must also be released under a compatible copyleft license.
Quickstart
pip install kurigram
from kurigram import Client, filters
app = Client("my_account")
@app.on_message(filters.private)
async def hello(client, message):
await message.reply("Hello from Kurigram!")
app.run()
Requires Python 3.8 or later; asynchronous runtime (asyncio) needed for full functionality, though synchronous usage is available for convenience.
Verify before relying
- Whether TgCrypto (the C-based cryptography dependency mentioned in the description) is automatically installed or requires separate setup.
- Compatibility guarantees with official Telegram API changes and how quickly Kurigram tracks new Telegram features.
- Performance characteristics and rate-limiting behavior compared to the original Pyrogram.
Package facts
| License | LGPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — pyaes, python-socks |
| Maintenance | actively maintained — 34 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 86,812/month — #13,835 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: kurigram-2.2.24-py3-none-any.whl
Keywords: api, chat, client, library, messenger, mtproto, python, telegram
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
PyrogramPyrogram is an asynchronous Python framework…
copyleft · top 15,000 on PyPI
pyroforkPyrofork is an asynchronous Python framework…
copyleft · top 15,000 on PyPI
aiogramaiogram is an asynchronous Python framework for…
permissive · top 5,000 on PyPI
TelethonTelethon is an asyncio-based Python library…
permissive · top 5,000 on PyPI
python-telegram-botProvides a pure Python asynchronous interface…
copyleft · top 1,000 on PyPI
pyTelegramBotAPIA Python library that wraps the Telegram Bot…
copyleft · top 5,000 on PyPI
KangelPluginsManagerManages and distributes plugins for exteraGram…
permissive · top 15,000 on PyPI
pytgcallsEnables Python bots to join Telegram voice…
copyleft · top 5,000 on PyPI
instagrapiUnofficial Instagram API wrapper that automates…
permissive · top 5,000 on PyPI
exteragram-alibProvides reactive state management, declarative…
permissive · top 15,000 on PyPI