AI Vibe Craft
← Назад к AI Vibe News

Редакция 17 апреля 2026 г.

Разборы

«Написал localhost с поезда»: как CliGate связывает телефон, чат и Claude Code с Codex

«Написал localhost с поезда»: как CliGate связывает телефон, чат и Claude Code с Codex. Материал на DEV Community от 17 апреля 2026 года разворачивает сюжет, в котором разработчик в дороге получает в Slack сигнал о сломанной prod-сборке, не открывает ноутбук и не лезет в SSH с телефона, а пишет Telegram-бот

Материал на DEV Community от 17 апреля 2026 года разворачивает сюжет, в котором разработчик в дороге получает в Slack сигнал о сломанной prod-сборке, не открывает ноутбук и не лезет в SSH с телефона, а пишет Telegram-боту, подключённому к localhost на домашней машине. В посте приведён пример того, что он написал боту (дословно из оригинала):

launch claude code in ~/projects/api-server, fix the failing build

По словам автора, к моменту прихода домой исправление уже было закоммичено. Рассказ держится на связке AI coding-инструментов в headless-режиме, оркестрации процессов и мобильного канала управления — на практике «агент у машины, пульт в руке», а не на абстрактном туториале по синтаксису.

С поезда на машину: мессенджер, localhost и coding-агенты

Автор подчёркивает, что сценарий ломает привычную картину «как localhost обычно должен работать», но подаёт его как живой опыт: алерт из Slack, закрытый ноутбук, отказ от SSH с телефона в пользу Telegram как интерфейса к домашней среде. Отсюда — мост к Claude Code и Codex как к CLI-инструментам, которые должны сделать работу на стороне машины, пока человек в пути.

CliGate между API и процессами: proxy, GitHub и Agent Runtime

В посте для CliGate приведена ссылка на репозиторий https://github.com/codeking-ai/cligate. Ранее продукт описан как «просто» proxy между AI coding tools и их API, с функциями routing, account pooling и key management — формулировки и термины даны так, как их формулирует автор.

Новый слой — Agent Runtime: из чата CliGate, по описанию, можно порождать (spawn) Claude Code или Codex как реальные фоновые процессы. Подчёркивается, что это не симуляция, не обёртка вокруг одного вызова API и не «те же CLI в другом виде» — речь о фактических CLI-инструментах, работающих headless, с потоком структурированных событий обратно в браузер.

Потоки событий, headless-режим и одобрение правок

Для Codex в посте приведён пример команды:

codex exec --experimental-json --model gpt-5 "fix the failing test"

Автор пишет, что CliGate запускает это как child process, читает поток структурированных событий в построчном JSON-формате и в чате показывает типы событий (в перечислении названы, среди прочего, agent_message, command_execution, file_change, todo_list, reasoning) в реальном времени — в посте этот поток описан как вывод CLI Codex для последующего разбора.

Для Claude Code в блоке кода указано:

claude --print --output-format stream-json --input-format stream-json

По описанию, headless mode даёт structured stdin/stdout protocol; CliGate reads, bridges и surfaces это в чат.

Отдельно описан permission bridging: запрос на правку файла (в примере — server.js) попадает в чат с кнопками Approve / Deny; приведена схема статусов сессии starting → running → waiting_approval → running → completed.

Channel Gateway: Telegram, Feishu и телефон как «пульт» к агентам

Раздел с подзаголовком «Layer 2: Channel Gateway — Your Phone Becomes the Remote Control» вводит шлюз между внешними мессенджерами и Agent Runtime. Указано, что «Currently supported»: Telegram (polling mode) и Feishu / Lark (webhook mode).

В посте приведена блок-схема цепочки: телефон (Telegram / Feishu) → Channel GatewayAgent Runtime (Orchestrator)Codex / Claude Code (child process) → CliGate Proxy CoreUpstream AI Models.

Pairing: при первом сообщении бот выдаёт код, который нужно ввести в CliGate dashboard; после этого аккаунт Telegram считается paired and authorized. Для запросов разрешений приведён пример текста inline-кнопок в Telegram: «Claude Code wants to edit server.js» с вариантами Approve / Deny.

Зачем это автору и где он чертит границу продукта

В посте выделены три «проблемы»: длительные задачи (пример — «20 minutes» анализа кодовой базы) с уведомлением на телефоне; permission fatigue; контекст-свитчинг (встреча, упавший билд, текст боту с задачей для codex в каталоге ~/projects/backend и указанием теста).

В блоке «What I Didn't Build» прямо сказано, что это не полный веб-клон TUI Claude Code и не полный эмулятор терминала Codex. Перечислены ровно четыре функции оркестрации: start session, monitor progress, bridge permissions/questions, resume or continue conversation; «actual coding work» остаётся за Codex и Claude Code.

В разделе «Is This Production Ready?» дан ответ «No. It's early.»: Agent Runtime назван «solid for single-session workflows»; Channel Gateway — «handles Telegram well»; для Feishu указано «needs more testing». Среди пробелов: multi-turn на длинных окнах, нет вложений файлов из каналов, error recovery при падении сессий «could be more graceful»; для сценария «написать компьютеру, чтобы починил баг» — «It works», «I use it daily» (все формулировки — слова автора в оригинале).

Установка и правовой статус (как в оригинале)

Agent Runtime: если CliGate уже запущен — «works out of the box»; в сообщении в чате нужно mention codex или claude code.

Telegram: шаги включают создание бота через @BotFather, добавление токена в Channel settings, сообщение боту, pairing code в dashboard, отправку задач.

Feishu: custom app в консоли разработчика Feishu, App ID, App Secret, Verification Token в Channel settings, webhook URL на инстанс CliGate, тот же pairing flow.

В конце поста указано: «CliGate is open-source under AGPL-3.0» и «Not affiliated with Anthropic, OpenAI, or Google.»

Ссылка на репозиторий на GitHub и характеристика CliGate приведены так, как они даны в тексте публикации на DEV Community; отдельный разбор кода репозитория в этом материале не выполнялся.

Источники

  • DEV Community (codekingai): «"I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home"» — Dev.to — дата доступа 2026-04-17, 09:04:53 UTC (все факты основного текста о содержании поста привязаны к этой странице и этой дате доступа, если не оговорено иное).