csgram is a drop-in replacement for Pyrogram, with access to the latest Telegram features including Gifts, Stories, Topics, Business Accounts, and more. Import csgram; from pyrogram import ... still resolves to the same module rather than a second copy of it, so an existing Pyrogram codebase runs unchanged.
from csgram import Client, filters
app = Client("my_account")
@app.on_message(filters.private)
async def hello(client, message):
await message.reply("Hello from csgram!")
app.run()
csgram 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 csgram 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 csgram import Client, filters
from csgram.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 csgram
Requires Python 3.10+. On Linux and macOS, csgram[fast] also pulls in
uvloop; call uvloop.install() yourself to use it
(see the Speedups guide):
pip install csgram[fast]
Development
# Clone the repo
git clone https://github.com/mdsaif572/csgram.git
cd csgram
# 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://mdsaif572.github.io/csgram
Resources
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file csgram-1.0.0.tar.gz.
File metadata
- Download URL: csgram-1.0.0.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3af40e5bab189751b9fc338f90f844fec22551b931a9ad1ce6fe6f477528e639
|
|
| MD5 |
e24cc16597bae5059b2bdffe69a470d0
|
|
| BLAKE2b-256 |
4c2c6ab2c5cd2e07be1bac550355fc15e848999d21a9ec2aae515a10445798ca
|
File details
Details for the file csgram-1.0.0-py3-none-any.whl.
File metadata
- Download URL: csgram-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24058d1f7041259bbb27abb6cdb0a62075694fee14219553471892537c9403e5
|
|
| MD5 |
f3078f1883852d8919ae63d098f4f32a
|
|
| BLAKE2b-256 |
fff004c367a29526623bafc33d1a511f15113851965c4425cbc8b58e5eae19ed
|