Вчера 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: подписывайтесь на мой телеграм-канал попов в ии, там рассказываю про реальные кейсы использования нейронок в бизнесе.
Комментарии (9)

LuckyJewish
06.04.2026 16:07Господа, как его зарегистрировать теперь в принципе? Все виртуальные номера блокируются
Безумно хочу вернуть этот сервис, которым пользовался полгода

utya
06.04.2026 16:07спасибо за статью, небольшой вопрос когда вы говорите про подключение к claude code вы имееете ввиду acp? Тоесть прикрыли возможность соединения openclaw c claude через него?
И ещё вопрос, а не думали хранить шаблон в git и когда создается топис тянуть шаблон от туда?
StudyQA Автор
06.04.2026 16:07Нет, не ACP. OpenClaw подключался к Claude через свой собственный протокол (по сути, обёртка над API). Anthropic не "прикрыли" конкретно ACP, но они изменили условия, при которых OpenClaw мог использовать Claude Code как бэкенд. Мой TeleClaude работает иначе: он спавнит Claude Code CLI как локальный процесс и общается с ним через stdin/stdout. Авторизация через OAuth самого Claude Code, без сторонних прослоек.
Про шаблоны в git — да, думал об этом. Сейчас шаблон фактически зашит в роутере: при создании топика он генерирует CLAUDE.md, topic-memory.md и симлинки на общие файлы (SOUL.md, main-memory.md). В принципе шаблон в отдельном репозитории мог бы быть логичным следующим шагом, особенно если хочется давать разным топикам разные "личности" или наборы инструкций. Но пока не сделал, потому что текущая схема покрывает мои задачи, тем не менее идея правильная, доделаю :)

Jacov911
06.04.2026 16:07Наивный вопрос, но все же: не проще на машинке с опенклавой поднять локальный Клауд код? Или оно так не умеет?

StudyQA Автор
06.04.2026 16:07Да хороший вопрос, так как тут путаница в терминах.
Claude Code и так локальный. Это CLI, которая стоит на моей машине, выполняет код локально, читает файлы локально. Но сама-то модель Claude работает в облаке Anthropic, то есть к ней уходят запросы через API. Локальной модели Claude не существует, Anthropic её не раздаёт.
OpenClaw тоже работал локально. Проблема была не в том, где он крутится, а в том, как он подключался к Claude. Anthropic изменили условия, OpenClaw потерял возможность использовать Claude Code как бэкенд с авторизацией через oAuth (только через API key осталась, а это цена х5 примерно выше, чем мой текущий тариф).
TeleClaude решает ту же задачу иначе: он спавнит Claude Code CLI напрямую как дочерний процесс и общается с ним через stdin/stdout. Авторизация через OAuth самого Claude Code, без посредников. По сути, это как если бы вы открыли терминал и запустили claude руками, только вместо вас это делает бот из Telegram с доп.инструкциями (а значит не теряет контекст, работает корректно и т.п.)
ComputerPers
Очень интересное направление, https://github.com/moazbuilds/claudeclaw а чем отличается?
StudyQA Автор
Спасибо за вопрос и ссылку. Если коротко — claudeclaw тоже обёртка-демон над Claude Code, и идейно мы с ним в одной лиге. Но есть несколько важных отличий, из-за которых я и пилю своё решение:
Изоляция сессий по форумным топикам Telegram. У claudeclaw мультисессии сделаны только для Discord-тредов: каждый тред получает свою живую
--resume-сессию. В Telegram у них всё идёт в одну глобальную сессию, а номер форумного треда они просто вшивают строкой в начало промпта. Мой роутер изначально проектируется так, что каждый форумный топик = отдельная сессия Claude Code со своим cwd, своей памятью и своим session_id. У меня уже сейчас 60+ топиков, которые я хочу гонять параллельно и независимо.Память поверх
CLAUDE.md+ per-topic слои. У них всё держится на одномCLAUDE.mdв корне проекта плюсIDENTITY/SOUL/USER.md, которые подмешиваются в системный промпт. У меня в каждом топике своя параtopic-memory.md+ общаяmain-memory.md+SOUL.md, и я экспериментирую с тем, чтобы Claude сам обновлялtopic-memory.mdпо ходу разговора.Русскоязычный фокус. Их keyword-router моделей и bootstrap-онбординг написаны под английский. У меня всё изначально под русский — и интерфейс, и промпты, и whisper с
language: "ru".Это в принципе своя разработка, не форк. Делаю под собственный сетап и собственный сценарий — Telegram-форумы с десятками топиков как "параллельных рабочих столов".
При этом у claudeclaw есть несколько очень классных штук, которых у меня пока нет: heartbeat с quiet hours, cron-задачи в виде markdown-файлов с фронтматтером, авто-compact по таймауту, streaming-вывод через
--output-format stream-json, временной префикс на каждом сообщении.Я как раз сейчас сажусь дорабатывать свой код — часть этих идей возьму как образец и реализую по-своему. Следующая версия выйдет уже с полноценным
--resume <session_id>(вместо текущего--continue), с инъекцией памяти на каждом запросе и с базовым streaming — ровно то, что у claudeclaw уже работает, но в моей архитектуре с per-topic изоляцией.В общем, спасибо за наводку, репозиторий действительно интересный. Кое-что хорошее оттуда возьму в виде ТЗ для своей реализации, но писать буду по-своему, под свой стек.