major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
140 lines (110 loc) • 7.81 kB
Markdown
name: shottr
description: "Configure Shottr capture and OCR workflows on macOS and investigate scrolling-capture or graphics issues."
category: macos
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["shottr", "macos-screen-capture", "screencapturekit", "vision-framework-ocr", "metal-rendering", "scrolling-screenshot", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Shottr macOS Screen Capture & Annotation AI Skill Guide (Claude)
## Overview & Engine Architecture
Shottr is an ultra-fast, lightweight macOS screenshot and annotation utility engineered in native Swift. It harnesses Apple's modern **`ScreenCaptureKit`** framework for zero-latency frame capture, uses **Metal hardware acceleration** for instant raster rendering and vector annotation overlays, and embeds the Apple **Vision Framework (`VNRecognizeTextRequest`)** for on-device Live Text optical character recognition (OCR) and object erasure. Shottr includes an automated **Scrolling Capture vertical image stitcher**, precise **on-screen pixel rulers**, and irreversible **lossy pixelation / blur filters**. Claude operates as a Principal macOS Graphics Engineer and Image Processing Specialist, specializing in **ScreenCaptureKit frame capture**, **Vision OCR extraction pipelines**, **TCC Screen Recording permissions**, and **automated screencapture scripting**.
### Shottr Core Architecture & Metal Pipeline Stack
```
┌─────────────────────────────────────────────────────────────┐
│ Shottr Engine Architecture │
│ │
│ Capture & Frame Ingestion Tier │
│ ├── Apple `ScreenCaptureKit` Hardware Frame Ingestion │
│ ├── Window ID / Display Stream Selector (`CGWindowList...`)│
│ └── Scrolling Capture Image Stitcher (Feature Matching) │
│ │
│ Image Processing & Vision AI Core │
│ ├── Apple Vision Framework OCR (`VNRecognizeTextRequest`) │
│ ├── Metal Compute Shader Pipeline (Pixelation & Fast Blur) │
│ └── Pixel Ruler & Delta-E Color Inspector │
│ │
│ Annotation & Export Subsystem │
│ ├── Vector Annotation Engine (Arrows, Text, Number Pins) │
│ ├── Direct Clipboard Injection (`NSPasteboard.writeObjects`│
│ └── Lossless OptiPNG / WebP / JPEG Image Encoder │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **ScreenCaptureKit & Frame Capture Scripting**: Construct Swift and Python scripts utilizing native macOS screenshot APIs to capture specific display rects and windows without UI artifacts.
2. **Vision Framework Live Text Extraction**: Implement automated OCR routines converting screen bounding boxes into structured, searchable text.
3. **Screen Recording TCC Permissions Diagnostics**: Resolve blank/wallpaper-only capture anomalies by auditing macOS Screen Recording permissions in `TCC.db`.
4. **Scrolling Screenshot Stitching Optimization**: Advise users on optimal scrolling capture velocity to avoid duplicated sticky headers and visual seams.
## Production Swift Automation: Headless Screen Capture & Vision OCR Pipeline
Save this file as `screen_capture_ocr.swift` and execute via `swift screen_capture_ocr.swift`:
```swift
// ==============================================================================
// Standalone Swift 5.x Script: Screen Capture & On-Device Vision OCR
// Captures main display bounds and extracts printed text using Apple Vision.
// ==============================================================================
import Cocoa
import Vision
// 1. Capture Main Screen Image using CoreGraphics
guard let mainDisplay = CGMainDisplayID() as CGDirectDisplayID? else {
print("Error: Could not obtain main display ID.")
exit(1)
}
guard let screenshot = CGDisplayCreateImage(mainDisplay) else {
print("🚨 Error: Screen capture failed. Ensure Terminal has Screen Recording permissions in System Settings.")
exit(1)
}
print("--- [CAPTURED SCREENSHOT: \(screenshot.width)x\(screenshot.height) px] ---")
// 2. Perform On-Device Live Text OCR via Vision Framework
let requestHandler = VNImageRequestHandler(cgImage: screenshot, options: [:])
let request = VNRecognizeTextRequest { (req, error) in
guard let observations = req.results as? [VNRecognizedTextObservation] else {
print("No text detected on screen.")
return
}
print("\n--- [EXTRACTED ON-SCREEN TEXT VIA APPLE VISION OCR] ---")
for observation in observations {
guard let topCandidate = observation.topCandidates(1).first else { continue }
if topCandidate.confidence > 0.5 {
print("• \(topCandidate.string)")
}
}
}
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
do {
try requestHandler.perform([request])
print("\n✅ OCR processing complete.")
} catch {
print("Failed to perform OCR: \(error)")
}
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Captured Screenshot Shows Only Desktop Wallpaper** | macOS Screen Recording (TCC) permission not granted to Shottr. | 1. Open *System Settings $\rightarrow$ Privacy & Security $\rightarrow$ Screen Recording*.<br>2. Toggle **Shottr** ON.<br>3. Quit and relaunch Shottr. |
| **Scrolling Capture Generates Jagged / Repeated Bands** | Webpage has fixed/sticky CSS navigation headers or trackpad scroll speed was too rapid. | 1. Scroll at a steady, moderate pace.<br>2. In Shottr Scrolling window, check **Ignore Fixed Headers**.<br>3. Or capture full-page screenshot directly in browser developer tools (`Cmd+Shift+P -> Capture full size screenshot`). |
| **Pixel Ruler Measures Wrong Dimensions on External Display** | Mixed-DPI display setup (e.g. 2x Retina MacBook display paired with 1x 1080p monitor). | Shottr automatically adjusts point-to-pixel scales; ensure display scaling is set to default in System Settings. |
| **Live Text OCR Returns Gibberish / Symbols** | Target text rendered in low-contrast decorative typeface or non-Latin script. | Zoom into target image before triggering OCR or set recognition level to Accurate in preferences. |
## Command Line Syntax & macOS Screen Capture Recipes
```bash
# 1. Capture Interactive Rectangle Selection via macOS Native CLI
screencapture -i -c
# 2. Capture Entire Display Silently to Clipboard
screencapture -x -c
# 3. Read Shottr User Preferences via defaults CLI
defaults read cc.ffitch.shottr
```
### Essential File Locations
- **Preferences Plist**: `~/Library/Preferences/cc.ffitch.shottr.plist`
- **Application Support Cache**: `~/Library/Application Support/Shottr/`
- **TCC Screen Capture Service ID**: `kTCCServiceScreenCapture`
## Agent Operational Directive
> **MANDATORY**: When screenshots capture only empty desktop wallpaper without application windows, immediately guide the user to verify macOS Screen Recording permissions in System Settings $\rightarrow$ Privacy & Security.