Вайбкодинг с Claude: как создать Telegram-бота на Python и aiogram
Почему Telegram-бот — хороший первый проект для вайбкодинга
Telegram-бот — один из лучших первых проектов для вайбкодинга с Claude. У него короткий пользовательский путь, понятный результат и быстрый запуск: пользователь пишет боту, бот отвечает, сохраняет данные, отправляет уведомления или выдаёт услугу.
Это не абстрактный "hello world". Через бота можно проверить реальную продуктовую гипотезу: - консультационный помощник - бот для заявок - VPN или подписочный сервис - генератор текстов - бот для записи клиентов - бот для внутренней команды - мини-CRM в Telegram
Главное преимущество: не нужно сразу делать сайт, личный кабинет и сложный интерфейс. Telegram уже даёт оболочку, а Claude помогает собрать логику.
Что мы будем собирать
В этой статье разберём процесс создания Telegram-бота через Claude в формате вайбкодинга: не "скопируйте идеальный код", а как реально вести диалог, получать структуру проекта, чинить ошибки и довести бота до запуска.
Стек:
- Python 3
- aiogram 3
- SQLite
- python-dotenv
- logging
- .env для токена
- простая структура файлов
- recovery mode: как чинить ошибки без переписывания всего проекта
Что нужно до старта
Минимум: - Telegram-аккаунт - бот, созданный через BotFather - токен бота - Python 3.11+ - доступ к Claude - редактор кода: Cursor или VS Code
BotFather нужен только для создания бота и получения токена. Токен нельзя вставлять в код. Его нужно хранить в .env.
Первый промпт для Claude
Плохой промпт:
Напиши Telegram-бота.
Хороший промпт:
Хочу создать Telegram-бота на Python. Стек: aiogram 3, SQLite, python-dotenv, logging. Токен хранится в `.env`. Бот должен принимать команду `/start`, показывать меню, сохранять пользователя в базу, принимать текстовую заявку и отправлять её админу. Сначала предложи структуру проекта и объясни, какие файлы нужны. Код пока не пиши.
Почему так лучше: - Claude понимает стек - не кладёт всё в один файл - сначала думает архитектурой - не начинает писать хаотичный код - учитывает базу, токен и логирование
Хорошая структура проекта
Для первого бота достаточно такой структуры:
telegram_bot/
bot.py
config.py
database.py
handlers.py
keyboards.py
requirements.txt
.env.example
README.mdЧто делает каждый файл:
| Файл | Зачем нужен |
|---|---|
| `bot.py` | точка запуска бота |
| `config.py` | загрузка токена и настроек |
| `database.py` | работа с SQLite |
| `handlers.py` | команды и сообщения пользователя |
| `keyboards.py` | кнопки и меню |
| `requirements.txt` | зависимости |
| `.env.example` | пример переменных окружения |
| `README.md` | инструкция по запуску |
Это уже сильнее, чем один огромный файл, который сложно поддерживать.
Промпт на генерацию основы
Когда структура понятна, можно просить код:
Теперь напиши минимальную рабочую версию проекта по этой структуре. Важно: не усложняй. Нужны `/start`, сохранение пользователя в SQLite, кнопка "Оставить заявку", приём текста заявки и отправка админу. Все файлы дай отдельно. Объясни, куда каждый файл положить.
Claude должен выдать отдельные файлы. Если он начинает писать всё одним блоком, остановите:
Не объединяй всё в один файл. Раздели код по структуре проекта и объясни, что куда положить.
Пример `.env.example`
BOT_TOKEN=your_telegram_bot_token
ADMIN_ID=123456789Важно: настоящий .env не коммитим в git. В репозиторий можно положить только .env.example.
Пример зависимостей
aiogram==3.*
python-dotenv==1.*Если Claude предлагает старый синтаксис aiogram 2, нужно сразу поправить:
Используй только aiogram 3. Не используй executor из aiogram 2.
Как вести разработку дальше
После первой версии не просите "добавь всё". Добавляйте по одному сценарию:
- кнопка "Оставить заявку"
- запись заявки в базу
- отправка админу
- команда /help
- inline-кнопки
- статус заявки
- выгрузка заявок
- оплата
Промпт:
Добавь сценарий "Оставить заявку". Не переписывай весь проект. Покажи только изменения: какой файл открыть, что добавить и после какой строки.
Эта фраза критически важна. Без неё Claude может переписать весь проект и сломать рабочие части.
Recovery Mode: как чинить ошибки через Claude
В реальной разработке всё ломается. Нормальный процесс такой: 1. Запускаете бота. 2. Получаете ошибку. 3. Копируете traceback. 4. Отправляете Claude. 5. Просите минимальный фикс.
Промпт:
Вот ошибка из терминала. Не переписывай весь код. Объясни причину простыми словами и дай минимальное исправление: какой файл открыть, что заменить, что добавить. Я новичок.
Так Claude работает точнее. Он перестаёт "улучшать архитектуру" и чинит конкретную проблему.
Частые ошибки aiogram 3
| Ошибка | Причина | Что делать |
|---|---|---|
| импорт из aiogram 2 | Claude взял старый пример | явно попросить aiogram 3 |
| бот не видит `.env` | файл лежит не там | проверить путь и `load_dotenv()` |
| сообщения не доходят админу | неверный `ADMIN_ID` | получить id через userinfobot |
| база не создаётся | нет init-функции | вызвать создание таблиц при старте |
| бот падает после ошибки | нет try/except и логов | добавить logging и обработку исключений |
Деплой на сервер
Для первой версии можно запустить бота на VPS.
Минимальный порядок:
1. Скопировать проект на сервер.
2. Создать .env.
3. Установить зависимости.
4. Запустить бота.
5. Проверить логи.
6. Настроить постоянный запуск через systemd или pm2.
Промпт для Claude:
Дай инструкцию деплоя Telegram-бота на Ubuntu VPS. Проект на Python aiogram 3. Нужны venv, установка зависимостей, `.env`, systemd service, команды проверки логов.
Claude обычно хорошо даёт базовую инструкцию, но пути и права доступа всё равно нужно проверять на конкретном сервере.
Что добавить, чтобы бот стал продуктом
Рабочий бот — ещё не продукт. Чтобы он начал приносить пользу, нужны: - понятный сценарий - нормальные кнопки - обработка ошибок - сохранение данных - уведомления админу - логирование - инструкция запуска - понятное предложение для пользователя
Если бот решает денежную задачу, следующий шаг — оплата, тарифы, лимиты и аналитика.
Где Claude сильнее, чем обычный туториал
Обычный туториал показывает один идеальный путь. Claude помогает адаптировать бота под вашу задачу: - поменять сценарий - добавить поля - подключить другую базу - сделать админку - встроить AI-ответы - подготовить README - объяснить ошибку новичку
Но это работает только если вы контролируете процесс.
Что нельзя отдавать Claude без контроля
Не доверяйте модели вслепую: - платежи - персональные данные - безопасность токенов - права админа - массовые рассылки - обработку ошибок в продакшене
Claude ускоряет разработку, но ответственность остаётся на владельце проекта.
FAQ
Можно ли создать Telegram-бота с Claude без опыта кода?
Да, если бот простой и вы работаете маленькими шагами. Но нужно понимать, что такое токен, .env, база данных и запуск на сервере.
Что лучше для Telegram-бота: aiogram или python-telegram-bot?
Оба варианта рабочие. Для современных проектов на Python часто выбирают aiogram 3, но важно не название библиотеки, а стабильная структура и понятная логика.
Можно ли сделать бота за один вечер?
Минимальную версию — да. Продуктовую версию с оплатой, логами, обработкой ошибок и деплоем лучше планировать на несколько дней.
Почему Claude иногда даёт нерабочий код?
Потому что библиотеки обновляются, а модель может смешивать старые и новые примеры. Поэтому нужно просить конкретную версию и проверять ошибки.
Как сделать бота коммерческим?
Добавить платёжный сценарий, тарифы, лимиты, поддержку, аналитику и понятную ценность для пользователя. Сам бот — это только интерфейс к продукту.
Вывод
Чтобы переиграть обычные статьи про "Claude и вайбкодинг", нужно показывать не хайп, а процесс: структура, промпты, ошибки, recovery mode и деплой. Telegram-бот идеально подходит для этого, потому что даёт быстрый путь от идеи до работающего результата.
Если у вас есть идея бота, начните с первого промпта: опишите аудиторию, сценарий, стек и попросите Claude сначала спроектировать структуру, а не писать код.