Userbot
Telegram Userbot built with Pyrogram
Install / Use
/learn @athphane/UserbotREADME
Pyrogram Userbot
<img src="https://i.imgur.com/WXUgDHT.png" width="160" align="right">A Telegram Userbot based on Pyrogram
This repository contains the source code of a Telegram Userbot and the instructions for running a copy yourself. Beside its main purpose, the bot is featuring Pyrogram Asyncio and Smart Plugins; feel free to explore the source code to learn more about these topics.
I assume you will read this whole README.md file before continuing.
Requirements
You're gonna need to get the following programs and services either installed on your server or signed up for. You must do all. It is a cardinal sin if you don't.
-
Python 3.10 (requirements were generated for 3.10. Python 3.8 is supported from the looks of it.)
-
virtualenvinstalled so that the packages don't interfere with other system packages. -
MongoDB on your server or a free server from MongoDB Atlas. (I recommend Atlas as I used it during development with no issues.)
-
carbon-now-cli on your server too generate code images for the carbon.py module. I use this CLI tool cause I don't know and couldn't get selenium and chromedriver to work nicely on my server/code. I'll be nice and even give you the command to install this. I assume you already have NPM installed.
Windows: npm install -g carbon-now-cli Linux: sudo npm install -g carbon-now-cli --unsafe-perm=true --allow-root MacOS: I assume almost the same as linux ¯\_(ツ)_/¯
Installation and Deployment
The way I deploy
git clone https://github.com/athphane/userbot.git
cd userbot
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
python -m userbot
Using docker
- Save the following content as
docker-compose.yml
services:
userbot:
hostname: userbot
volumes:
- ./config:/root/userbot/config
image: ghcr.io/athphane/userbot:latest
restart: always
depends_on:
- userbot-mongo
userbot-mongo:
image: mongo:latest
hostname: userbot-mongo
restart: always
volumes:
- ./mongo:/data/db
environment:
- MONGO_INITDB_DATABASE=userbot
- MONGO_INITDB_ROOT_USERNAME=userbot
- MONGO_INITDB_ROOT_PASSWORD=userbot-password
- Config
Get your telegram api_id and api_hash from https://my.telegram.org/apps and configure them:
mkdir config
wget -O config/userbot.ini https://raw.githubusercontent.com/athphane/userbot/refs/heads/master/userbot.ini.sample
nano config/userbot.ini
- First run:
docker compose run --rm userbot python -m userbot
- Configure userbot and stop container CTRL+C
- Run the container again de-attached:
docker compose up -d
Spotify integration
To get the Spotify commands working on the Userbot, you need to get a CLIENT_ID and CLIENT_SECRET form the Spotify Developer Portal and add them into your userbot.ini file.
On the Spotify developer portal, make sure to set your application Redirect URI to
'http://localhost:8888/callback'.
Now is a good time
Then go ahead and run the command python spotify.py
in the projects root directory.
This will create a file called .cache-yourusername. You need to transfer this file to the
project root of the server that will be running your userbot. This is a one time setup.
Known issues
.restartcommand do not work on Termux as psutils is not supported on Android.
CTRL+C, rungit pullandpython -m userbotto update bot on termux.
Star History
<a href="https://star-history.com/#athphane/userbot&Date"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=athphane/userbot&type=Date&theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=athphane/userbot&type=Date" /> <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=athphane/userbot&type=Date" /> </picture> </a>Credits, and Thanks to
- Dan for his Pyrogram Library
- Colin Shark for his PyroBot which helped with most of the useful functions used.
- The people at MyPaperPlane for their Telegram-UserBot that gave a ton of ideas on how and what modules to include in this userbot.
- Baivaru for the ton of help that got me this far into making this repo.
<p align="center">Made with love from the Maldives ❤</p>
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
96.8kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
344.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
