Claude Code в Telegram: личный ИИ-ассистент
Я уехал из дома, на ноутбуке Claude уже не запущен, но в кармане — телефон, на котором я могу написать своему боту в Telegram, и он ответит как обычный Claude. Через ту же подписку. Записал голосовое — он расшифрует, ответит. Этот туториал — как такого личного бота поднять.
Это самый простой из трёх практических уровней работы с Telegram. Здесь Claude Code = твой личный ассистент в кармане. Уровень 2 — свой Telegram-агент-копирайтер под конкретную задачу, см. статью 13b. Уровень 3 — бот для клиентов, его архитектура разобрана в статье 13 про агента в Telegram.
Если у тебя уже стоит Claude Code — можешь просто открыть его и сказать: «сделай мне Telegram-бота поверх тебя самого, я хочу писать ему в Telegram а ты будешь отвечать». Claude Code разберётся и поведёт по шагам. Это вообще честный путь вайбкодинга — описывать задачу, а не следовать инструкции.
Только две оговорки. Первая: иногда Claude уведёт не туда — например, поставит сложный фреймворк там, где хватило бы 50 строк кода, или выберет устаревший подход. Вторая: даже если уведёт правильно — путь будет зависеть от настроения Claude в этот раз, и в следующий раз будет уже другой.
Я ниже расписываю проверенную инструкцию — то что у меня реально работает. Если хочешь без сюрпризов — иди по ней. Если хочешь экспериментировать — кидай Claude задачу и посмотри что выйдет.
Что соберём
Личный Telegram-бот, в который ты пишешь как обычному собеседнику. Бот — это тонкая Python-обёртка на сервере, которая принимает твоё сообщение и под капотом дёргает claude --print, то есть запускает Claude Code на сервере с твоей подпиской Max или Pro. Что важно: используется именно подписка, а не отдельный API-ключ. Платишь за Claude как обычно, не доплачиваешь за каждое сообщение боту.
Что умеет:
- Текстовое сообщение → Claude → ответ текстом
- Голосовое сообщение от тебя → Groq Whisper расшифровывает → Claude отвечает → ответ текстом
- Whitelist по Telegram-id — никто чужой написать не может
- Работает 24/7 на VPS
Когда это нужно
/clear начинаешь заново.Это не агент-продукт для клиентов. Бот настроен на одного человека — тебя. Whitelist по Telegram-id жёсткий: чужой пишет → бот игнорирует. Если хочешь делать бот для бизнеса — это уровень 3, см. статью 13.
Что нужно заранее
| Что | Зачем | Стоимость |
|---|---|---|
| Подписка Claude Pro или Max | Чтобы Claude Code работал на сервере по подписке, без отдельного API-ключа | $20-200/мес |
| VPS с Ubuntu | Серверчик, на котором живёт бот | от 27 ₽/день |
| Аккаунт в Telegram | Куда писать боту | бесплатно |
| Аккаунт на Groq | Для расшифровки голосовых | бесплатно |
Что под капотом
Простыми словами: на сервере живёт Python-программа (~330 строк), которая ждёт сообщений в Telegram. Получила — отдаёт текст в claude --print "сообщение". Это значит «запусти Claude в режиме одиночного запроса, верни результат». Claude отвечает, программа возвращает ответ обратно в Telegram.
[Я в Telegram] ──→ [Python-бот на VPS] ──→ [claude --print]
│ ↓
│ [твоя подписка Max/Pro]
↓ ↓
[ответ обратно ←────── ответ Claude]
Голосовые сообщения сначала уходят в Groq Whisper (бесплатный сервис распознавания речи), оттуда возвращается текст, дальше — как обычное текстовое сообщение. Бот отвечает текстом.
Про VPS — короткое объяснение
VPS — это арендованный «компьютер в интернете», на котором ты ставишь программы и они работают всегда. Для этого туториала подойдёт любой провайдер: Beget, TimeWeb, Hetzner, DigitalOcean. Если ты в России — бери русский (Beget или TimeWeb), если нет — любой удобный.
Минимальный тариф: 2 ядра / 4 ГБ RAM / 30 ГБ диск. На Beget это ~27 ₽/день (~900 ₽/мес). ОС — Ubuntu любой свежей версии.
Как зарегистрироваться и арендовать сервер на Beget пошагово:
- Зайди на beget.com → регистрация → данные приходят на почту
- В личном кабинете → «Облако» → «Виртуальные серверы» → «Создать VPS»
- Тариф 2/4/30, регион Москва или Питер, Ubuntu 24.04
- Отключить бэкапы (лишние деньги для старта)
- На почту придёт второе письмо — IP сервера, логин
root, пароль. Это и есть доступ.
«Логин/пароль от Beget» (для входа в личный кабинет) ≠ «логин/пароль от арендованного сервера» (для подключения к нему через SSH). Это разные вещи. Под одним аккаунтом Beget можно арендовать хоть десять серверов.
Шаг 1. Создать бота в Telegram
В Telegram найди @BotFather — это официальный бот Telegram, через который создают других ботов. Отправь команду /newbot. Он спросит:
- Имя бота — то что будет показываться в чатах. Например Bro или Мой Клод.
- Username — должен заканчиваться на
bot. Напримерeto_bro_bot.
Дальше BotFather пришлёт строку вида 8680806819:AAFDrZ1Ta... — это токен бота. Сохрани его. Этот токен ≠ токены текста из статьи 08 про контекстное окно — это просто пароль для управления ботом.
Шаг 2. Узнать свой Telegram-id
Чтобы бот отвечал только тебе, ему нужно знать твой ID в Telegram. Способы:
- Найди бота
@userinfobotили@RawDataBot, напиши/start— он покажет твой ID. - Или после первого запуска бот будет писать в логи «Blocked user 123456» — этот номер и есть твой ID.
Сохрани число — например 87654321.
Шаг 3. Получить Groq API Key
Groq — бесплатный сервис, который умеет расшифровывать голосовые в текст моделью Whisper. Нужен только если хочешь, чтобы бот понимал голосовые сообщения.
- Зайди на console.groq.com, зарегистрируйся (бесплатно).
- В меню → API Keys → Create API Key.
- Скопируй ключ вида
gsk_....
Groq для голосовых — это бесплатное такси, которое забирает твой голосовой и отдаёт его в виде текста.
Шаг 4. Подключиться к VPS
В терминале на ноутбуке:
ssh root@IP_СЕРВЕРА
Введи пароль (который пришёл в письме при создании сервера). Если всё правильно — увидишь строку root@my-vps:~#. Это значит ты на сервере.
Если используешь Claude Code локально — можешь делать всё это через него. Скажи: «подключись к серверу [IP] с паролем [пароль], дальше я буду говорить тебе что делать на сервере». Claude все SSH-команды выполнит сам.
Шаг 5. Установить Claude Code на сервер и войти
Если Claude Code ещё не стоит на сервере — установи по официальной инструкции с claude.ai/code (или через curl -fsSL https://claude.ai/install.sh | bash).
Проверь:
claude --version
Войди в свой аккаунт:
claude
Откроется ссылка для авторизации в браузере. Открой её, войди под аккаунтом с подпиской Max/Pro. После этого Claude Code на сервере подключён к твоей подписке — это значит, когда программа будет дёргать claude --print, ответы будут идти от твоего аккаунта.
Шаг 6. Поставить Python 3.11
apt-get update -y apt-get install -y python3.11 python3.11-venv
Python — язык программирования, на котором написан наш бот. Версия 3.11 нужна потому что бот использует современные возможности языка.
Шаг 7. Скачать файлы бота
Бот состоит из четырёх файлов:
bot.py— сама программа (Python-обёртка надclaude --print)requirements.txt— список Python-библиотек (всего две:python-telegram-botиhttpx)jarvis.service— настройка для systemd (чтобы бот сам перезапускался)deploy.sh— скрипт установки в одну команду
Скопируй все 4 файла на сервер в одну папку, например в /root/jarvis-src/. Можно через scp с ноутбука или через любой удобный способ.
Шаг 8. Создать .env с настройками
В /root/.env положи 3 переменные:
TELEGRAM_BOT_TOKEN=8680806819:AAFDrZ1Ta... ALLOWED_USER_IDS=87654321 GROQ_API_KEY=gsk_...
Что значит каждая:
TELEGRAM_BOT_TOKEN— токен из шага 1ALLOWED_USER_IDS— твой Telegram-id из шага 2 (можно перечислить несколько через запятую, если делаешь для семьи)GROQ_API_KEY— ключ из шага 3 (если не нужны голосовые входящие — можно оставить пустым, бот будет принимать только текст)
Установи права на файл, чтобы его читал только ты:
chmod 600 /root/.env
Шаг 9. Запустить установщик
cd /root/jarvis-src bash deploy.sh
Скрипт сделает за тебя:
- Создаст
/root/jarvis-venv/— изолированное окружение Python только для этого бота (чтобы не мешать другим программам) - Установит библиотеки:
python-telegram-botиhttpx - Скопирует
bot.pyиrequirements.txtв/root/jarvis/ - Скопирует
jarvis.serviceв/etc/systemd/system/ - Включит автозапуск и стартанёт сервис
В конце увидишь «Готово».
Шаг 10. Проверка
Напиши боту в Telegram — должен ответить через несколько секунд. Первый запрос идёт долго (Claude Code на сервере прогревается), дальше быстро.
systemctl status jarvis # статус — должно быть зелёное "active (running)" journalctl -u jarvis -f # живые логи: видишь свои сообщения и ответы systemctl restart jarvis # перезапуск systemctl stop jarvis # остановить
Грабли
systemctl status jarvis. Если красный — смотри логи: journalctl -u jarvis -n 50.
Скопируй из BotFather заново — буква O и цифра 0 в шрифте Telegram легко путаются.
GROQ_API_KEY в /root/.env пустой или неверный. Проверь.
Сессия Claude Code на сервере истекла. Зайди по SSH, запусти claude, авторизуйся заново.
Добавь его Telegram-id в ALLOWED_USER_IDS через запятую: ALLOWED_USER_IDS=87654321,12345678. Перезапусти: systemctl restart jarvis.
Это уровень 1 — Claude Code как универсальный личный ассистент в Telegram. Когда хочется не просто общаться, а чтобы у бота была своя роль и заточенный под задачу промпт (агент-копирайтер в твоём стиле; агент-секретарь; агент-исследователь по теме) — это уровень 2, см. статью 13b про сборку своего Telegram-агента.
Если задача — не личный ассистент, а бот для клиентов с базой знаний и воронкой продаж, это уровень 3 — см. статью 13 про архитектуру агента-продукта.