Вчера 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

Непрерывность сессий

Флаг --continue сохраняет контекст между сообщениями

Управление процессами

Настраиваемый 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

Добавляете бота в супергруппу, даёте права администратора. Пишете в любой топик. Работает.

Команды бота

Команда

Описание

/help

Список всех команд

/status

Активные процессы, TTL, статус функций

/ttl N

Таймаут простоя (1–1440 минут)

/name <имя>

Переименовать топик (обновляет маппинг проекта)

/reset

Сброс сессии с сохраненной памятью

/kill

Остановить процесс Claude Code текущего топика

/memory

Статистика файлов памяти и текущей сессии

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

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вы интегрируете LLM в свои рабочие процессы?
0%Через облачные сервисы-интеграторы (типа OpenClaw, Zapier)0
7.69%Использую self-hosted решение (как TeleClaude в статье)1
0%Пишу свои скрипты напрямую к API (Anthropic, OpenAI)0
69.23%Использую CLI-инструменты (как Claude Code) с авторизацией через OAuth9
23.08%Пока только через веб-интерфейсы, без интеграций3
0%Свой вариант в комментариях0
Проголосовали 13 пользователей. Воздержались 3 пользователя.