wzgram is a drop-in replacement for Pyrogram, with access to the latest Telegram features including Gifts, Stories, Topics, Business Accounts, and more. Import wzgram; from pyrogram import ... still resolves to the same module rather than a second copy of it, so an existing Pyrogram codebase runs unchanged.
from wzgram import Client, filters
app = Client("my_account")
@app.on_message(filters.private)
async def hello(client, message):
await message.reply("Hello from wzgram!")
app.run()
wzgram is a modern, elegant and asynchronous MTProto API framework. It enables you to easily interact with the main Telegram API through a user account (custom client) or a bot identity (bot API alternative) using Python.
Key Features
- Drop-in Replacement — New code says
from wzgram import ...; existingfrom pyrogram import ...codebases migrate with zero changes, since both names are one module. - Up-to-Date — Supports Gifts, Stories, Topics, Business Accounts, Giveaways, and the latest Telegram layer.
- Async Natively — Fully
async/awaitthroughout. Also usable synchronously viaapp.run()for convenience. - Type-hinted — Every type and method is annotated for excellent editor support.
- Fast — Boosted by WarpCrypto, a high-performance cryptography library written in Rust.
- Powerful — Full access to Telegram's API for any official client action and more.
Example with Inline Keyboard
from wzgram import Client, filters
from wzgram.types import InlineKeyboardMarkup, InlineKeyboardButton
app = Client("my_bot")
@app.on_message(filters.command("start"))
async def start(client, message):
await message.reply(
"Choose an option:",
reply_markup=InlineKeyboardMarkup([
[
InlineKeyboardButton("Website", url="https://example.com"),
InlineKeyboardButton("Help", callback_data="help"),
],
[InlineKeyboardButton("About", callback_data="about")],
])
)
app.run()
Installing
pip install wzgram
Requires Python 3.10+. On Linux and macOS, wzgram[fast] also pulls in
uvloop; call uvloop.install() yourself to use it
(see the Speedups guide):
pip install wzgram[fast]
Development
# Clone the repo
git clone https://github.com/rjriajul/wzgram.git
cd wzgram
# Install uv (if not already)
pip install uv
# Create virtual environment with dev dependencies
uv sync --frozen --extra dev
# Generate TL API types
uv run poe api
# Run tests
uv run poe test
Documentation
Full documentation at https://wzgram.com
Resources
Metadata
Release files for wzgram 3.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wzgram-3.1.3.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wzgram-3.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.2 MB
Release files / wzgram-3.1.3.tar.gz
| Download URL | wzgram-3.1.3.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acf55626d34aee20a9b5e070137514f4011e8dae63d14fc12efc4dc15539cba2
|
|
BLAKE2b-256 checksum How to use checksums |
a1e004932436fc2e6e1a0acfd9ab781a6eb3698776b8a74e664065af7602629c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / wzgram-3.1.3-py3-none-any.whl
| Download URL | wzgram-3.1.3-py3-none-any.whl |
|---|---|
| Size | 6.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab90f47e16bbf41a63ecdc050aa424d8a1a94daf03c494b198dc3a8c639eed48
|
|
BLAKE2b-256 checksum How to use checksums |
9cfaff9d78c414eec33be3f0795eed54b07c0bc30d88f5de1f08e29137be2218
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|