本文へ移動
cccskills
無料GitHub で公開

openai-screenshot

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. Originally from OpenAI's curated skills catalog.

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curatedスター 522(GitHub 522 + cccskills 0)
連携ツールFigmaOpenAI

実行スコア 未検証

インストール方法を見る

含まれるファイル(7)

  • SKILL.md7.6 KB
  • scripts/ensure_macos_permissions.sh1.7 KB
  • scripts/macos_display_info.swift482 B
  • scripts/macos_permissions.swift929 B
  • scripts/macos_window_info.swift3.5 KB
  • scripts/take_screenshot.ps14.8 KB
  • scripts/take_screenshot.py19.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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 the agent 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 {baseDir}/scripts/ensure_macos_permissions.sh

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

bash {baseDir}/scripts/ensure_macos_permissions.sh && \
python3 {baseDir}/scripts/take_screenshot.py --app "the agent"

For the agent inspection runs, keep the output in temp:

bash {baseDir}/scripts/ensure_macos_permissions.sh && \
python3 {baseDir}/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:

python3 {baseDir}/scripts/take_screenshot.py

Common patterns:

  • Default location (user asked for "a screenshot"):
python3 {baseDir}/scripts/take_screenshot.py
  • Temp location (the agent visual check):
python3 {baseDir}/scripts/take_screenshot.py --mode temp
  • Explicit location (user provided a path or filename):
python3 {baseDir}/scripts/take_screenshot.py --path output/screen.png
  • App/window capture by app name (macOS only; substring match is OK; captures all matching windows):
python3 {baseDir}/scripts/take_screenshot.py --app "the agent"
  • Specific window title within an app (macOS only):
python3 {baseDir}/scripts/take_screenshot.py --app "the agent" --window-name "Settings"
  • List matching window ids before capturing (macOS only):
python3 {baseDir}/scripts/take_screenshot.py --list-windows --app "the agent"
  • Pixel region (x,y,w,h):
python3 {baseDir}/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):
python3 {baseDir}/scripts/take_screenshot.py --mode temp --active-window
  • Specific window id (use --list-windows on macOS to discover ids):
python3 {baseDir}/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 {baseDir}/scripts/ensure_macos_permissions.sh && \
python3 {baseDir}/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 -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1

Common patterns:

  • Default location:
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1
  • Temp location (the agent visual check):
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Mode temp
  • Explicit path:
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Path "C:\Temp\screen.png"
  • Pixel region (x,y,w,h):
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Mode temp -Region 100,200,800,600
  • Active window (ask the user to focus it first):
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Mode temp -ActiveWindow
  • Specific window handle (only when provided):
powershell -ExecutionPolicy Bypass -File {baseDir}/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:
screencapture -x output/screen.png
  • Pixel region:
screencapture -x -R100,200,800,600 output/region.png
  • Specific window id:
screencapture -x -l12345 output/window.png
  • Interactive selection or window pick:
screencapture -x -i output/interactive.png

Linux

  • Full screen:
scrot output/screen.png
gnome-screenshot -f output/screen.png
import -window root output/screen.png
  • Pixel region:
scrot -a 100,200,800,600 output/region.png
import -window root -crop 800x600+100+200 output/region.png
  • Active window:
scrot -u output/window.png
gnome-screenshot -w -f output/window.png

Error handling

  • On macOS, run bash {baseDir}/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.

When to Use

<!-- TODO: review -->

When NOT to Use

<!-- TODO: review -->

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Expert guidance for ffuf web fuzzing during authorized penetration testing. Covers directory discovery, subdomain enumeration, parameter fuzzing, authenticated fuzzing with raw requests, auto-calibration, and result analysis. Use when running ffuf scans, analyzing ffuf output, or building fuzzing strategies for web targets.

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

Reverse engineers binaries using Ghidra's headless analyzer. Use when decompiling executables, extracting functions, strings, symbols, or analyzing call graphs from compiled binaries without the Ghidra GUI.

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

grilling

無料

Interviews the user relentlessly about a plan, decision, or idea until every branch of the decision tree is resolved. Use when the user wants to stress-test their thinking, sharpen a plan or design before acting, or uses any 'grill' trigger phrase (e.g. "grill me on this").

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

handoff

無料

Compacts the current conversation into a handoff document so a fresh agent can continue the work in a new session.

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

humanizer

無料

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases. 30c5c8d (Update humanizer plugin to upstream v2.2.0)

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

Researches a topic from the last 30 days on Reddit, X, and the web. Surfaces real community discussions with engagement metrics and synthesizes findings into actionable insights. Use when the user wants to know what people are saying about a topic right now.

日本語の概要は準備中です。原文の説明を表示しています。

trailofbits/skills-curated5222026年7月15日 更新

trailofbits のスキルをすべて見る

このスキルの問題を報告する