Вчера Anthropic решил, что OpenClaw больше не может подключаться к Claude Code через Telegram. Мой рабочий сетап, которым я пользовался каждый день, просто перестал работать. Можно было расстроиться (что я и сделал вначале), но потом таки сел и написал замену.
Называется TeleClaude. Опенсорс, MIT-лицензия, self-hosted, работает на вашей машине, использует вашу подписку Claude. Никаких промежуточных сервисов и дополнительных оплат.
Репозиторий: github.com/devladpopov/teleclaude
Контекст: зачем вообще Claude Code в Telegram
Я управляю несколькими проектами одновременно. Для каждого нужен свой контекст: файлы, история решений, зависимости, инфраструктура. Claude Code умеет работать с файловой системой напрямую, но переключаться между проектами в терминале неудобно.
Решение, которое я использовал последние несколько месяцев: Telegram-супергруппа с топиками (один топик на проект). Пишешь в топик “Бэкенд”, Claude отвечает с полным доступом к файлам этого проекта. Пишешь в “Лендинг” — работает с лендингом. Пишешь в “DevOps” — поднимает контейнеры и правит конфиги. Всё через один чат, без переключения окон.
Telegram-супергруппа (режим форума) │ ├── Топик "Backend API" → Claude Code → ~/Projects/backend-api/ ├── Топик "Лендинг" → Claude Code → ~/Projects/landing/ ├── Топик "DevOps" → Claude Code → ~/Projects/devops/ └── Топик "Новая фича" → автоматически создает директорию проекта
Раньше это работало через OpenClaw, теперь Anthropic закрыл ему доступ. TeleClaude делает то же самое, но локально.
Архитектура
TeleClaude — это TypeScript-приложение на Bun, которое слушает Telegram Bot API через Grammy и маршрутизирует сообщения из топиков в изолированные процессы Claude Code CLI.
┌──────────────────┐ │ Telegram Bot API │ └────────┬─────────┘ │ ┌────────▼─────────────────────────┐ │ Router (grammy) │ │ ├── Маршрутизация по топикам │ │ ├── Обработка команд │ │ ├── Инъекция контекста памяти │ │ ├── Компрессия контекста │ │ ├── Менеджер памяти (дедуп) │ │ ├── Фабрика проектов (шаблоны) │ │ └── Whisper-клиент (опц.) │ └────────┬─────────────────────────┘ │ ┌────────▼─────────────────────────┐ │ Менеджер процессов │ │ ├── Спавн процесса на сообщение │ │ ├── Передача через stdin │ │ ├── Непрерывность сессий │ │ ├── TTL и очистка │ │ └── Лимиты параллелизма │ └────────┬─────────────────────────┘ │ ┌────────▼─────────────────────────┐ │ Claude Code CLI │ │ Один процесс на топик │ │ Изолированная рабочая директория │ │ Полный доступ к файлам │ └──────────────────────────────────┘
Ключевой момент: TeleClaude не использует Anthropic API напрямую. Он запускает процессы Claude Code CLI, которые авторизованы через OAuth — точно так же, как вы используете Claude Code в терминале. Если вы залогинены в Claude Code — TeleClaude просто работает. Подписка Max, Pro или Team — без разницы, дополнительных расходов нет.
Система памяти
Самое интересное в проекте — трёхуровневая файловая память. Каждый топик-проект получает такую структуру:
project/ ├── SOUL.md # Личность бота: стиль общения, правила, ограничения ├── main-memory.md # Общий контекст всех проектов (симлинк на единый файл) ├── topic-memory.md # Память конкретного топика (обновляется Claude автоматически) ├── CLAUDE.md # Инструкции проекта для Claude Code └── memory/ ├── people/ # Люди и контакты ├── services/ # Документация инфраструктуры ├── shared/ # Кросс-проектные данные└── projects/ # Контекст конкретных проектов
SOUL.md задаёт личность. Язык общения, тон, правила форматирования, принципы принятия решений. Этот файл один на всех — бот ведёт себя одинаково в любом топике.
main-memory.md — общая база знаний. Индекс проектов, контакты, ссылки на ресурсы, серверы, ключи. Это симлинк: один файл доступен из каждого проекта. Когда Claude узнаёт что-то важное в одном топике, это становится доступно во всех остальных.
topic-memory.md — память конкретного проекта. Решения, архитектурные выборы, статус задач, хронология. Claude обновляет этот файл сам по мере работы. При сбросе сессии или перезапуске весь контекст сохраняется.
На практике это означает следующее: вы можете закрыть ноутбук, уехать в отпуск, вернуться через неделю, написать в топик “где мы остановились?” — и получить осмысленный ответ с полным контекстом.
Автоматическое создание проектов
Когда кто-то создаёт новый топик в супергруппе, бот подхватывает его автоматически: создаёт директорию проекта из шаблона, линкует SOUL.md и main-memory.md, готовит topic-memory.md. Следующее сообщение в этот топик уже обрабатывается Claude Code с полным контекстом.
Шаблоны лежат в templates/ и настраиваются: можно определить стартовую структуру, инструкции по умолчанию, начальный контент памяти.
Компрессия контекста
Claude Code имеет ограничение на размер контекста. При длинных диалогах контекст переполняется. TeleClaude решает это автоматической компрессией: когда контекст приближается к лимиту, бот сохраняет ключевые решения и факты в файлы памяти, а затем сбрасывает сессию. Новая сессия стартует с полным контекстом из файлов.
Компрессию можно вызвать и вручную командой /compact.
Полный список возможностей
Функция | Описание |
|---|---|
Маршрутизация по топикам | Каждый топик = изолированный процесс Claude Code со своей рабочей директорией |
Постоянная память | Три уровня: личность + общая база + по проекту |
Автосоздание проектов | Новые топики автоматически получают директорию из шаблонов |
Голосовые сообщения | Транскрипция через локальный Whisper ASR |
Стриминг ответов | Индикатор “печатает” и обновление сообщения по мере генерации |
Переключение моделей | Opus, Sonnet, Haiku или локальные модели через Claude Code |
Непрерывность сессий | Флаг |
Управление процессами | Настраиваемый TTL, лимиты параллельных процессов, очистка простаивающих |
Дедупликация памяти | Периодическая кросс-файловая очистка дублирующейся информации |
Установка и запуск
Требования:
Bun 1.0+
Claude Code CLI (установлен и авторизован через OAuth)
Любая подписка Claude (Max, Pro, Team)
Telegram-бот от @BotFather
Telegram-супергруппа с включенными топиками
git clone https://github.com/devladpopov/teleclaude.git cd teleclaude bun install
Настройка:
cp .env.example .env cp config/settings.example.json config/settings.json cp config/topics.example.json config/topics.json cp templates/SOUL.example.md templates/SOUL.md cp templates/main-memory.example.md templates/main-memory.md
В .env прописываете токен Telegram-бота. В settings.json — свой Telegram user ID и параметры процессов:
{ "telegram": { "allowedUsers": [123456789] }, "processes": { "ttlMinutes": 30, "maxConcurrent": 5, "claudePath": "claude" }, "compaction": { "enabled": true }, "memory": { "enabled": true, "deduplication": true }, "whisper": { "enabled": false } }
Запуск:
bun run start
Добавляете бота в супергруппу, даёте права администратора. Пишете в любой топик. Работает.
Команды бота
Команда | Описание |
|---|---|
| Список всех команд |
| Активные процессы, TTL, статус функций |
| Таймаут простоя (1–1440 минут) |
| Переименовать топик (обновляет маппинг проекта) |
| Сброс сессии с сохраненной памятью |
| Остановить процесс Claude Code текущего топика |
| Статистика файлов памяти и текущей сессии |
Сравнение с OpenClaw
TeleClaude | OpenClaw | |
|---|---|---|
Хостинг | Self-hosted (ваша машина) | Облачный сервис |
AI-бэкенд | Claude Code CLI (полный доступ к файлам) | Через API |
Авторизация | OAuth (ваша подписка) | Управляемая |
Стоимость | Бесплатно с любой подпиской Claude | Отдельная подписка |
Модели | Opus / Sonnet / Haiku + локальные | Зависит от провайдера |
Память | Файловая, постоянная, кросс-проектная | Встроенная |
Кастомизация | Полный контроль | Ограниченная |
Что поменялось для меня
Ничего — и это самое прекрасное в текущем сетапе! Та же самая супергруппа, те же топики, те же проекты. Раньше в группе сидел бот, который ходил через OpenClaw к Claude Code. Теперь сидит новый бот, который ходит к Claude Code напрямую. Я написал миграцию, чтобы новый бот подхватил всю историю и контексты старого. Единственное, что раньше для генерации изображений я использовал подписку Gemini и OpenClaw автоматически на нее переключался в некоторых сценариях. Мое решение пока так не умеет, однако умеет автоматически переключаться на локальный Whisper, например, для распознавания голосовых в чате.
Репозиторий: github.com/devladpopov/teleclaude. Есть README на русском, баги и фичреквесты — через Issues.
PS: подписывайтесь на мой телеграм-канал попов в ии, там рассказываю про реальные кейсы использования нейронок в бизнесе.
