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 как обычно, не доплачиваешь за каждое сообщение боту.

Что умеет:

Когда это нужно

Голосовая идея на ходу
Иду по улице, в голове хорошая мысль. Наговариваю боту голосовое — расшифрует, я уточняю «оформи в пост», получаю готовый текст.
Поставил задачу с телефона
Пишу боту «найди 5 примеров посадочных по теме X». Claude на сервере делает, я возвращаюсь к ноутбуку — результат уже лежит.
Уточнение по проекту в дороге
Еду в такси, пишу боту «прочитай spec.md и скажи что мы пропустили». Получаю ответ, копирую в заметки.
Длинный разговор без устали
Не теряешь нить, общаешься часами на одну тему. Сильно лучше чем в claude.ai, где после /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 пошагово:

  1. Зайди на beget.com → регистрация → данные приходят на почту
  2. В личном кабинете → «Облако» → «Виртуальные серверы» → «Создать VPS»
  3. Тариф 2/4/30, регион Москва или Питер, Ubuntu 24.04
  4. Отключить бэкапы (лишние деньги для старта)
  5. На почту придёт второе письмо — IP сервера, логин root, пароль. Это и есть доступ.
Не путай два пароля

«Логин/пароль от Beget» (для входа в личный кабинет) ≠ «логин/пароль от арендованного сервера» (для подключения к нему через SSH). Это разные вещи. Под одним аккаунтом Beget можно арендовать хоть десять серверов.

Шаг 1. Создать бота в Telegram

В Telegram найди @BotFather — это официальный бот Telegram, через который создают других ботов. Отправь команду /newbot. Он спросит:

  1. Имя бота — то что будет показываться в чатах. Например Bro или Мой Клод.
  2. Username — должен заканчиваться на bot. Например eto_bro_bot.

Дальше BotFather пришлёт строку вида 8680806819:AAFDrZ1Ta... — это токен бота. Сохрани его. Этот токен ≠ токены текста из статьи 08 про контекстное окно — это просто пароль для управления ботом.

[Скриншот: окно BotFather с командой /newbot и полученным токеном]

Шаг 2. Узнать свой Telegram-id

Чтобы бот отвечал только тебе, ему нужно знать твой ID в Telegram. Способы:

  1. Найди бота @userinfobot или @RawDataBot, напиши /start — он покажет твой ID.
  2. Или после первого запуска бот будет писать в логи «Blocked user 123456» — этот номер и есть твой ID.

Сохрани число — например 87654321.

Шаг 3. Получить Groq API Key

Groq — бесплатный сервис, который умеет расшифровывать голосовые в текст моделью Whisper. Нужен только если хочешь, чтобы бот понимал голосовые сообщения.

  1. Зайди на console.groq.com, зарегистрируйся (бесплатно).
  2. В меню → API Keys → Create API Key.
  3. Скопируй ключ вида gsk_....
Аналогия

Groq для голосовых — это бесплатное такси, которое забирает твой голосовой и отдаёт его в виде текста.

[Скриншот: Groq Console с созданным API key]

Шаг 4. Подключиться к VPS

В терминале на ноутбуке:

▸ SSH-подключение
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

▸ Установка Python
apt-get update -y
apt-get install -y python3.11 python3.11-venv

Python — язык программирования, на котором написан наш бот. Версия 3.11 нужна потому что бот использует современные возможности языка.

Шаг 7. Скачать файлы бота

Бот состоит из четырёх файлов:

[Сюда — 4 разворачиваемых блока с полными текстами файлов bot.py / requirements.txt / jarvis.service / deploy.sh. Минимальная версия без TTS-кода. Готовится отдельно.]

Скопируй все 4 файла на сервер в одну папку, например в /root/jarvis-src/. Можно через scp с ноутбука или через любой удобный способ.

Шаг 8. Создать .env с настройками

В /root/.env положи 3 переменные:

▸ /root/.env
TELEGRAM_BOT_TOKEN=8680806819:AAFDrZ1Ta...
ALLOWED_USER_IDS=87654321
GROQ_API_KEY=gsk_...

Что значит каждая:

Установи права на файл, чтобы его читал только ты:

▸ Защита .env
chmod 600 /root/.env

Шаг 9. Запустить установщик

▸ Установка
cd /root/jarvis-src
bash deploy.sh

Скрипт сделает за тебя:

  1. Создаст /root/jarvis-venv/ — изолированное окружение Python только для этого бота (чтобы не мешать другим программам)
  2. Установит библиотеки: python-telegram-bot и httpx
  3. Скопирует bot.py и requirements.txt в /root/jarvis/
  4. Скопирует jarvis.service в /etc/systemd/system/
  5. Включит автозапуск и стартанёт сервис

В конце увидишь «Готово».

Шаг 10. Проверка

Напиши боту в Telegram — должен ответить через несколько секунд. Первый запрос идёт долго (Claude Code на сервере прогревается), дальше быстро.

▸ Команды контроля
systemctl status jarvis        # статус — должно быть зелёное "active (running)"
journalctl -u jarvis -f        # живые логи: видишь свои сообщения и ответы
systemctl restart jarvis       # перезапуск
systemctl stop jarvis          # остановить
[Скриншот: бот в Telegram отвечает на текст и расшифровывает голосовое]

Грабли

Бот молчит после перезагрузки сервера

systemctl status jarvis. Если красный — смотри логи: journalctl -u jarvis -n 50.

Токен не принимается (401 Unauthorized)

Скопируй из BotFather заново — буква O и цифра 0 в шрифте Telegram легко путаются.

Голосовые приходят, но бот не отвечает

GROQ_API_KEY в /root/.env пустой или неверный. Проверь.

claude --print ругается на авторизацию

Сессия 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 про архитектуру агента-продукта.