Uroboros
Модульный юзербот для Telegram на Python и Telethon.
Модули одной командой, кнопки и формы, защита аккаунта от вредного кода.
📚 Документация · 🚀 Установка · ⌨️ Команды · 🧩 Писать модули · 📦 Модули
✨ Возможности
📦 Модули одной командой — .dlm notes, поиск .search, свои репозитории .addrepo |
🛡 Защита аккаунта — код модуля проверяется до установки, а во время работы модули не видят сессию |
| 🤖 Кнопки и формы — встроенный inline-бот: настройки, справка, подтверждения | 🔁 Модули Hikka и FTG — адаптер загружает их без правок; что поддерживается — в docs/hikka.md |
🌿 Стабильная и dev-ветки — .dev on / .dev off, обновление .update с откатом |
💾 Бэкапы — база и модули одним архивом, автобэкап по расписанию |
🔐 Доступ по уровням — owner, sudo, support и права на каждую команду |
🐧 Работает везде — Linux и VPS, Termux, Docker, Windows, macOS |
🚀 Установка
Linux, VPS, Termux и macOS:
curl -fsSL https://raw.githubusercontent.com/asykixd/uroboros/master/install.sh | sh
Или через pip: pip install uroboros-userbot. Docker, служба systemd, автозапуск в Termux и Windows — в
документации по установке.
При первом запуске Uroboros пишет в консоль ссылку на веб-панель входа: откройте её в браузере, введите
api_id и api_hash с my.telegram.org/apps, номер, код и пароль 2FA — или
отсканируйте QR-код. После входа панель выключается, а Uroboros сам создаёт inline-бота для кнопок через
@BotFather. Вход в консоли — --cli.
⌨️ Главные команды
| Команда | Что делает |
|---|---|
📖 .help [модуль] |
список модулей и справка |
📥 .dlm <ссылка | owner/repo/модуль | модуль> |
установить модуль; .dlm owner/repo — модули репозитория |
🔃 .uplm [модуль] |
обновить модули: сначала изменения и подтверждение |
🗑 .ulm <модуль> |
удалить модуль |
⚙️ .cfg [модуль] |
настройки модулей — кнопками |
🆕 .update |
обновить Uroboros: список изменений, установка, откат при ошибке |
🌿 .dev on | off |
перейти на сборку из dev или вернуться на стабильную master |
🔐 .security |
доступ, права команд, защита от флуда и защита модулей |
💾 .backup, ♻️ .restore |
бэкап базы и модулей и восстановление |
ℹ️ .info, 📡 .ping, 📝 .logs |
состояние бота |
Все команды с уровнями доступа — в справочнике.
🧩 Пишем модуль
# meta developer: @you
# meta permissions: none
# requires_uroboros: 1.0
from uroboros import Module, command, utils
class Notes(Module):
"""Заметки"""
@command("save", emoji="💾")
async def save(self, message):
"""<имя> <текст> — сохранить заметку"""
name, _, text = utils.get_args_raw(message).partition(" ")
self.set(name, text)
await utils.answer(
message,
utils.card(
"✅ <b>Заметка сохранена</b>",
[f"🏷 Имя: <code>{utils.escape_html(name)}</code>", f"📏 Длина: <code>{len(text)}</code>"],
hint=f"показать: <code>.note {utils.escape_html(name)}</code>",
),
)
В модуле есть self.client (Telethon), своё хранилище self.get/self.set, настройки self.config,
фильтры команд, вотчеры, фоновые задачи @loop, библиотеки, формы с кнопками self.inline.form(...) и
хелперы в utils. Подробно — в руководстве для авторов, готовые модули —
в uroboros-modules (это и шаблон для своего репозитория).
🛡 Безопасность
Сторонние модули выполняются в одном процессе с ботом. Uroboros проверяет их код при установке, показывает права и изменения, закрепляет модули с GitHub на коммите и не даёт им трогать сессию и угонять аккаунт. Но это не песочница — ставьте модули, которым доверяете. Подробнее — в docs/security.md.
🛠 Разработка
Ветка dev — разработка (версии X.Y.Z-dev), master — стабильные версии.
python3 -m venv .venv && .venv/bin/pip install -e '.[dev,docs]'
.venv/bin/python -m pytest
.venv/bin/mkdocs serve
🙏 Благодарности
API модулей и адаптер повторяют Hikka (AGPL-3.0) — спасибо её авторам. Используются Telethon и aiogram.
📄 Лицензия
AGPL-3.0, см. LICENSE. Как помочь проекту — CONTRIBUTING.md, уязвимости — SECURITY.md.
Metadata
Release files for uroboros-userbot 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| uroboros_userbot-1.0.0.tar.gz | 163.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| uroboros_userbot-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 312.2 kB
Release files / uroboros_userbot-1.0.0.tar.gz
| Download URL | uroboros_userbot-1.0.0.tar.gz |
|---|---|
| Size | 163.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5412c121d0a5d47a4093ed82f0c210f04461ef9ac4e5e35c99518d20820bddce
|
|
BLAKE2b-256 checksum How to use checksums |
add4efd949b57c3f24696884cfad5f9401fa3668a8682569978ff4d047c2be63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / uroboros_userbot-1.0.0-py3-none-any.whl
| Download URL | uroboros_userbot-1.0.0-py3-none-any.whl |
|---|---|
| Size | 148.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d30c54c8009e1e8421b1e1db706ba43f9820ca82d7c1c01bd66586d699aa2521
|
|
BLAKE2b-256 checksum How to use checksums |
6bb84f35271a6b0d0ed6f089c6692dcec0d73749599e8bbf2891fd548af138fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log