Skip to main content
wzgram

wzgram

PyPI Python Downloads License Documentation

Elegant, modern and asynchronous Telegram MTProto API framework in Python for users and bots

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 ...; existing from 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/await throughout. Also usable synchronously via app.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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wzgram 3.1.2
File Size Uploaded
wzgram-3.1.2.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for wzgram 3.1.2
File Interpreter ABI Platform
wzgram-3.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 7.1 MB

Release files / wzgram-3.1.2.tar.gz

Download URL wzgram-3.1.2.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
911e8f13b98ae2a22a6463c8f86547f4987e0930905534edfcf282fd3b4e32d4
BLAKE2b-256 checksum
How to use checksums
7ed87d47abaaf96fc71b90cda2231b318d665eb9efde5309dc3ef9a1e2311310
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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.2-py3-none-any.whl

Download URL wzgram-3.1.2-py3-none-any.whl
Size 6.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7026cdec2b10406365bc3ec4e18971c568e3eba310647fa51f424646a88b2446
BLAKE2b-256 checksum
How to use checksums
5dbf0ec10d3c9ce451fe16b60c1615770e98548f1c10ff0ab06607f5f9cb3983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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 history Release notifications | RSS feed

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

This release

3.1.2 This release

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.36

2 release files

3.0.35

2 release files

3.0.34

2 release files

3.0.33

2 release files

3.0.32

2 release files

3.0.31

2 release files

3.0.30

2 release files

3.0.29

2 release files

3.0.25

2 release files

3.0.24

2 release files

3.0.23

2 release files

3.0.22

2 release files

3.0.21

2 release files

3.0.20

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

2.2.23

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page