Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/davila7-screenshot/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 136% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 33% | 0% |
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.
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.
bashbash <path-to-skill>/scripts/ensure_macos_permissions.sh
To avoid multiple sandbox approval prompts, combine preflight + capture in one command when possible:
bashbash <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:
bashbash <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.
Run the helper from the repo root:
bashpython3 <path-to-skill>/scripts/take_screenshot.py
Common patterns:
bashpython3 <path-to-skill>/scripts/take_screenshot.py
bashpython3 <path-to-skill>/scripts/take_screenshot.py --mode temp
bashpython3 <path-to-skill>/scripts/take_screenshot.py --path output/screen.png
bashpython3 <path-to-skill>/scripts/take_screenshot.py --app "Codex"
bashpython3 <path-to-skill>/scripts/take_screenshot.py --app "Codex" --window-name "Settings"
bashpython3 <path-to-skill>/scripts/take_screenshot.py --list-windows --app "Codex"
bashpython3 <path-to-skill>/scripts/take_screenshot.py --mode temp --region 100,200,800,600
--app to capture all windows):bashpython3 <path-to-skill>/scripts/take_screenshot.py --mode temp --active-window
bashpython3 <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.
bashbash <path-to-skill>/scripts/ensure_macos_permissions.sh && \ python3 <path-to-skill>/scripts/take_screenshot.py --app "<App>" --mode temp
--region to isolate a single display when needed.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.
Run the PowerShell helper:
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1
Common patterns:
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Path "C:\Temp\screen.png"
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -Region 100,200,800,600
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -Mode temp -ActiveWindow
powershellpowershell -ExecutionPolicy Bypass -File <path-to-skill>/scripts/take_screenshot.ps1 -WindowHandle 123456
Use these when you cannot run the helpers.
bashscreencapture -x output/screen.png
bashscreencapture -x -R100,200,800,600 output/region.png
bashscreencapture -x -l12345 output/window.png
bashscreencapture -x -i output/interactive.png
bashscrot output/screen.png
bashgnome-screenshot -f output/screen.png
bashimport -window root output/screen.png
bashscrot -a 100,200,800,600 output/region.png
bashimport -window root -crop 800x600+100+200 output/region.png
bashscrot -u output/window.png
bashgnome-screenshot -w -f output/window.png
bash <path-to-skill>/scripts/ensure_macos_permissions.sh first to request Screen Recording in one place.ModuleCache permission errors in a sandboxed run, rerun the command with escalated permissions.--list-windows --app "AppName" and retry with --window-id, and make sure the app is visible on screen.command -v scrot, command -v gnome-screenshot, and command -v import.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→pass | 14,732 | 6,866 | -53% | 1 | 1 | 0% | 2,264 | 3,177 | +40% | 0 | 0 | — |
case-01 | fail→fail | 2,939 | 6,326 | +115% | 1 | 1 | 0% | 345 | 2,332 | +576% | 0 | 0 | — |
case-02 | fail→fail | 3,614 | 6,324 | +75% | 1 | 1 | 0% | 582 | 2,425 | +317% | 0 | 0 | — |
case-03 | fail→fail | 6,246 | 6,530 | +5% | 1 | 1 | 0% | 1,174 | 2,277 | +94% | 0 | 0 | — |
case-04 | fail→pass | 6,512 | 2,481 | -62% | 1 | 1 | 0% | 1,025 | 2,419 | +136% | 0 | 0 | — |
case-05 | fail→pass | 8,686 | 4,015 | -54% | 1 | 1 | 0% | 1,391 | 2,734 | +97% | 0 | 0 | — |
case-07 | fail→pass | 11,572 | 2,939 | -75% | 1 | 1 | 0% | 1,962 | 2,545 | +30% | 0 | 0 | — |
case-08 | fail→pass | 9,528 | 2,631 | -72% | 1 | 1 | 0% | 1,777 | 2,367 | +33% | 0 | 0 | — |
case-09 | fail→pass | 3,662 | 3,523 | -4% | 1 | 1 | 0% | 647 | 2,676 | +314% | 0 | 0 | — |
case-10 | fail→pass | 9,482 | 4,703 | -50% | 1 | 1 | 0% | 1,845 | 2,760 | +50% | 0 | 0 | — |
case-11 | fail→pass | 7,421 | 3,396 | -54% | 1 | 1 | 0% | 1,494 | 2,600 | +74% | 0 | 0 | — |
case-12 | fail→pass | 7,986 | 2,886 | -64% | 1 | 1 | 0% | 1,408 | 2,460 | +75% | 0 | 0 | — |
case-13 | pass→pass | 8,361 | 2,716 | -68% | 1 | 1 | 0% | 1,346 | 2,447 | +82% | 0 | 0 | — |
case-14 | fail→pass | 4,488 | 2,982 | -34% | 1 | 1 | 0% | 818 | 2,560 | +213% | 0 | 0 | — |
case-15 | pass→pass | 3,266 | 1,894 | -42% | 1 | 1 | 0% | 495 | 2,274 | +359% | 0 | 0 | — |
case-16 | pass→pass | 3,511 | 2,260 | -36% | 1 | 1 | 0% | 377 | 2,320 | +515% | 0 | 0 | — |
case-17 | fail→pass | 3,386 | 2,588 | -24% | 1 | 1 | 0% | 608 | 2,458 | +304% | 0 | 0 | — |
case-18 | fail→pass | 12,564 | 4,527 | -64% | 1 | 1 | 0% | 2,009 | 2,804 | +40% | 0 | 0 | — |
case-19 | fail→pass | 15,748 | 4,437 | -72% | 1 | 1 | 0% | 2,527 | 2,790 | +10% | 0 | 0 | — |
case-20 | fail→pass | 15,269 | 2,227 | -85% | 1 | 1 | 0% | 2,296 | 2,408 | +5% | 0 | 0 | — |
case-21 | fail→pass | 9,670 | 8,354 | -14% | 1 | 1 | 0% | 1,671 | 3,316 | +98% | 0 | 0 | — |
case-22 | fail→fail | 7,944 | 8,725 | +10% | 1 | 1 | 0% | 1,371 | 3,681 | +168% | 0 | 0 | — |
case-23 | pass→pass | 10,715 | 4,220 | -61% | 1 | 1 | 0% | 958 | 2,708 | +183% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +65 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.