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.4
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.4.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wzgram-3.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.2 MB
Release files / wzgram-3.1.4.tar.gz
| Download URL | wzgram-3.1.4.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
229982df458c6fd059377ef7df18dafc77e364e25dacfbe867b945d15860c340
|
|
BLAKE2b-256 checksum How to use checksums |
faae00a4c53cff2aca1d9bc37f3e55742de20bc5fb66ed50402b0a4fb53f27f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.4-py3-none-any.whl
| Download URL | wzgram-3.1.4-py3-none-any.whl |
|---|---|
| Size | 6.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab94fa7e0c1f213d0d683b644adc697209ff83eb826b506c37fce7b2ab3ab7c6
|
|
BLAKE2b-256 checksum How to use checksums |
5a4fbb9f8830d0f91b0bc37fcbde1d1242bdfd0455e2510b06f47eb4c64edb98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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}
|