Metadata-Version: 2.4
Name: reena-userbot
Version: 0.2.1a1
Summary: Modular Telegram userbot
Keywords: telegram,telegram-bot,userbot,telethon,aiogram,mtproto,asyncio,cli,automation,modular
Author: zxcdiana, zeticsce
License-Expression: AGPL-3.0-only
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Dist: aiogram~=3.26
Requires-Dist: aiogram-i18n~=1.5
Requires-Dist: aiosqlite~=0.22.1
Requires-Dist: alembic~=1.18.4
Requires-Dist: apscheduler~=3.11.2
Requires-Dist: base36~=0.1.1
Requires-Dist: fluent-runtime~=0.4.0
Requires-Dist: patool~=4.0.4
Requires-Dist: platformdirs~=4.9.2
Requires-Dist: pydantic-settings~=2.13.1
Requires-Dist: reena-meval~=1.1.2
Requires-Dist: rich~=14.3.3
Requires-Dist: sqlalchemy~=2.0.47
Requires-Dist: sqlalchemy-utc~=0.14.0
Requires-Dist: telethon~=1.42.0
Requires-Dist: typer~=0.24.1
Requires-Dist: uvloop~=0.22.1 ; sys_platform == 'linux'
Requires-Dist: cryptg~=0.5.2 ; extra == 'cryptg'
Requires-Dist: psycopg[binary]~=3.3.3 ; extra == 'postgresql'
Requires-Python: ~=3.12, <3.15
Project-URL: Repository, https://codeberg.org/zxcdiana/reena-userbot
Project-URL: Community Chat, https://t.me/reena_chat
Project-URL: Author DM, https://t.me/zxcdiana
Provides-Extra: cryptg
Provides-Extra: postgresql
Description-Content-Type: text/markdown

# ❄️ Reena Userbot

**Reena** is a modular Telegram userbot powered by aiogram and telethon.

**Notice**: Reena is currently in the alpha stage. Some features are unstable, parts of the planned functionality are still missing, and documentation is incomplete

---

- [Quick Setup](#quick-setup)
- [Links](#links)
- [Reena CLI](#reena-cli)
- [Installation](#installation)
- [Creating a Bot](#creating-a-bot)

---

## Links
- [Reena Repository](https://codeberg.org/zxcdiana/reena-userbot)  
- [Reena on PyPI](https://pypi.org/project/reena-userbot/)  
- [Reena Community Chat](https://t.me/reena_chat)

---

## Reena CLI
```
Usage: reena [OPTIONS] COMMAND [ARGS]...

Options:
  -h, --help     Show this message and exit.

Commands:
  run
  alembic
  config
```

---

## Installation

- Using [uv](https://docs.astral.sh/uv/getting-started/installation/) (recommended):

```bash
uv tool install reena-userbot
```

- Using `pipx`:

```bash
pipx install reena-userbot
```

- Or use any other installation method you prefer. Reena is just a Python package :)

---

## Creating a Bot

Reena requires a Telegram bot created via [BotFather](https://t.me/BotFather)

<details>
    <summary>Bot setup guide</summary>

---

1. Open [BotFather](https://t.me/BotFather)
2. Send the `/newbot` command
3. Follow the interactive setup process to create your bot
4. (Optional) Enable inline mode for the bot. See _Bot inline mode setup_ below

---
</details>

<details>
    <summary>Bot inline mode setup</summary>

---

To use inline features, you need to enable inline mode and inline feedback in [BotFather](https://t.me/BotFather).

Enable inline mode:

1. Send the `/setinline` command
2. Select or enter your bot
3. Enter any inline placeholder text

Enable inline feedback:

1. Send the `/setinlinefeedback` command
2. Select or enter your bot
3. Select or enter **Enabled**

---
</details>

---

## Quick Setup

1. Install Reena (see [Installation](#installation))
2. Create a bot (see [Creating a Bot](#creating-a-bot))
3. (Optional) Create the configuration in advance with:

```bash
reena config create
```

4. Run Reena:

```bash
reena run
```

_If you skip step 3, Reena will offer to create and configure everything on first launch_

---