seer-skill
Visual feedback capture skill for macOS app windows.

Support
Demo

Full video: assets/seer-demo.mov
Features
- Precise capture of a visible macOS app window
- Window video capture + frame extraction
- ffmpeg-backed full-display recording with manual stop for long QA runs
- UI mockups by annotating screenshots (arrow, rectangle, text)
- Excalidraw scene generation (
.excalidraw) from natural language prompts
- Scripted visual loop support (diffs, baselines, reports)
- Organized output layout under
.seer/ with latest artifacts
Install
Codex (skill-installer UI):
- Run
$skill-installer
- Ask: install GitHub repo
w00ing/seer-skill path seer
Claude Code (plugin):
/plugin marketplace add w00ing/seer-skill
/plugin install seer-skill@seer
- If the marketplace was previously added, run
/plugin marketplace update seer before installing to pick up updates.
- If you see an SSH clone error, add the marketplace via HTTPS instead:
/plugin marketplace add https://github.com/w00ing/seer-skill.git
Manual (Codex):
mkdir -p ~/.codex/skills
git clone https://github.com/w00ing/seer-skill.git /tmp/seer-skill
rsync -a /tmp/seer-skill/skills/seer/ ~/.codex/skills/seer/
Manual (Claude Code):
mkdir -p ~/.claude/skills
git clone https://github.com/w00ing/seer-skill.git /tmp/seer-skill
rsync -a /tmp/seer-skill/skills/seer/ ~/.claude/skills/seer/
Use
- Skill name:
seer
- Script:
skills/seer/scripts/capture_app_window.sh
- Script:
skills/seer/scripts/record_app_window.sh
- Script:
skills/seer/scripts/record_screen.sh
- Script:
skills/seer/scripts/extract_frames.sh
- Script:
skills/seer/scripts/summarize_video.sh
- Script:
skills/seer/scripts/type_into_app.sh
- Script:
skills/seer/scripts/mockup_ui.sh
- Script:
skills/seer/scripts/excalidraw_from_text.py
- Script:
skills/seer/scripts/annotate_image.py
- Default output:
.seer/capture/app-window-<app>-YYYYMMDD-HHMMSS-<pid>-<rand>.png
- Set
SEER_OUT_DIR to change default output root (falls back to SEER_TMP_DIR for legacy behavior)
- Installed paths (Codex/Claude Code):
~/.codex/skills/seer/scripts or ~/.claude/skills/seer/scripts
Window capture
Capture the frontmost app window (or a named process) as a precise PNG. Output is organized under .seer/capture/ with app‑slugged filenames for easy tracking.
Window recording + frames
Record a window region to .mov and extract frames for granular analysis.
Screen recording
Record the full screen (or a specified region/display) to .mov, or use ffmpeg for direct .mp4 capture with manual stop.
Video summary (representative frames)
Extract representative frames from a video using scene detection, keyframes, or fixed FPS. Optionally render a contact sheet or preview GIF.
Summary flags (when using record_app_window.sh --summary):
--summary-mode <scene|fps|keyframes>: selection strategy (default: scene)
--summary-scene <threshold>: scene-change sensitivity (default: 0.30)
--summary-fps <n>: sampling rate for fps mode (default: 2)
--summary-max <n>: cap frame count (default: 24, 0 disables cap)
--summary-out <dir>: output folder
--summary-sheet: create sheet.png contact sheet
--summary-sheet-cols <n>: contact sheet columns (default: auto)
--summary-gif: create preview.gif
--summary-gif-width <px>: GIF max width (default: 640)
UI mockups (annotations)
Create lightweight UI mockups by drawing arrows, rectangles, and text on a capture using a JSON spec. Output images + spec + metadata are saved together under .seer/mockup/.
Excalidraw wireframes (NL → .excalidraw)
Generate an Excalidraw scene file from a simple, structured natural-language prompt. By default, it will use a bundled UI component library (if present) to render nicer headers/inputs/buttons/tabs automatically.
Docs: docs/excalidraw-wireframing.md
Visual diff loop
Maintain baselines and compare current UI to previous snapshots with diffs and JSON reports. Useful for quick visual regressions or confirming UI changes.
Organized artifacts
Every mockup run stores capture, spec, output, and metadata, plus latest-* convenience copies per app slug for fast access.