iiuniversitet.ruЦентр обучения нейросетямОткрыть каталог

Снимок экрана рабочего стола

Делает снимок всего экрана, окна приложения или области в пикселях в macOS, Linux и Windows и сохраняет файл в нужное место.

СкиллOpenAICodexApache-2.0Нужен терминалПроверка не требуется
Что делает
Делает снимок всего экрана, окна приложения или области в пикселях в macOS, Linux и Windows и сохраняет файл в нужное место.
Когда брать
Когда просят снимок экрана рабочего стола, окна конкретного приложения или области, а в инструменте нет своей съёмки.
Когда не брать
Если для браузера, Electron или файла Figma есть свой инструмент съёмки.
Пример запроса
Сделай снимок окна Slack и сохрани его в папку output.
Нужно подключить
терминал, Python

Как включить

  1. Скачайте архив и распакуйте его.
  2. Положите папку screenshot в ~/.agents/skills/.
  3. Вызовите скилл командой $screenshot или найдите его через /skills.

Текст

---
name: "screenshot"
description: "Используй, когда пользователь прямо просит снимок экрана рабочего стола или системы (весь экран, конкретное приложение или окно, область в пикселях), либо когда возможности съёмки в конкретном инструменте недоступны и нужен снимок на уровне ОС."
---

Снимок экрана

Каждый раз соблюдай такие правила выбора места сохранения:

  1. Если пользователь указал путь, сохрани туда.
  2. Если пользователь просит снимок экрана без пути, сохрани в стандартное для ОС место для снимков экрана.
  3. Если Codex нужен снимок для собственного осмотра, сохрани его во временную папку.

Приоритет инструментов

  • Предпочитай возможности съёмки в конкретном инструменте, если они доступны (например, Figma MCP или скилл для файлов Figma, либо Playwright и инструменты agent-browser для браузеров и приложений Electron).
  • Используй этот скилл, когда о нём прямо просят, для снимков всего рабочего стола системы или когда съёмка в конкретном инструменте не даёт нужного результата.
  • В остальных случаях считай этот скилл вариантом по умолчанию для настольных приложений, у которых нет лучше встроенного инструмента съёмки.

Предварительная проверка разрешений в macOS (чтобы запросы не повторялись)

В macOS один раз запусти вспомогательный скрипт предварительной проверки перед съёмкой окна или приложения. Он проверяет разрешение «Запись экрана», объясняет, зачем оно нужно, и запрашивает его в одном месте.

Вспомогательные скрипты направляют кеш модулей Swift в $TMPDIR/codex-swift-module-cache, чтобы не вызывать лишних запросов песочницы о кеше модулей.

bash <path-to-skill>/scripts/ensure_macos_permissions.sh

Чтобы не получать несколько запросов подтверждения от песочницы, по возможности объединяй предварительную проверку и съёмку в одну команду:

bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"

Для запусков осмотра в Codex храни результат во временной папке:

bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "<App>" --mode temp

Используй входящие в состав скрипты, чтобы не выводить заново команды, зависящие от ОС.

macOS и Linux (вспомогательный скрипт на Python)

Запускай вспомогательный скрипт из корня репозитория:

python3 <path-to-skill>/scripts/take_screenshot.py

Типовые случаи:

  • Расположение по умолчанию (пользователь попросил «снимок экрана»):
python3 <path-to-skill>/scripts/take_screenshot.py
  • Временное расположение (визуальная проверка в Codex):
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp
  • Явное расположение (пользователь указал путь или имя файла):
python3 <path-to-skill>/scripts/take_screenshot.py --path output/screen.png
  • Съёмка приложения или окна по имени приложения (только macOS; достаточно совпадения по части имени; снимает все подходящие окна):
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"
  • Конкретное окно по заголовку внутри приложения (только macOS):
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex" --window-name "Settings"
  • Список подходящих идентификаторов окон перед съёмкой (только macOS):
python3 <path-to-skill>/scripts/take_screenshot.py --list-windows --app "Codex"
  • Область в пикселях (x,y,w,h):
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp --region 100,200,800,600
  • Окно в фокусе или активное окно (снимает только окно на переднем плане; чтобы снять все окна, используй --app):
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp --active-window
  • Конкретный идентификатор окна (в macOS узнай идентификаторы через --list-windows):
python3 <path-to-skill>/scripts/take_screenshot.py --window-id 12345

Скрипт печатает по одному пути на каждый снимок. Если подходят несколько окон или дисплеев, он печатает несколько путей (по одному в строке) и добавляет суффиксы вроде -w<windowId> или -d<display>. Просматривай каждый путь по очереди с помощью инструмента просмотра изображений и обрабатывай изображения, только если это нужно или об этом попросили.

Примеры рабочих сценариев

  • «Посмотри на <App> и скажи, что видишь»: сделай снимок во временную папку, затем просмотри по порядку каждый напечатанный путь.
bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "<App>" --mode temp
  • «Дизайн из Figma не совпадает с тем, что реализовано»: сначала сними дизайн через Figma MCP или скилл, затем сними работающее приложение этим скиллом (обычно во временную папку) и сравни необработанные снимки до любой обработки.

Поведение при нескольких дисплеях

  • В macOS при подключении нескольких мониторов снимки всего экрана сохраняются по одному файлу на каждый дисплей.
  • В Linux и Windows снимки всего экрана делаются с виртуального рабочего стола (все мониторы на одном изображении); чтобы выделить отдельный дисплей, при необходимости используй --region.

Требования для Linux и логика выбора

Вспомогательный скрипт автоматически выбирает первый доступный инструмент:

  1. scrot
  2. gnome-screenshot
  3. ImageMagick import

Если ни одного нет, попроси пользователя установить любой из них и повтори попытку.

Для областей по координатам нужен scrot или ImageMagick import.

--app, --window-name и --list-windows работают только в macOS. В Linux используй --active-window или передай --window-id, если он есть.

Windows (вспомогательный скрипт PowerShell)

Запусти вспомогательный скрипт PowerShell:

powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1

Типовые случаи:

  • Расположение по умолчанию:
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1
  • Временное расположение (визуальная проверка в Codex):
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp
  • Явный путь:
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Path "C:\Temp\screen.png"
  • Область в пикселях (x,y,w,h):
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -Region 100,200,800,600
  • Активное окно (сначала попроси пользователя перевести на него фокус):
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -ActiveWindow
  • Конкретный дескриптор окна (только если он передан):
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -WindowHandle 123456

Прямые команды ОС (запасные варианты)

Используй их, когда нет возможности запустить вспомогательные скрипты.

macOS

  • Весь экран в указанный путь:
screencapture -x output/screen.png
  • Область в пикселях:
screencapture -x -R100,200,800,600 output/region.png
  • Конкретный идентификатор окна:
screencapture -x -l12345 output/window.png
  • Интерактивное выделение или выбор окна:
screencapture -x -i output/interactive.png

Linux

  • Весь экран:
scrot output/screen.png
gnome-screenshot -f output/screen.png
import -window root output/screen.png
  • Область в пикселях:
scrot -a 100,200,800,600 output/region.png
import -window root -crop 800x600+100+200 output/region.png
  • Активное окно:
scrot -u output/window.png
gnome-screenshot -w -f output/window.png

Обработка ошибок

  • В macOS сначала запусти bash <path-to-skill>/scripts/ensure_macos_permissions.sh, чтобы запросить «Запись экрана» в одном месте.
  • Если в запуске в песочнице появляются сообщения «screen capture checks are blocked in the sandbox», «could not create image from display» или ошибки доступа к ModuleCache в Swift, перезапусти команду с расширенными правами.
  • Если съёмка приложения или окна в macOS не находит совпадений, выполни --list-windows --app "AppName" и повтори с --window-id, а также убедись, что приложение видно на экране.
  • Если в Linux не удаётся съёмка области или окна, проверь наличие инструментов командами command -v scrot, command -v gnome-screenshot и command -v import.
  • Если сохранение в стандартное для ОС место в песочнице завершается ошибкой доступа, перезапусти команду с расширенными правами.
  • Всегда сообщай в ответе путь сохранённого файла.

Перевод: iiuniversitet. Оригинал: https://github.com/openai/skills/tree/main/skills/.curated/screenshot, лицензия Apache-2.0. Изменения: перевод на русский язык.

Оригинал на английском
---
name: "screenshot"
description: "Use when the user explicitly asks for a desktop or system screenshot (full screen, specific app or window, or a pixel region), or when tool-specific capture capabilities are unavailable and an OS-level capture is needed."
---


# Screenshot Capture

Follow these save-location rules every time:

1) If the user specifies a path, save there.
2) If the user asks for a screenshot without a path, save to the OS default screenshot location.
3) If Codex needs a screenshot for its own inspection, save to the temp directory.

## Tool priority

- Prefer tool-specific screenshot capabilities when available (for example: a Figma MCP/skill for Figma files, or Playwright/agent-browser tools for browsers and Electron apps).
- Use this skill when explicitly asked, for whole-system desktop captures, or when a tool-specific capture cannot get what you need.
- Otherwise, treat this skill as the default for desktop apps without a better-integrated capture tool.

## macOS permission preflight (reduce repeated prompts)

On macOS, run the preflight helper once before window/app capture. It checks
Screen Recording permission, explains why it is needed, and requests it in one
place.

The helpers route Swift's module cache to `$TMPDIR/codex-swift-module-cache`
to avoid extra sandbox module-cache prompts.

```bash
bash <path-to-skill>/scripts/ensure_macos_permissions.sh
```

To avoid multiple sandbox approval prompts, combine preflight + capture in one
command when possible:

```bash
bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"
```

For Codex inspection runs, keep the output in temp:

```bash
bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "<App>" --mode temp
```

Use the bundled scripts to avoid re-deriving OS-specific commands.

## macOS and Linux (Python helper)

Run the helper from the repo root:

```bash
python3 <path-to-skill>/scripts/take_screenshot.py
```

Common patterns:

- Default location (user asked for "a screenshot"):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py
```

- Temp location (Codex visual check):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp
```

- Explicit location (user provided a path or filename):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --path output/screen.png
```

- App/window capture by app name (macOS only; substring match is OK; captures all matching windows):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"
```

- Specific window title within an app (macOS only):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex" --window-name "Settings"
```

- List matching window ids before capturing (macOS only):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --list-windows --app "Codex"
```

- Pixel region (x,y,w,h):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp --region 100,200,800,600
```

- Focused/active window (captures only the frontmost window; use `--app` to capture all windows):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp --active-window
```

- Specific window id (use --list-windows on macOS to discover ids):

```bash
python3 <path-to-skill>/scripts/take_screenshot.py --window-id 12345
```

The script prints one path per capture. When multiple windows or displays match, it prints multiple paths (one per line) and adds suffixes like `-w<windowId>` or `-d<display>`. View each path sequentially with the image viewer tool, and only manipulate images if needed or requested.

### Workflow examples

- "Take a look at <App> and tell me what you see": capture to temp, then view each printed path in order.

```bash
bash <path-to-skill>/scripts/ensure_macos_permissions.sh && \
python3 <path-to-skill>/scripts/take_screenshot.py --app "<App>" --mode temp
```

- "The design from Figma is not matching what is implemented": use a Figma MCP/skill to capture the design first, then capture the running app with this skill (typically to temp) and compare the raw screenshots before any manipulation.

### Multi-display behavior

- On macOS, full-screen captures save one file per display when multiple monitors are connected.
- On Linux and Windows, full-screen captures use the virtual desktop (all monitors in one image); use `--region` to isolate a single display when needed.

### Linux prerequisites and selection logic

The helper automatically selects the first available tool:

1) `scrot`
2) `gnome-screenshot`
3) ImageMagick `import`

If none are available, ask the user to install one of them and retry.

Coordinate regions require `scrot` or ImageMagick `import`.

`--app`, `--window-name`, and `--list-windows` are macOS-only. On Linux, use
`--active-window` or provide `--window-id` when available.

## Windows (PowerShell helper)

Run the PowerShell helper:

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1
```

Common patterns:

- Default location:

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1
```

- Temp location (Codex visual check):

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp
```

- Explicit path:

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Path "C:\Temp\screen.png"
```

- Pixel region (x,y,w,h):

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -Region 100,200,800,600
```

- Active window (ask the user to focus it first):

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -ActiveWindow
```

- Specific window handle (only when provided):

```powershell
powershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -WindowHandle 123456
```

## Direct OS commands (fallbacks)

Use these when you cannot run the helpers.

### macOS

- Full screen to a specific path:

```bash
screencapture -x output/screen.png
```

- Pixel region:

```bash
screencapture -x -R100,200,800,600 output/region.png
```

- Specific window id:

```bash
screencapture -x -l12345 output/window.png
```

- Interactive selection or window pick:

```bash
screencapture -x -i output/interactive.png
```

### Linux

- Full screen:

```bash
scrot output/screen.png
```

```bash
gnome-screenshot -f output/screen.png
```

```bash
import -window root output/screen.png
```

- Pixel region:

```bash
scrot -a 100,200,800,600 output/region.png
```

```bash
import -window root -crop 800x600+100+200 output/region.png
```

- Active window:

```bash
scrot -u output/window.png
```

```bash
gnome-screenshot -w -f output/window.png
```

## Error handling

- On macOS, run `bash <path-to-skill>/scripts/ensure_macos_permissions.sh` first to request Screen Recording in one place.
- If you see "screen capture checks are blocked in the sandbox", "could not create image from display", or Swift `ModuleCache` permission errors in a sandboxed run, rerun the command with escalated permissions.
- If macOS app/window capture returns no matches, run `--list-windows --app "AppName"` and retry with `--window-id`, and make sure the app is visible on screen.
- If Linux region/window capture fails, check tool availability with `command -v scrot`, `command -v gnome-screenshot`, and `command -v import`.
- If saving to the OS default location fails with permission errors in a sandbox, rerun the command with escalated permissions.
- Always report the saved file path in the response.

Источник: openai/skills / screenshot ↗. Ссылка проверена 2026-10-10.