---
Web chatbots are great โ but they're often laggy, rate-limited, and locked behind a browser tab. This project puts the best models from **OpenAI and Anthropic** **right inside Telegram**, with your own API keys and no daily limits.
๐ **Try the live bot:** [@jadvebot](https://t.me/jadvebot) ยท ๐ Web: [jadve.com](https://jadve.com) โ or deploy your own in two commands ([Quick start โ](#-quick-start)).
## โจ Features
- โก **Low latency** โ replies usually take 3โ5 seconds.
- ๐ **No request limits** โ you pay your API provider directly, nothing in between.
- ๐ **Message streaming** โ answers stream into Telegram word-by-word.
- ๐ง **Frontier models** โ **GPT-5.5** and **Anthropic Claude** (Opus 4.8 / Sonnet / Haiku) via [OpenRouter](https://openrouter.ai/), plus fast & cheap defaults out of the box.
- ๐๏ธ **Vision** โ send an image and any vision-capable model (GPT-5.5, Claude, โฆ) will read it.
- ๐จ **Image generation** โ create images with OpenAI `gpt-image-1` (switch to ๐ฉโ๐จ *Artist* mode).
- ๐ค **Voice messages** โ record a voice note and Whisper transcribes it for you.
- ๐ญ **15 chat modes** โ Assistant, Code Assistant, Psychologist, Elon Musk and more. Add your own in `config/chat_modes.yml`.
- ๐ฅ **Group chat support** โ run `/help_group_chat` for setup instructions.
- ๐ป **Code highlighting** โ formatted, readable code blocks.
- ๐ **Access control** โ restrict the bot to a list of allowed Telegram users.
- ๐ฐ **Balance tracking** โ see exactly how much you've spent on the API with `/balance`.
## ๐ง Supported models
Models are config-driven โ add or remove any in [`config/models.yml`](config/models.yml) with **no code changes**.
| Model | Provider | Vision | Smart | Fast | Cheap | In / Out per 1K tokens |
|---|---|:---:|:---:|:---:|:---:|---|
| **GPT-4o mini** *(default)* | OpenAI | โ
| ๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข๐ข | $0.00015 / $0.0006 |
| **GPT-4o** | OpenAI | โ
| ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข | $0.0025 / $0.01 |
| **GPT-5.5** | OpenRouter | โ
| ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข | ๐ข๐ข | $0.005 / $0.03 |
| **Claude Opus 4.8** | OpenRouter | โ
| ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข | ๐ข๐ข | $0.005 / $0.025 |
| **Claude Sonnet** | OpenRouter | โ
| ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข | $0.003 / $0.015 |
| **Claude Haiku** | OpenRouter | โ
| ๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข๐ข | ๐ข๐ข๐ข๐ข | $0.001 / $0.005 |
Plus `gpt-image-1` for image generation and **Whisper** for voice transcription.
> ๐ก OpenAI models use the native API. Claude and GPT-5.5 are routed through [OpenRouter](https://openrouter.ai/) โ just set `openrouter_api_key` and pick the model in `/settings`. Any other OpenRouter-routed model works too: declare `provider: openrouter` in `config/models.yml`.
## ๐ญ Chat modes
| | | |
|---|---|---|
| ๐ฉ๐ผโ๐ General Assistant | ๐ฉ๐ผโ๐ป Code Assistant | ๐ฉโ๐จ Artist |
| ๐ฌ๐ง English Tutor | ๐ก Startup Idea Generator | ๐ Text Improver |
| ๐ง Psychologist | ๐ Elon Musk | ๐ Motivator |
| ๐ฐ Money Maker | ๐ SQL Assistant | ๐งณ Travel Guide |
| ๐ฅ Rick Sanchez | ๐งฎ Accountant | ๐ฌ Movie Expert |
Create your own by editing [`config/chat_modes.yml`](config/chat_modes.yml).
## ๐ Quick start
**1.** Get an [OpenAI API key](https://openai.com/api/).
**2.** *(optional)* Get an [OpenRouter API key](https://openrouter.ai/keys) to use **Claude** and **GPT-5.5**.
**3.** Get a Telegram bot token from [@BotFather](https://t.me/BotFather).
**4.** Fill in your tokens and rename the config files:
```bash
mv config/config.example.yml config/config.yml
mv config/config.example.env config/config.env
# then edit config/config.yml โ set telegram_token, openai_api_key (and openrouter_api_key for Claude/GPT-5.5)
```
**5.** ๐ฅ Run it:
```bash
docker-compose --env-file config/config.env up --build
```
That's it โ message your bot on Telegram.
## โ๏ธ Configuration
Main options in `config/config.yml`:
| Option | Description |
|---|---|
| `telegram_token` | Bot token from [@BotFather](https://t.me/BotFather) |
| `openai_api_key` | Your OpenAI API key |
| `openai_api_base` | Custom base URL (e.g. [LocalAI](https://github.com/go-skynet/LocalAI)); leave `null` for default |
| `openrouter_api_key` | Needed only for `provider: openrouter` models (Claude, GPT-5.5) |
| `allowed_telegram_usernames` | Whitelist of users/IDs; empty = open to everyone |
| `new_dialog_timeout` | Seconds before a new dialog starts automatically |
| `image_size` | `gpt-image-1` output size (`1024x1024`, `1536x1024`, `1024x1536`, `auto`) |
| `enable_message_streaming` | Stream answers word-by-word |
Per-model pricing and capabilities live in [`config/models.yml`](config/models.yml).
## ๐ฌ Bot commands
| Command | Description |
|---|---|
| `/new` | Start a new dialog |
| `/mode` | Select a chat mode |
| `/retry` | Regenerate the last answer |
| `/settings` | Choose model and settings |
| `/balance` | Show $ spent on the API |
| `/help` | Show help |
## ๐๏ธ Project structure
```
bot/
bot.py # Telegram handlers, streaming, commands
openai_utils.py # model dispatch (OpenAI + OpenRouter), token counting, vision
config.py # loads config.yml / models.yml / chat_modes.yml
database.py # MongoDB storage for users & dialogs
config/
config.yml # your tokens & settings
models.yml # model catalog, pricing, capabilities
chat_modes.yml # chat-mode prompts
```
## ๐ ๏ธ Tech stack
[python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) 20.x ยท [OpenAI Python SDK](https://github.com/openai/openai-python) 1.x ยท MongoDB ยท Docker ยท Python 3.12
## ๐ฐ Changelog highlights
- **Jun 2026** โ Switched image generation to **gpt-image-1**, refreshed the model menu and pricing.
- **Mar 2026** โ Added [OpenRouter](https://openrouter.ai/) support โ **Claude** (Opus / Sonnet / Haiku) and **GPT-5.5**.
- **Feb 2026** โ Migrated to the OpenAI Python 1.x SDK; Docker now runs on Python 3.12.
- **2025** โ Config-driven model catalog: add or swap models without touching code.
See the full history in [CHANGELOG.md](CHANGELOG.md).
## โค๏ธ Top donations
You can be on this list:
1. [LilRocco](https://t.me/LilRocco) โ **$11000** (!!!)
2. [Mr V](https://t.me/mr_v_v_v) โ **$250**
3. [unexpectedsunday](https://t.me/unexpectedsunday) โ **$150**
## ๐ License
[MIT](LICENSE) โ do whatever you want, just keep the notice.