Удалённый доступ через Telegram¶
Вы можете управлять Koda через Telegram-бота: отправлять запросы ИИ-модели, получать ответы и работать с сессиями напрямую из Telegram.
Экспериментальная функция
Данная функция находится в активной стадии тестирования и может быть нестабильной.
Требования¶
Для корректной работы интеграции с Telegram необходимо:
- Окно IDE должно быть открыто и активно во время использования бота
- Компьютер не должен переходить в спящий режим
- У бота должен быть включён режим тем (Threads mode)
- У бота должна быть включена настройка Disallow users to create new threads (запрет пользователям создавать новые темы)
Настройка¶
Шаг 1: Создание бота в Telegram¶
- Откройте Telegram и найдите пользователя BotFather (@BotFather)
- Отправьте команду
/newbotдля создания нового бота - Придумайте и введите имя бота (например,
My Koda Bot) - Придумайте и введите уникальный username бота (должен заканчиваться на
bot, напримерmy_koda_bot) - BotFather предоставит вам bot token — сохраните его, он понадобится позже
Шаг 2: Настройка бота в BotFather¶
- Откройте @BotFather в Telegram
- Нажмите на кнопку Menu (или введите
/mybots) - Выберите вашего бота → Bot Settings
- Включите Threads Mode (режим тем)
- Включите Disallow users to create new threads (запрет пользователям создавать новые темы)
Обязательные настройки
Без threads mode и запрета на создание тем пользователем функция не активируется. Koda автоматически проверяет эти настройки при валидации токена.
Шаг 3: Настройка в Koda¶
- Откройте настройки Koda (значок шестерёнки или
Ctrl+,) - Перейдите на вкладку Telegram Remote Access
- Введите ваш bot token в поле Telegram bot token
- Нажмите Save для сохранения токена
- Нажмите Validate для проверки токена
- Если токен валиден и режим тем включён, активируйте переключатель Enable Telegram Remote Access
- Нажмите Generate linking link для создания ссылки привязки
- Откройте сгенерированную ссылку в Telegram и подтвердите привязку командой
/start
Срок действия ссылки
Ссылка привязки действительна 10 минут. Если срок истёк, сгенерируйте новую.
Использование¶
Отправка запросов¶
После успешной настройки вы можете:
- Открыть бота в Telegram
- Отправить текстовое сообщение с вашим запросом
- Получить ответ от AI
Работа с темами (Topics)¶
Каждая тема (чат) в Telegram соответствует отдельной сессии в Koda:
- Команда
/newсоздаёт новую тему и новую сессию - Откройте существующую тему — продолжите работу с соответствующей сессией
- При удалении сессии в IDE соответствующая тема в Telegram также удаляется
- Название темы формируется из заголовка сессии (до 128 символов)
- Если у сессии ещё нет заголовка, названием темы станет текст первого запроса
Команды бота¶
Команды доступны в меню бота (кнопка Menu слева от поля ввода) после привязки аккаунта.
| Команда | Контекст | Описание |
|---|---|---|
/new |
Вне чата | Создать новую сессию. Можно указать заголовок: /new Рефакторинг API |
/mode |
Внутри чата | Переключить режим сессии: /mode agent, /mode plan или /mode chat |
/model |
Внутри чата | Показать список моделей или сменить модель. /model — список, /model 2 — по номеру, /model Claude Sonnet — по названию |
/commit |
Внутри чата | Закоммитить изменения. /model Исправил баг с авторизацией |
/revert |
Внутри чата | Откатить все незакоммиченные изменения (git restore + git clean) |
/delete |
Внутри чата | Удалить текущую сессию и соответствующий чат в Telegram |
/stop |
Любой | Остановить текущий запуск AI |
Команда /start
Команда /start используется только для привязки аккаунта при первом подключении.
Она не является пользовательской командой и недоступна в меню бота.
Edit-режим не поддерживается
Сессии в режиме Edit нельзя использовать из Telegram.
Если сессия находится в Edit-режиме, переключите её в Agent, Plan или Chat командой /mode.
Примеры использования в жизни¶
1. Удалённая консультация по коду в дороге¶
Вы едете в метро или ожидаете встречу, и коллега спрашивает вас по телефону о коде. Вместо того чтобы вспоминать код наизусть:
- Открываете Telegram на телефоне
- Пишете боту: «Покажи код функции авторизации из файла auth.ts»
- Бот показывает релевантный код из вашего проекта
- Пересылаете коллеге
2. Быстрый рефакторинг без ноутбука¶
Вы на прогулке, но вспомнили о неоптимальном коде:
- Отправляете боту: «Перепиши функцию parseConfig с использованием reduce»
- AI анализирует код и предлагает улучшенный вариант
- Когда вернётесь к компьютеру — код будет готов к применению в сессии
3. Множественные задачи параллельно¶
Вам нужно решить несколько разных задач одновременно, но вы хотите держать их раздельно:
- Создаёте тему «Рефакторинг API» — работаете над одним участком кода
- Создаёте тему «Добавить тесты» — параллельно работаете над тестами
- Создаёте тему «Документация» — пишете docs
- Каждая тема — отдельная сессия с своим контекстом
4. Мониторинг и код-ревью¶
После пуша в CI нужно проверить, что происходит с проектом:
- Спрашиваете бота: «Есть ли ошибки компиляции в последнем коммите?»
- AI анализирует вывод и сообщает о проблемах
- Если нужно — просмотр конкретных файлов с ошибками
5. Изучение нового кодbase¶
Начали работать над новым проектом и хотите быстро понять структуру:
- «Объясни архитектуру проекта в нескольких предложениях»
- «Где находится основная логика обработки запросов?»
- «Покажи список всех API-эндпоинтов»
6. Генерация шаблонного кода¶
Когда нужно быстро создать boilerplate:
- «Создай React-компонент Modal с пропсами isOpen, title, children»
- «Напиши TypeScript-интерфейс для пользователя с полями id, name, email, roles»
- AI генерирует код, который можно скопировать в проект
7. Поиск и исправление багов¶
Заметили странное поведение:
- Описываете проблему боту: «Функция должна возвращать массив, но возвращает null»
- AI анализирует код и предлагает исправление
- Применяете diff когда вернётесь к компьютеру
8. Работа из-за NAT / firewall¶
Находитесь в сети с ограничениями (корпоративный WiFi, метро), но нужно срочно посмотреть код:
- Telegram работает практически везде
- Через бота можно получить доступ к коду проекта
- Не нужен VPN или удалённый доступ к рабочей машине
Формат сообщений и стриминг¶
Ответы AI отображаются в Telegram в реальном времени:
- Ответ стримится прямо в чат — сообщение постепенно обновляется по мере генерации
- Markdown преобразуется в HTML: поддерживаются жирный текст, курсив, зачёркивание, списки, таблицы, цитаты и блоки кода с подсветкой языка
- Пока AI размышляет или вызывает инструменты, в чате отображается индикатор активности: «Размышляет...», «Читает file.ts», «Редактирует file.ts», «Ищет по коду: query» и т. д.
- Если ответ превышает лимит Telegram (4096 символов), он разбивается на несколько сообщений
- После завершения запроса в сообщении отображается сводка изменений: список затронутых файлов с количеством добавленных и удалённых строк
Зеркалирование IDE → Telegram¶
Запросы, отправленные из IDE, автоматически отображаются в Telegram:
- Текст запроса из IDE появляется в соответствующей теме с пометкой «Запрос из VS Code»
- Ответ AI также дублируется в Telegram в реальном времени
- Это позволяет следить за работой из Telegram, даже если запрос был отправлен с компьютера
Несколько окон IDE (Leader Election)¶
Если открыто несколько окон IDE с одной рабочей областью, только одно окно выступает в роли leader и обрабатывает сообщения от Telegram:
- Остальные окна работают в режиме follower и не опрашивают Telegram API
- Если leader-окно закрывается или перестаёт отвечать, другое окно автоматически становится leader
- Передача лидерства происходит в течение нескольких секунд
- Все окна разделяют общее состояние сессий и тем
Одновременно — один запрос
В любой момент времени может выполняться только один удалённый запрос. Если запрос уже выполняется, новый будет отклонён с сообщением «Удалённый запрос уже выполняется».
Бот не отвечает¶
- Проверьте, что окно IDE открыто и активно
- Проверьте, что компьютер не в спящем режиме
- Убедитесь, что Telegram Remote Access включён в настройках
- Проверьте статус подключения в настройках расширения
Ошибка "Invalid token"¶
- Проверьте правильность введённого токена
- Убедитесь, что токен не был отозван через BotFather
- Попробуйте получить новый токен через
/revokeу BotFather
Режим тем не работает¶
- Убедитесь, что режим тем включён в настройках бота (через Bot Settings)
- Проверьте, что бот имеет права администратора в группе (если используется в группе)
Бот не видит сессии¶
- Активируйте нужную сессию в IDE перед отправкой запроса из Telegram
- Убедитесь, что тема в Telegram связана с существующей сессией
Безопасность¶
- Токен бота хранится локально в защищённом хранилище IDE
- Привязка аккаунта осуществляется через криптографический nonce: ссылка содержит одноразовый токен, который действителен 10 минут
- К одному боту можно привязать только одного пользователя Telegram — сообщения от других пользователей игнорируются
- Все коммуникации происходят через серверы Telegram
- Рекомендуется не передавать токен бота третьим лицам
- Для отключения привязки используйте кнопку Unlink в настройках — это отвяжет Telegram-аккаунт и удалит меню команд бота
Отключение¶
Для отключения Telegram Remote Access:
- Откройте настройки Koda
- Перейдите на вкладку Telegram Remote Access
- Выключите переключатель Enable Telegram Remote Access
- Для удаления токена нажмите Remove Token
Ограничения¶
- Функция работает только в личных чатах с ботом (не в группах)
- Окно IDE должно оставаться открытым во время использования
- Сессии в режиме Edit не поддерживаются из Telegram
- Одновременно может выполняться только один удалённый запрос
- Длина одного сообщения ограничена 4096 символами (лимит Telegram API)
- Название темы ограничено 128 символами
- При удалении сессии в IDE соответствующая тема в Telegram удаляется автоматически
- Возможны задержки при медленном интернет-соединении
- Некоторые функции редактирования файлов могут работать иначе, чем в IDE