A powerful and customizable Telegram userbot built with Telethon. Create custom plugins, automate tasks, and enhance your Telegram experience.
If you spam, face issues with Telegram, or get your account deleted, DON’T BLAME US!
- No personal support.
- We won’t spoon-feed you.
- If you need help, ask in our support group, and we or others will try to help you.
- DWYOR (Do With Your Own Risk).
Review the Telegram API Terms of Service.
Thank you for trusting and using this userbot!
- Python 3.11.x
- Linux (recommended: Debian/Ubuntu)
- Telegram
API_IDandAPI_HASHfrom API development tools
Follow these steps to set up and run getter on your system.
git clone https://github.com/kastaid/getter.git
cd getterGenerate STRING_SESSION by choosing Telethon at @strgen_bot or run python3 strgen.py.
Create a .env file in the main directory and fill it with the example from example.env.
Choose your preferred deployment method below.
Deploy using Docker Compose for easy containerized deployment.
git pull && \
docker compose -f full-compose.yml up --detach --build --force-recreate && \
docker compose -f full-compose.yml logs -fgit pull && \
docker compose -f lite-compose.yml up --detach --build --force-recreate && \
docker compose -f lite-compose.yml logs -fRun getter locally on your machine or server (e.g., on Termux).
pip3 install -r requirements.txt
python3 -m getterpip3 install -r requirements.txt
pip3 install -r requirements-dev.txt
python3 -m run --watchMore commands: run python3 -m run -h.
Deploy to Heroku with one click:
Once successfully deployed, test your getter by sending .ping in any chat.
Command prefix:
- Default prefix is
.(dot) - If you set a custom
HANDLERin your config, use that prefix instead (e.g.,!ping,/ping) - If
NO_HANDLERis set toTrue, send commands without any prefix (e.g.,ping)
Get all commands: .help - This will show you all available plugins, commands, and how to use them.
Create custom plugins at ./getter/plugins/custom/plugin_name.py.
Dynamic plugin management:
- Upload your
plugin_name.pyfile anywhere in Telegram (plugin name must be unique) - Reply to the file with
.loadto download, activate, or update the plugin - Reply to the plugin file with
.unload [plugin_name]to remove it
Example plugin:
from . import kasta_cmd
# Works everywhere (e.g., groups, personal chats)
@kasta_cmd(pattern="hi")
async def _(event):
await event.eor("Hello **World**")
# Works only in personal chats
@kasta_cmd(pattern="hi", func=lambda e: e.is_private)
async def _(event):
await event.eor("Hello **World**")
# Works only in channels
@kasta_cmd(pattern="hi", func=lambda e: e.is_channel and e.chat.broadcast)
async def _(event):
await event.eor("Hello **World**")
# Works only in groups
@kasta_cmd(pattern="hi", func=lambda e: e.is_group)
async def _(event):
await event.eor("Hello **World**")
# Works only in groups or channels
@kasta_cmd(pattern="hi", func=lambda e: not e.is_private)
async def _(event):
await event.eor("Hello **World**")For available modules, imports, functions, and methods, see __init__.py.
If you’re enjoying it or want to support development, feel free to donate. Thank you! ❤️
Want to contribute? Read the Contributing.
Released under the AGPL-3.0 License.