Skip to content
cccskills
FreePublished on GitHub

screenshot

Capture desktop screenshots on macOS, Linux, and Windows. Save the full screen, a selected window, or a region defined by coordinates, with support for a specified file path, the default location, or temporary storage.

OriginalShow the original 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.

Works withFigma
See how to install

Good for

  • Saving a screenshot of the entire desktop
  • Capturing a specific app or window
  • Saving only a region defined by coordinates
  • Comparing a running app with its Figma design

Files included (11)

  • SKILL.md7.6 KB
  • agents/openai.yaml273 B
  • assets/screenshot-small.svg1019 B
  • assets/screenshot.png860 B
  • LICENSE.txt10.5 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 (original)

Review the instructions the agent will receive before you install.

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 <path-to-skill>/scripts/ensure_macos_permissions.sh

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

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

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

Common patterns:

  • Default location (user asked for "a screenshot"):
python3 <path-to-skill>/scripts/take_screenshot.py
  • Temp location (Codex visual check):
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp
  • Explicit location (user provided a path or filename):
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):
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"
  • Specific window title within an app (macOS only):
python3 <path-to-skill>/scripts/take_screenshot.py --app "Codex" --window-name "Settings"
  • List matching window ids before capturing (macOS only):
python3 <path-to-skill>/scripts/take_screenshot.py --list-windows --app "Codex"
  • Pixel region (x,y,w,h):
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):
python3 <path-to-skill>/scripts/take_screenshot.py --mode temp --active-window
  • Specific window id (use --list-windows on macOS to discover ids):
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 <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 -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1

Common patterns:

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

aspnet-core

FreeSummary

Build, review, and refactor ASP.NET Core web applications using official guidance. Helps choose application structure, implement pages and APIs, configure authentication and services, and plan testing, performance improvements, deployment, and version upgrades.

  • Choose an application model for a new project
  • Build pages and HTTP APIs
  • Review authentication and application configuration
openai/skills28.2KUpdated Sep 9, 2026

chatgpt-apps

FreeSummary

Build and troubleshoot ChatGPT apps with an MCP server that exposes tools and an optional interactive widget. Use current official documentation and examples to create scaffolds, configure security settings, and guide local validation and deployment when requested.

  • Create a ChatGPT app scaffold from an official example
  • Design tools and connect an MCP server to a widget
  • Refactor or troubleshoot an existing Apps SDK app
openai/skills28.2KUpdated Sep 9, 2026

cli-creator

FreeSummary

Turn API documentation or existing scripts into reusable command-line tools that Codex can run from any folder. Builds focused read and write commands, consistent JSON output, authentication handling, installation instructions, and a companion skill.

  • Turn an API into reusable commands
  • Make an internal script available from any folder
  • Build a tool for downloading and searching logs
openai/skills28.2KUpdated Sep 9, 2026

Deploy applications and infrastructure on Cloudflare by matching project needs to services such as Workers and Pages. Guides service selection and authentication checks, with references covering storage, AI, networking, security, and infrastructure configuration.

  • Publish a website or application on Cloudflare
  • Deploy serverless functions with Workers
  • Choose storage for databases and files
openai/skills28.2KUpdated Sep 9, 2026

define-goal

FreeSummary

Turn a vague intention into a concrete goal with clear scope, measurable success criteria, and evidence of completion. Check existing goals before creating one, so the agent has a specific outcome to pursue without duplicating active work.

  • Turn a vague intention into a measurable goal
  • Define completion criteria for a bug fix
  • Set performance targets and measurement methods
openai/skills28.2KUpdated Sep 9, 2026

figma

FreeSummary

Turn a linked Figma frame or layer into application code using the Figma MCP server, a connection for accessing design data. Retrieve design details, screenshots, and assets, reuse existing project components, and compare the implementation with the design.

  • Implementing a screen from a Figma frame link
  • Retrieving images and SVG assets from a design
  • Adapting a design to existing project components
openai/skills28.2KUpdated Sep 9, 2026

See all skills by openai

Report a problem with this skill