Задача простая: запустить работу в Codex на компьютере, уйти от рабочего места и продолжить обсуждение с телефона. Для этого я сделал мост между настольным приложением и Telegram. Его код опубликован открыто.
Сохранить контекст, а не завести ещё один чат
Бот позволяет выбрать один чат Codex или получать результаты из нескольких. Ответ на уведомление возвращается в соответствующее обсуждение. Можно отправить текст, изображение или голосовое сообщение: голос сначала распознаётся локально через faster-whisper.
Такой сценарий полезен, когда длительная задача уже выполняется: результат приходит в Telegram, там же можно уточнить требование или направить следующий шаг. Рабочий контекст остаётся в существующем чате.
Главная сложность — доставка
Недостаточно передать строку из одного API в другой. Нужно помнить, к какому чату относится сообщение, переживать перезапуски и отличать подтверждённую доставку от неопределённого результата. Маршруты и очередь хранятся в SQLite.
Если нельзя уверенно установить, принял ли Codex команду, мост помечает доставку для ручной проверки. Слепая повторная отправка могла бы запустить одну и ту же работу дважды. Уведомления сосредоточены на завершённых результатах и ошибках, чтобы телефон не превращался в журнал технических событий.
Границы решения
Это независимая интеграция для Windows. Компьютер и Codex должны быть включены. Мост использует внутренний протокол настольного приложения: после обновления Codex совместимость может измениться. Дополнительный серверный relay умеет сохранять входящие сообщения, но не выполняет работу вместо компьютера.
Доступ ограничен разрешёнными пользователями. Секреты настраиваются отдельно; публичный репозиторий содержит примеры конфигурации и инструкции на русском и английском.
Что здесь можно применить в других проектах
Тот же подход подходит для удалённого управления длительными задачами: импортом каталога, подготовкой документов, проверкой данных. У каждой команды есть адресат, состояние и понятный результат. ИИ становится частью рабочего процесса, которым можно управлять.