# Desktop Control

Даёт агенту управление мышью, клавиатурой и экраном через CLI uvx desktop-agent. Пригодится, когда задачу нельзя решить в терминале.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4000 установок · ★ 3
- Автор: patrickporto
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/patrickporto/desktop-agent/tree/HEAD/SKILL.md
- Обновлён: 2026-06-17
- HTML: https://affpapa.org/nevibecode/skills/desktop-control

## Что делает

Скилл ставит между агентом и рабочим столом прослойку на PyAutoGUI. Все действия идут через одну команду `uvx desktop-agent <category> <command>`, а категорий пять: `mouse`, `keyboard`, `screen`, `message` и `app`. Мышь двигается по координатам с заданной длительностью, кликает левой, правой или средней кнопкой, тянет и скроллит. Клавиатура печатает текст с интервалом, жмёт отдельные клавиши и собирает хоткеи из списка вроде `ctrl,c`.

Экранная часть интереснее остального. Скриншот можно снять целиком, по региону или по конкретному окну, а `locate` и `locate-center` ищут картинку на экране с порогом совпадения. Есть OCR: `locate-text-coordinates` находит текст и отдаёт координаты, `read-all-text` вычитывает всё из окна. Через `app` открываются приложения, окна получают фокус, `app list` показывает список видимых окон — на Windows, macOS и Linux.

Что нужно помнить перед запуском. Координаты и картинки живут ровно до того момента, как окно сдвинулось или элемент переехал, поэтому в самом скилле заложен совет сверяться с `screen size` и `on-screen` перед кликом и вставлять паузы между командами. Разрушительные действия стоит подтверждать у пользователя. Ещё один момент: `uvx` тянет пакет с PyAutoGUI, так что нужен рабочий Python-окружение с доступом в сеть.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patrickporto/desktop-agent --skill desktop-control -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/desktop-control/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/desktop-control/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patrickporto/desktop-agent --skill desktop-control -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/desktop-control/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patrickporto/desktop-agent --skill desktop-control -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/desktop-control/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install patrickporto/desktop-agent desktop-control
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/desktop-control/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add patrickporto/desktop-agent --skill desktop-control -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/patrickporto/desktop-agent
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/desktop-control/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add patrickporto/desktop-agent --skill desktop-control -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/patrickporto/desktop-agent/tree/HEAD/SKILL.md

## Когда брать
- заполнить форму в настольном приложении без API
- снять скриншот конкретного окна и найти на нём кнопку
- вычитать текст с экрана через OCR и получить координаты
- собрать хоткей из нескольких клавиш и отправить его в окно
- открыть приложение, дождаться фокуса и напечатать текст

## Примеры запросов агенту
- Сделай скриншот активного окна и найди на нём кнопку сохранения
- Открой notepad, переведи фокус на него и напечатай «готово»
- Нажми ctrl+c в текущем окне, потом кликни в точку 500 600 и вставь

## Похожие
- [godot-platform-desktop](https://affpapa.org/nevibecode/skills/godot-platform-desktop.md) — скилл · 372 установки
- [image-to-text](https://affpapa.org/nevibecode/skills/image-to-text.md) — скилл · 713 установок
- [desktop-principles](https://affpapa.org/nevibecode/skills/desktop-principles.md) — скилл · 982 установки
- [native-feel-cross-platform-desktop](https://affpapa.org/nevibecode/skills/native-feel-cross-platform-desktop.md) — скилл · 608 установок
- [Automated Text Typing Every 5 Minutes with Python](https://affpapa.org/nevibecode/prompts/automated-text-typing-every-5-minutes-with-python.md) — промпт · ★ 174597
- [capture-screen](https://affpapa.org/nevibecode/skills/capture-screen.md) — скилл · 1000 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
