Использование компьютера
VibeOS может управлять вашим рабочим столом — нажимать, печатать, прокручивать, перетаскивать — в фоновом режиме на macOS, Windows и Linux. Ваш курсор не двигается, фокус клавиатуры не меняется, а ваши виртуальные рабочие столы / Spaces не переключаются. Вы и агент работаете совместно на одной машине.
В отличие от большинства интеграций по использованию компьютера, это работает с любой моделью, поддерживающей инструменты — Claude, GPT, Gemini или открытой моделью на локальном OpenAI-совместимом endpoint'е. Никакой собственной схемы Anthropic не требуется.
Как это работает
Набор инструментов computer_use общается по протоколу MCP через stdio с
cua-driver — открытым фоновым
драйвером для использования компьютера. Каждая платформа использует соответствующий стек специальных возможностей и ввода «под капотом»:
| Платформа | Дерево специальных возможностей | Отправка ввода |
|---|---|---|
| macOS | AX (частные SkyLight SPI) | SLPSPostEventRecordTo — в рамках PID, без перемещения курсора |
| Windows | UIAutomation | SendInput + PostMessage — без перехвата фокуса |
| Linux | AT-SPI (X11 + Wayland) | XTest (X11) / virtual-keyboard (Wayland) |
Результат одинаков на всех платформах: агент может читать дерево специальных возможностей любого видимого окна И отправлять синтезированные события, не выводя его на передний план, не переключая виртуальные рабочие столы и не перемещая реальный курсор ОС.
Подробнее о базовом контракте — почему важен фоновый режим, инвариант «без переднего плана», внутреннее устройство отправки кликов — см. cua.ai/docs/concepts/the-no-foreground-contract.
Включение
Выберите любой удобный путь — оба запускают один и тот же вышестоящий установщик:
Вариант 1: выделенная команда CLI (самый прямой).
vibeos computer-use install
Эта команда загружает и запускает вышестоящий установщик cua-driver — install.sh
на macOS/Linux, install.ps1 на Windows. Используйте vibeos computer-use status для проверки установки.
Вариант 2: включите набор инструментов интерактивно.
- Запустите
vibeos tools, выберите🖱️ Computer Use (macOS/Windows/Linux). - Установка запускает вышестоящий установщик (тот же, что и в Варианте 1).
После установки, независимо от выбранного пути, предоставьте необходимые разрешения для вашей платформы:
| Платформа | Необходимые разрешения |
|---|---|
| macOS | Системные настройки → Конфиденциальность и безопасность → Специальные возможности + Запись экрана → разрешите вашему терминалу (или приложению VibeOS). vibeos computer-use doctor сообщит, какого разрешения не хватает. |
| Windows | Ничего не требуется во время установки. Если вы работаете через SSH (не RDP / консоль), вам понадобится шаблон автозапуска — см. cua.ai/docs/how-to-guides/driver/windows-ssh для прокси между Сеансом 0 и Сеансом 1+. |
| Linux | Доступный сервер отображения: DISPLAY должен быть установлен для X11, или XDG_SESSION_TYPE=wayland. Сеансы Wayland требуют моста XWayland для захвата. AT-SPI должен быть включен (по умолчанию включен в GNOME/KDE/Xfce). |
Затем запустите сеанс с включенным набором инструментов:
vibeos -t computer_use chat
или добавьте computer_use в список включенных наборов инструментов в ~/.vibeos/config.yaml.
vibeos computer-use doctor — ваша первая остановка для диагностики
vibeos computer-use doctor запускает структурированный MCP-инструмент
health_report от cua-driver и выводит матрицу проверок. Это самый
быстрый способ узнать, почему действие не работает.
$ vibeos computer-use doctor
⚠️ cua-driver 0.5.8 на darwin — неполноценно
✅ binary_version: cua-driver 0.5.8
✅ platform_supported: macOS 26.4.1 (arm64)
✅ session_active: MCP-сеанс активен.
❌ bundle_identity: У процесса нет CFBundleIdentifier.
→ Запустите бинарный файл внутри CuaDriver.app, чтобы TCC правильно предоставил атрибут.
✅ tcc_accessibility: Специальные возможности предоставлены.
✅ tcc_screen_recording: Запись экрана предоставлена.
✅ ax_capability: AX доверен и доступен.
✅ screen_capture_capability: ScreenCaptureKit доступен; 1 дисплей(ев) доступен для общего доступа.
- Код выхода 0, когда общий статус
ok— всё настроено. - Код выхода 1, когда статус
degradedилиfailed— хотя бы одна проверка не пройдена; подсказка к каждой ошибке говорит, что исправить. - Код выхода 2, когда сам бинарный файл cua-driver недоступен.
Полезные флаги:
--include CHECK— запустить только указанные проверки (повторите для нескольких)--skip CHECK— пропустить проверку (имеет приоритет над--include)--json— вывести необработанную структурированную полезную нагрузку, той же формы, что и ответ MCPtools/call health_report
Матрица проверок учитывает платформу: bundle_identity / tcc_* —
skip на Windows + Linux, потому что эти концепции неприменимы.
ax_capability проверяет AX на macOS, UIA на Windows, AT-SPI на Linux —
каждый с правильной диагностической подсказкой, когда не может получить доступ.
Курсор агента и сеансы
Когда агент действует, вы увидите тонированный наложенный курсор, скользящий
по экрану туда, куда попадает каждый клик / ввод текста / прокрутка. Реальный
курсор ОС никогда не двигается — наложение — это визуальная подсказка, которая говорит: «агент
действует здесь». Каждый запуск VibeOS объявляет собственный идентификатор сеанса
cua-driver (что-то вроде vibeos-3a7b9c14d2e8); идентичность курсора
привязана к этому сеансу, поэтому параллельные запуски / под-агенты получают
собственный курсор, не мешая друг другу.
Настройте курсор с помощью флагов CLI cua-driver или инструмента MCP
set_agent_cursor_style во время выполнения — см.
cua.ai/docs/how-to-guides/driver/personalize-cursor
для полного меню (встроенный силуэт arrow или teardrop, пользовательский
SVG / PNG / ICO через --cursor-icon, цвета градиента во время выполнения, ореол
свечения).
Углубленное изучение — пакет навыков cua-driver
VibeOS намеренно фокусирует свой навык (skills/computer-use/SKILL.md)
на словаре действий computer_use со стороны VibeOS —
единственном источнике истины, который загружает агент. Для более глубокого материала —
платформенно-специфичных деталей, семантики записи, взаимодействия со страницами
браузера — направьте свою обвязку агента на пакет навыков cua-driver,
который команда cua-driver поставляет и поддерживает напрямую:
cua-driver skills install
Эта команда создает символическую ссылку на пакет в каталоге навыков вашей обвязки агента. После ее запуска агент получает доступ к:
| Файл | Тема |
|---|---|
SKILL.md | Кроссплатформенное ядро (инвариант снимка, контракт «без переднего плана», отправка кликов, механика AX-дерева) |
MACOS.md | Особенности macOS: контракт «без переднего плана», навигация по AXMenuBar, отправка кликов SkyLight, мост Apple Events JS |
WINDOWS.md | Особенности Windows: дерево UIA, хостинг UWP / ApplicationFrameHost, изоляция Сеанса 0, шаблон автозапуска |
LINUX.md | Особенности Linux: дерево AT-SPI, X11 / Wayland, обнаружение эмулятора терминала |
RECORDING.md | Семантика записи траектории и видео |
WEB_APPS.md | Советы по взаимодействию со страницами браузера |
TESTS.md | Рабочий процесс воспроизведения по траектории |
Это платформенно-специфичные углубленные материалы, а не дубликаты навыка VibeOS —
когда агент сообщает: «на Windows мой клик попал не в тот элемент»,
он читает WINDOWS.md для контекста UIA / UWP, который
объясняет, почему так произошло и что делать иначе.
cua-driver skills status показывает, что установлено и с какими
обвязками агента это связано. Сегодня список автообнаружения охватывает Claude
Code, Codex, OpenCode, OpenClaw и Antigravity; автообнаружение
VibeOS запланировано как последующее обновление в trycua/cua — до
тех пор запустите cua-driver skills install один раз и укажите вашей обвязке
на результирующий каталог ~/.cua-driver/skills/cua-driver (или создайте
символическую ссылку на него в вашем обычном пространстве навыков).
Краткий пример
Запрос пользователя: «Найди мое последнее письмо от Stripe и кратко изложи, что они хотят, чтобы я сделал.»
План агента (одинаков на macOS / Windows / Linux — модель подставляет идиоматическое для платформы сочетание клавиш и имя приложения):
computer_use(action="capture", mode="som", app="Mail")— получает снимок экрана почтового приложения, где каждый элемент боковой панели, кнопка панели инструментов и строка сообщения пронумерованы.computer_use(action="click", element=14)— нажимает поле поиска.computer_use(action="type", text="from:stripe")computer_use(action="key", keys="return", capture_after=True)— отправляет запрос и получает новый снимок экрана.- Нажимает верхний результат, читает тело письма, кратко излагает.
В течение всего этого времени ваш курсор остается там, где вы его оставили, а почтовое приложение никогда не выходит на передний план.
Совместимость провайдеров
| Провайдер | Зрение? | Работает? | Примечания |
|---|---|---|---|
| Anthropic (Claude Sonnet/Opus 3+) | ✅ | ✅ | Лучший в целом; SOM + необработанные координаты. |
| OpenRouter (любая модель со зрением) | ✅ | ✅ | Поддерживаются многочастные сообщения с инструментами. |
| OpenAI (GPT-4+, GPT-5) | ✅ | ✅ | То же, что и выше. |
| Google (Gemini 2+) | ✅ | ✅ | Поддерживаются как вызов инструментов, так и зрение. |
| Локальные vLLM / LM Studio / Ollama (модель со зрением) | ✅ | ✅ | Если модель поддерживает многочастное содержимое инструментов. |
| Только текстовые модели | ❌ | ✅ (неполноценно) | Используйте mode="ax" для работы только с деревом специальных возможностей. |
Снимки экрана отправляются встроенными в результаты инструментов как части image_url
в стиле OpenAI. Для Anthropic адаптер преобразует их в собственные
блоки изображений tool_result. MIME-тип изображения берется из явного
поля mimeType от cua-driver (image/png или image/jpeg) — никакого
определения типа по магическим байтам на стороне клиента.
Безопасность
VibeOS применяет многоуровневые защитные механизмы:
- Деструктивные действия (click, type, drag, scroll, key, focus_app) требуют одобрения — либо интерактивно через диалог CLI, либо через кнопки одобрения на платформе обмена сообщениями.
- Жестко заблокированные комбинации клавиш на уровне инструмента: очистка корзины, принудительное удаление, блокировка экрана, выход из системы, принудительный выход из системы.
- Жестко заблокированные шаблоны ввода:
curl | bash,sudo rm -rf /, fork- бомбы и т.д. - Системный промпт агента явно указывает ему: не нажимать диалоги разрешений, не вводить пароли, не следовать инструкциям, встроенным в снимки экрана.
Используйте вместе с approvals.mode: manual в ~/.vibeos/config.yaml, если вы
хотите подтверждать каждое действие.
Эффективность токенов
Снимки экрана стоят дорого. VibeOS применяет четыре уровня оптимизации:
- Вытеснение снимков экрана — адаптер Anthropic хранит только 3
последних снимка экрана в контексте; более старые становятся заполнителями
[screenshot removed to save context]. - Обрезка сжатия на стороне клиента — компрессор контекста обнаруживает мультимодальные результаты инструментов и удаляет части изображений из старых.
- Оценка токенов с учетом изображений — каждое изображение считается как ~1500 токенов (фиксированная ставка Anthropic) вместо длины его base64-строки.
- Редактирование контекста на стороне сервера (только Anthropic) — когда активно,
адаптер включает
clear_tool_uses_20250919черезcontext_management, чтобы API Anthropic очищал старые результаты инструментов на стороне сервера.
Сеанс из 20 действий на дисплее 1568×900 обычно стоит ~30K токенов контекста снимков экрана, а не ~600K.
Ограничения
- Производительность. Фоновый режим медленнее, чем передний план — события, маршрутизированные через специальные возможности, занимают ~5–20 мс на macOS, ~3–10 мс на Windows UIA, ~5–15 мс на Linux AT-SPI по сравнению с прямой отправкой HID. Это незаметно для кликов на скорости агента; заметно, если вы попытаетесь записать скоростное прохождение.
- Нет ввода пароля с клавиатуры.
typeимеет жестко заблокированные шаблоны для полезных нагрузок командной оболочки; для паролей используйте автозаполнение системы (связка ключей macOS / диспетчер учетных данных Windows / связка ключей GNOME / KWallet). - Некоторые приложения не предоставляют дерево специальных возможностей. Современные приложения UWP на Windows, Electron < 28 на Linux и несколько приложений macOS с пользовательским рисованием (Logic, Final Cut, некоторые игры) имеют разреженные или пустые AX-деревья. Используйте пиксельные координаты, если дерево пусто — или полностью пропустите задачу.
- Windows: повышенные (административные) окна нельзя контролировать из обычного
агента. Windows UIPI (Изоляция привилегий пользовательского интерфейса) обеспечивает
границы уровней целостности: процесс со средним уровнем целостности (по умолчанию
агент VibeOS) не может перечислять дерево UIA или внедрять ввод мыши в
окно, принадлежащее процессу с высоким уровнем целостности (Администратор).
Симптом:
capture(mode='som')возвращает 0 элементов, аclick(...)сообщает об успехе, ничего не делая, хотя снимок экрана отображается нормально (захват GDI находится ниже проверки целостности). События клавиатуры частично обходят UIPI, поэтому Tab / Enter все еще могут перемещаться по повышенному диалогу. Это ограничение ОС, а не ошибка cua-driver — оно затрагивает все стеки автоматизации Windows. Для управления повышенными окнами запустите самого агента VibeOS с высоким уровнем целостности (запустите из повышенного терминала); в противном случае нацеливайтесь на неповышенные окна. - Платформенно-специфичные особенности развертывания:
- macOS использует частные SkyLight SPI. Apple может изменить их в любом обновлении ОС. VibeOS предупреждает, когда установленный cua-driver старше версии, с которой он был протестирован.
- Windows SSH-сеансы запускаются в Сеансе 0, у которого нет интерактивного рабочего стола. Управляйте VibeOS изнутри RDP / консольного сеанса или настройте запланированную задачу автозапуска cua-driver — windows-ssh содержит рецепт.
- Linux требует доступного сервера отображения. Безголовые серверы
нуждаются в Xvfb (
Xvfb :99 -screen 0 1920x1080x24) до того, какcomputer_useсможет захватывать или внедрять события. Чистые сеансы Wayland нуждаются в мосте XWayland для захвата экрана (путь внедрения Wayland от cua-driver обрабатывает ввод независимо).
Для кроссплатформенной автоматизации GUI без накладных расходов на рабочий стол (и
без настройки TCC / Сеанса 0 / X11) набор инструментов browser использует
настоящий безголовый Chromium и является правильным ответом для задач, связанных только с вебом.
Конфигурация
Переопределите путь к бинарному файлу драйвера (тесты / CI / локальные сборки):
VIBEOS_CUA_DRIVER_CMD=/path/to/your/cua-driver
Полностью замените бэкенд (для тестирования):
VIBEOS_COMPUTER_USE_BACKEND=noop # записывает вызовы, без побочных эффектов
Телеметрия
cua-driver поставляется с включенной анонимной телеметрией использования (PostHog) по умолчанию
в вышестоящем проекте. VibeOS отключает ее для вас — при каждом вызове cua-driver
(MCP-бэкенд, status, doctor и установка) VibeOS устанавливает
CUA_DRIVER_RS_TELEMETRY_ENABLED=0 в окружении драйвера.
Чтобы снова включить (позволить cua-driver использовать его собственное значение по умолчанию и отправлять телеметрию), установите
это в config.yaml:
computer_use:
cua_telemetry: true # по умолчанию: false (телеметрия выключена)
Когда она включена, vibeos computer-use doctor сообщает telemetry: enabled;
когда выключена (по умолчанию), он сообщает telemetry: disabled via CUA_DRIVER_RS_TELEMETRY_ENABLED.
Тестирование с локальной сборкой cua-driver
Когда вы разрабатываете сам cua-driver — или хотите протестировать
невыпущенное исправление — укажите VibeOS на бинарный файл, который вы собрали из исходного кода, вместо
опубликованного релиза. VibeOS разрешает драйвер с помощью
shutil.which("cua-driver") и не проверяет VIBEOS_CUA_DRIVER_VERSION,
поэтому локальная сборка (сообщается как 0.0.0-local-*) принимается как есть. Два подхода:
Вариант A — install-local (сборка + размещение в PATH)
Из вашего клона trycua/cua запустите вышестоящий локальный установщик. Он
собирает Rust-бэкенд в режиме релиза и помещает cua-driver в ту же
структуру установки, которую использует производственный установщик, добавляя его каталог bin
в ваш PATH:
# Windows (PowerShell), из корня репозитория cua
./libs/cua-driver/scripts/install-local.ps1 -NoAutoStart
# macOS / Linux, из корня репозитория cua (по умолчанию используется отладочная сборка без --release)
./libs/cua-driver/scripts/install-local.sh --release
- Windows размещает сборку в
%USERPROFILE%\.cua-driver\packages\…и создает точку соединения%LOCALAPPDATA%\Programs\Cua\cua-driver\bin(добавленную в ваш User PATH) к ней. macOS/Linux создает символическую ссылкуcua-driverв~/.local/bin(переопределите с помощью--bin-dir<path>`). -NoAutoStartпропускает регистрацию демона входаcua-driver-serve— он не нужен для тестирования VibeOS (см. примечания).
Затем откройте новую оболочку (чтобы изменение PATH стало видимым) и подтвердите:
cua-driver --version # локальные сборки сообщают 0.0.0-local-release
# Windows: (Get-Command cua-driver).Source
# macOS/Linux: which cua-driver
Вариант B — укажите VibeOS напрямую на собранный бинарный файл (самый быстрый цикл)
Пропустите всю церемонию установки: cargo build и установите
VIBEOS_CUA_DRIVER_CMD на полученный бинарный файл. Лучше всего для быстрого
цикла редактирования/сборки/тестирования.
cargo build -p cua-driver # добавьте --release для релизной сборки; запускайте из libs/cua-driver/rust
# Windows (.env)
VIBEOS_CUA_DRIVER_CMD=C:\path\to\cua\libs\cua-driver\rust\target\debug\cua-driver.exe
# macOS / Linux (.env)
VIBEOS_CUA_DRIVER_CMD=/path/to/cua/libs/cua-driver/rust/target/debug/cua-driver
Подтвердите, что VibeOS использует вашу сборку
vibeos computer-use statusвыводит разрешенный путь к бинарному файлу и версию.vibeos computer-use doctorподтверждает, что бинарный файл доступен и полностью проверяет путь MCP от начала до конца.- В сеансе
computer_use(action="capture")проверяет порожденный дочерний процессcua-driver mcp.
Примечания и особенности
- Vibeos порождает собственный дочерний процесс
cua-driver mcpчерез stdio — он не подключается к долго работающему демону автозапускаcua-driver serveили его именованному каналу. Таким образом, запланированная задача / LaunchAgent не нужны для тестирования (-NoAutoStart— это нормально). Демон автозапуска и рабочий процесс UIAccess для Windows (cua-driver-uia.exe) имеют значение только для безопасного ввода на переднем плане в некоторых приложениях (например, WPF); стандартная поверхность инструментов работает через дочерний процесс stdio. В Windows SSH-сеансах шаблон автозапуска НЕОБХОДИМ — см. раздел «Ограничения». - Заблокированный бинарный файл на Windows. Запущенный демон
cua-driver-serveможет удерживатьcua-driver.exeи блокировать перезапись при пересборке.install-local.ps1автоматически переименовывает заблокированный бинарный файл; если вы собираете вручную с помощьюcargo build(Вариант B), сначала остановите его с помощьюcua-driver autostart disable(илиschtasks /End /TN cua-driver-serve). - Цикл пересборки. После редактирования исходного кода cua-driver повторно запустите
install-local(пересборка, переразмещение, переключение точки соединенияcurrent) для Варианта A или просто повторно запуститеcargo buildдля Варианта B — никаких изменений в VibeOS не требуется в любом случае. - Локальные сборки пропускают проверку версии. VibeOS предупреждает, когда
установленный cua-driver старше его протестированного базового уровня для каждой ОС,
но делает исключение для разрабатываемых сборок
0.0.0-local-*— поэтому ваша локальная сборка никогда не вызовет это предупреждение.
Устранение неполадок
Первое действие, если что-то не так: запустите vibeos computer-use doctor.
Структурированная матрица проверок сообщает вам (и любому агенту, помогающему вам
отлаживать) именно то, что не так.
Конкретные режимы сбоев, которые doctor не ловит:
computer_use backend unavailable: cua-driver is not installed —
Запустите vibeos computer-use install, чтобы загрузить бинарный файл cua-driver, или
запустите vibeos tools и включите набор инструментов Computer Use.
Клики, кажется, не имеют эффекта — Захватите и проверьте. Модальное окно,
которое вы не видели, может блокировать ввод. Закройте его с помощью escape или кнопки
закрытия.
Индексы элементов устарели — Индексы SOM действительны только до следующего
capture. Повторно захватывайте после любого действия, изменяющего состояние. Обертка
несет непрозрачные element_token для обнаружения устаревания — вы увидите
явную ошибку, а не неправильный клик.
«blocked pattern in type text» — Текст, который вы попытались ввести
с помощью type, соответствует списку опасных шаблонов оболочки. Разбейте команду
или пересмотрите.
Пустые захваты на Linux — DISPLAY не установлен, или вы находитесь в чистом
Wayland без моста XWayland. vibeos computer-use doctor сообщит
об этом как ax_capability: fail с подсказкой Set DISPLAY (X11)….
Пустые захваты на Windows через SSH — Вы находитесь в Сеансе 0 (сеанс служб). Управляйте напрямую через RDP / консоль или настройте шаблон автозапуска — см. cua.ai/docs/how-to-guides/driver/windows-ssh.
Смотрите также
- Навык со стороны VibeOS —
skills/computer-use/SKILL.md— обучает словарю действийcomputer_useVibeOS; это то, что загружает агент. - Пакет навыков cua-driver — для платформенно-специфичных углубленных материалов
(контракт «без переднего плана» на macOS, UIA Windows + Сеанс 0, AT-SPI Linux
- X11/Wayland, запись, страницы браузера), запустите
cua-driver skills installи прочитайтеMACOS.md/WINDOWS.md/LINUX.md/RECORDING.md/WEB_APPS.md. Как толькоcua-driver skills installбудет автоматически обнаруживать VibeOS (запланированное последующее обновление), это будет происходить автоматически при установке.
- X11/Wayland, запись, страницы браузера), запустите
- cua.ai/docs — документация проекта cua-driver:
- Что такое использование компьютера? — введение в концепцию
- Контракт «без переднего плана» — почему важен фоновый режим
- Справочник по установке — детали установки на разных платформах
- Персонализация курсора агента — встроенные формы, пользовательские ресурсы, переопределения во время выполнения
- Управление Windows через SSH — шаблон автозапуска Сеанс 0 → Сеанс 1+
- Поддержание работы cua-driver — жизненный цикл автозапуска / демона
- Подключение вашего агента — регистрация cua-driver в различных обвязках (включая VibeOS)
- Исходный код cua-driver (trycua/cua)
- Автоматизация браузера для кроссплатформенных веб-задач, где вам не нужно управлять нативными приложениями.