Мост для управления Windows

Мост, через который LLM-агент на Linux управляет настоящим рабочим столом Windows: читает дерево интерфейса, кликает и печатает в живой сессии. Работает и с Linux-десктопом через AT-SPI.

На macOS у агентов computer use есть из коробки: Claude на маке умеет сам смотреть экран, кликать и печатать в окнах. На Windows и Linux нативного computer use нет — агент там умеет только терминал и код. Я стал разбираться, как дать агенту на Linux управление живым рабочим столом Windows, и в итоге собрал этот мост.

Агент на Linux шлёт запросы через SSH-туннель, мост выполняет их на живом столе Windows. Реальное время.
Тот же сценарий на Linux: gedit, Chrome и терминал на изолированном столе Xvfb.

Зачем

Агенты вроде Claude Code и Codex отлично работают с кодом и терминалом, но многие задачи живут только в GUI: десктопные приложения, системные диалоги, программы без API. Готовые решения computer use обычно смотрят на экран «глазами»: скриншот → координаты → клик. Это медленно, дорого по токенам и ломается от любого сдвига. Мост даёт агенту текстовый доступ к интерфейсу.

Что умеет

Как устроено

Агент подключается по MCP или HTTP через SSH-туннель к server.py на целевой машине. Платформа выбирается автоматически: на Windows — Win32 + UI Automation, на Linux — X11/XTest + AT-SPI2. Для агента API одинаковый, ему всё равно, какая ОС на той стороне. В комплекте MCP-сервер — мост подключается к Claude Code и Codex как обычный набор инструментов.

Цифры

Один и тот же сценарий — 8 блоков, шесть приложений: Блокнот, буфер обмена, веб-приложение в WebView2, редактор реестра, Docker Desktop, перетаскивание окон. Его проходил агент по мере доработки моста:

Первая версияОжидания на сервереОжидания в пакетах
Время12:048:305:54
Баллы из 10099100100
Шагов модели915130
Вызовов inspect98~177

Главный выигрыш дал перенос ожиданий на сервер: блок «создать раздел реестра и строковый параметр» стал одним запросом из 19 шагов вместо десятка опросов.

Как проект делался

Мост собран примерно за сутки в паре LLM-агентов. Codex на Windows-машине писал и чинил Windows-часть, а Claude Code на Linux прогонял сценарии через туннель, замерял время и токены, находил баги и заводил issue с шагами воспроизведения. Codex исправлял, Claude проверял исправление на живой сборке — так прошло около десяти циклов «issue → исправление → проверка». Агенты при этом общались через тот же мост: Claude на Linux печатал задачи в окно Codex на Windows. Linux-версию Claude Code написал и проверил на изолированном столе Xvfb.

Ограничения

Личный проект, лицензия MIT. Токен моста — это управление рабочим столом: хранить как SSH-ключ и передавать только защищённым каналом.

English