Official agent skill

Openai Screenshot

by trailofbits in trailofbits/skills-curated

A skill your agent uses 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…

OfficialCC-BY-SA-4.0Auto-check: notesProductivity & Automation

Install Openai Screenshot

skills CLI
$ npx skills add trailofbits/skills-curated --skill openai-screenshot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install trailofbits/skills-curated openai-screenshot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/trailofbits/skills-curated.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/openai-screenshot/skills/openai-screenshot .claude/skills/openai-screenshot && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
openai-screenshot
GitHub stars
512
Token cost
~2k tokens
SKILL.md length
681 words
Files
7 (incl. scripts)
Skills in repo
24
Repo updated
First seen
Licence
CC-BY-SA-4.0

At a glance

A skill your agent uses 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…

  • Works in 3 steps: If the user specifies a path, save there. → If the user asks for a screenshot… → If the agent needs a screenshot for its…
  • The user explicitly asks for a desktop
  • SKILL.md covers Tool priority, macOS permission preflight…, macOS and Linux (Python helper) and Windows (PowerShell helper), plus 4 more sections
  • Runs Swift, Shell, PowerShell and Python scripts from its folder; calls python3 and bash

What it does

Openai Screenshot is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. 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.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `scripts/ensure_macos_permissions.sh` and `scripts/take_screenshot.py`).

It sits in Productivity & Automation. It works with OpenAI, macOS and Linux. The repository describes itself as: Curated, community-vetted Claude Code plugin marketplace. The licence is CC-BY-SA-4.0.

When your agent uses it

  • The user explicitly asks for a desktop
  • System screenshot (full screen
  • A pixel region)
  • Tool-specific capture capabilities are unavailable and an OS-level capture is needed

Example prompts

  • “/openai-screenshot”

Requirements

  • Python 3
  • A Bash shell
  • PowerShell
  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Write, Edit

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  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.

What it can do on your machine

Read from SKILL.md and the folder at commit 6d05be4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Write
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 6 files in scripts/ (Swift, Shell, PowerShell and Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Openai Screenshot loads about 2k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 681 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Write, Edit

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from trailofbits/skills-curated at commit 6d05be4, republished under its CC-BY-SA-4.0 licence (© trailofbits). 681 words, ~1,958 tokens.

Download SKILL.mdSave it as .claude/skills/openai-screenshot/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
openai-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. Originally from OpenAI's curated skills catalog.
allowed-tools
Bash, Read, Grep, Glob, Write, Edit

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

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

bash
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
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:

bash
python3 {baseDir}/scripts/take_screenshot.py

Common patterns:

  • Default location (user asked for "a screenshot"):
bash
python3 {baseDir}/scripts/take_screenshot.py
  • Temp location (the agent visual check):
bash
python3 {baseDir}/scripts/take_screenshot.py --mode temp
  • Explicit location (user provided a path or filename):
bash
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):
bash
python3 {baseDir}/scripts/take_screenshot.py --app "the agent"
  • Specific window title within an app (macOS only):
bash
python3 {baseDir}/scripts/take_screenshot.py --app "the agent" --window-name "Settings"
  • List matching window ids before capturing (macOS only):
bash
python3 {baseDir}/scripts/take_screenshot.py --list-windows --app "the agent"
  • Pixel region (x,y,w,h):
bash
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):
bash
python3 {baseDir}/scripts/take_screenshot.py --mode temp --active-window
  • Specific window id (use --list-windows on macOS to discover ids):
bash
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
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.
Show full SKILL.md (259 more words)Show less
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 {baseDir}/scripts/take_screenshot.ps1

Common patterns:

  • Default location:
powershell
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1
  • Temp location (the agent visual check):
powershell
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Mode temp
  • Explicit path:
powershell
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Path "C:\Temp\screen.png"
  • Pixel region (x,y,w,h):
powershell
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
powershell -ExecutionPolicy Bypass -File {baseDir}/scripts/take_screenshot.ps1 -Mode temp -ActiveWindow
  • Specific window handle (only when provided):
powershell
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:
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 {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 -->

© trailofbits, CC-BY-SA-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts) in plugins/openai-screenshot/skills/openai-screenshot of trailofbits/skills-curated.

  • SKILL.md
  • scripts/ensure_macos_permissions.sh
  • scripts/macos_display_info.swift
  • scripts/macos_permissions.swift
  • scripts/macos_window_info.swift
  • scripts/take_screenshot.ps1
  • scripts/take_screenshot.py

Open the folder on GitHubat commit 6d05be4

Compare with similar skills

Openai Screenshot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Openai Screenshot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openai Screenshot this skilltrailofbits/skills-curated512—~2kAutomated safety check: NotesCC-BY-SA-4.0
Daily Briefleiting-eric/DailyBrief364—~3kAutomated safety check: NotesMIT
Code Change Verificationopenai/openai-agents-python30k—~1.4kAutomated safety check: PassMIT
Agentdock User Guideuvwt/agentdock1.2k—~1.6kAutomated safety check: PassApache-2.0
Codex CLI OmniRoute Configdiegosouzapw/OmniRoute74k—~686Automated safety check: PassMIT
Proxy Local AI SubscriptionsPeiiii/nextclaw260—~1.9kAutomated safety check: NotesMIT

Similar skills

  • Daily Brief

    leiting-eric/DailyBrief

    Operational knowledge for the daily-brief digest pipeline (this project).

    364 GitHub stars~3k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • Code Change Verification

    openai/openai-agents-python

    Official

    Run the required final formatting, lint, type, and test checks after eligible SDK changes pass review.

    30k GitHub stars~1.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Agentdock User Guide

    uvwt/agentdock

    当用户询问 AgentDock 是什么、如何使用、配置在哪里、不同平台或安装方式怎样修改配置并生效、如何重启或验证配置、如何发现并配置 Codex/Claude/Grok 等 Coding Agent 的 ACP,以及常见运行问题时使用;覆盖 macOS Desktop、Windows Desktop、Linux 服务、Docker 和直接运行二进制,不用于源码开发与贡献流程。

    1.2k GitHub stars~1.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Codex CLI OmniRoute Config

    diegosouzapw/OmniRoute

    A step-by-step workflow for pointing the OpenAI Codex CLI at an OmniRoute gateway on Linux, macOS or Windows, plus settings that keep multi-hour sessions alive.

    74k GitHub stars~686 tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • 当用户希望把本机 Codex、ChatGPT Codex 或 Claude Code 订阅通过 localhost 暴露为 OpenAI 兼容端点,或希望在代理验证成功后把它添加成 NextClaw 自定义 provider 时使用。负责 CLIProxyAPI 安装检查、安全配置、OAuth 登录、Homebrew/systemd 持久托管、重启存活验收、NextClaw provider…

    260 GitHub stars~1.9k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Ollama Setup

    jeremylongshore/tons-of-skills-marketplace

    Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs.

    2.8k GitHub stars~1.4k tokensUpdated today
    AI & LLM EngineeringAuto-check: notes

More from trailofbits/skills-curated

All 24 skills in this repo
  • Openai Security Ownership Map

    trailofbits/skills-curated

    Official

    Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization.

    512 GitHub starsUsed in 5 repos~2.2k tokens
    Auto-check: notes
  • Openai Doc

    trailofbits/skills-curated

    Official

    A skill your agent uses when the task involves reading, creating, or editing .docx documents, especially when formatting or layout fidelity matters; prefer python-docx plus the bundled…

    512 GitHub starsUsed in 5 repos~786 tokens
    Auto-check: notes
  • Openai Develop Web Game

    trailofbits/skills-curated

    Official

    A skill your agent uses when the agent is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script…

    512 GitHub stars~2.3k tokensUpdated 2 mo ago
    Auto-check: notes
  • Openai Jupyter Notebook

    trailofbits/skills-curated

    Official

    A skill your agent uses when the user asks to create, scaffold, or edit Jupyter notebooks (.ipynb) for experiments, explorations, or tutorials; prefer the bundled templates and run the helper script…

    512 GitHub stars~1k tokensUpdated 2 mo ago
    Auto-check: notes
  • Openai Playwright

    trailofbits/skills-curated

    Official

    A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…

    512 GitHub stars~945 tokensUpdated 2 mo ago
    Auto-check: notes
  • X Research

    trailofbits/skills-curated

    Official

    Searches X/Twitter for real-time perspectives, dev discussions, product feedback, breaking news, and expert opinions using the X API v2.

    512 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check: notes

Questions about Openai Screenshot

What does Openai Screenshot do?

A skill your agent uses 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…. Openai Screenshot is an agent skill from trailofbits/skills-curated, published by the product's own GitHub organization. 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.

When should I use Openai Screenshot?

Openai Screenshot fits situations like: the user explicitly asks for a desktop; system screenshot (full screen; A pixel region); tool-specific capture capabilities are unavailable and an OS-level capture is needed.

How do I install Openai Screenshot in Claude Code?

Run `npx skills add trailofbits/skills-curated --skill openai-screenshot -a claude-code`. Or copy the skill folder (plugins/openai-screenshot/skills/openai-screenshot in trailofbits/skills-curated) into .claude/skills/openai-screenshot in your project. Claude Code loads it when a task matches its description.

How do I install Openai Screenshot in Codex?

Run `npx skills add trailofbits/skills-curated --skill openai-screenshot -a codex`. Or copy the skill folder (plugins/openai-screenshot/skills/openai-screenshot in trailofbits/skills-curated) into .agents/skills/openai-screenshot in your project. Codex loads it when a task matches its description.

Can I use Openai Screenshot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add trailofbits/skills-curated --skill openai-screenshot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openai-screenshot, .gemini/skills/openai-screenshot, .github/skills/openai-screenshot and .opencode/skills/openai-screenshot in your project.

What does Openai Screenshot need to run?

Going by SKILL.md and its folder, Openai Screenshot needs Swift, a shell, PowerShell and Python for the scripts in its folder and the command-line tools its instructions call (python3 and bash). Our summary lists: Python 3; A Bash shell; PowerShell. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Write, Edit.

Does Openai Screenshot access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Openai Screenshot safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Openai Screenshot use?

Openai Screenshot is published under the CC-BY-SA-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openai Screenshot use?

About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Openai Screenshot?

Skills that share tags, products or a category with Openai Screenshot: Daily Brief (leiting-eric/DailyBrief, 364 stars), Code Change Verification (openai/openai-agents-python, 30k stars), Agentdock User Guide (uvwt/agentdock, 1.2k stars) and Codex CLI OmniRoute Config (diegosouzapw/OmniRoute, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openai Screenshot?

trailofbits (a GitHub organization, an official publisher) maintains it in trailofbits/skills-curated, which has 512 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on July 14, 2026.

Source: trailofbits/skills-curated on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.