Перейти к содержанию

Удалённый доступ через Telegram

Вы можете управлять Koda через Telegram-бота: отправлять запросы ИИ-модели, получать ответы и работать с сессиями напрямую из Telegram.

Экспериментальная функция

Данная функция находится в активной стадии тестирования и может быть нестабильной.

Требования

Для корректной работы интеграции с Telegram необходимо:

  • Окно IDE должно быть открыто и активно во время использования бота
  • Компьютер не должен переходить в спящий режим
  • У бота должен быть включён режим тем (Threads mode)
  • У бота должна быть включена настройка Disallow users to create new threads (запрет пользователям создавать новые темы)

Настройка

Шаг 1: Создание бота в Telegram

  1. Откройте Telegram и найдите пользователя BotFather (@BotFather)
  2. Отправьте команду /newbot для создания нового бота
  3. Придумайте и введите имя бота (например, My Koda Bot)
  4. Придумайте и введите уникальный username бота (должен заканчиваться на bot, например my_koda_bot)
  5. BotFather предоставит вам bot token — сохраните его, он понадобится позже

Шаг 2: Настройка бота в BotFather

  1. Откройте @BotFather в Telegram
  2. Нажмите на кнопку Menu (или введите /mybots)
  3. Выберите вашего бота → Bot Settings
  4. Включите Threads Mode (режим тем)
  5. Включите Disallow users to create new threads (запрет пользователям создавать новые темы)

Обязательные настройки

Без threads mode и запрета на создание тем пользователем функция не активируется. Koda автоматически проверяет эти настройки при валидации токена.

Шаг 3: Настройка в Koda

  1. Откройте настройки Koda (значок шестерёнки или Ctrl+,)
  2. Перейдите на вкладку Telegram Remote Access
  3. Введите ваш bot token в поле Telegram bot token
  4. Нажмите Save для сохранения токена
  5. Нажмите Validate для проверки токена
  6. Если токен валиден и режим тем включён, активируйте переключатель Enable Telegram Remote Access
  7. Нажмите Generate linking link для создания ссылки привязки
  8. Откройте сгенерированную ссылку в 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
  • Передача лидерства происходит в течение нескольких секунд
  • Все окна разделяют общее состояние сессий и тем

Одновременно — один запрос

В любой момент времени может выполняться только один удалённый запрос. Если запрос уже выполняется, новый будет отклонён с сообщением «Удалённый запрос уже выполняется».

Бот не отвечает

  1. Проверьте, что окно IDE открыто и активно
  2. Проверьте, что компьютер не в спящем режиме
  3. Убедитесь, что Telegram Remote Access включён в настройках
  4. Проверьте статус подключения в настройках расширения

Ошибка "Invalid token"

  1. Проверьте правильность введённого токена
  2. Убедитесь, что токен не был отозван через BotFather
  3. Попробуйте получить новый токен через /revoke у BotFather

Режим тем не работает

  1. Убедитесь, что режим тем включён в настройках бота (через Bot Settings)
  2. Проверьте, что бот имеет права администратора в группе (если используется в группе)

Бот не видит сессии

  • Активируйте нужную сессию в IDE перед отправкой запроса из Telegram
  • Убедитесь, что тема в Telegram связана с существующей сессией

Безопасность

  • Токен бота хранится локально в защищённом хранилище IDE
  • Привязка аккаунта осуществляется через криптографический nonce: ссылка содержит одноразовый токен, который действителен 10 минут
  • К одному боту можно привязать только одного пользователя Telegram — сообщения от других пользователей игнорируются
  • Все коммуникации происходят через серверы Telegram
  • Рекомендуется не передавать токен бота третьим лицам
  • Для отключения привязки используйте кнопку Unlink в настройках — это отвяжет Telegram-аккаунт и удалит меню команд бота

Отключение

Для отключения Telegram Remote Access:

  1. Откройте настройки Koda
  2. Перейдите на вкладку Telegram Remote Access
  3. Выключите переключатель Enable Telegram Remote Access
  4. Для удаления токена нажмите Remove Token

Ограничения

  • Функция работает только в личных чатах с ботом (не в группах)
  • Окно IDE должно оставаться открытым во время использования
  • Сессии в режиме Edit не поддерживаются из Telegram
  • Одновременно может выполняться только один удалённый запрос
  • Длина одного сообщения ограничена 4096 символами (лимит Telegram API)
  • Название темы ограничено 128 символами
  • При удалении сессии в IDE соответствующая тема в Telegram удаляется автоматически
  • Возможны задержки при медленном интернет-соединении
  • Некоторые функции редактирования файлов могут работать иначе, чем в IDE