prompt-lookup
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
Screen-Studio-style post-production for screen recordings, headless — auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9:16 vertical export that follows the action. Use when polishing a screen recording / demo video for
Claude Code
$ npx -y skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill --agent claude-code
Codex
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a codex -y
Cursor
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a cursor -y
Gemini CLI
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a gemini-cli -y
GitHub Copilot
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a github-copilot -y
OpenCode
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a opencode -y
Windsurf
$ npx skills add connerkward/screenstudio-alt-skill --skill screenstudio-alt-skill -a windsurf -y
name: screenstudio-alt description: Screen-Studio-style post-production for screen recordings, headless — auto speed-up of idle, auto-zoom on click clusters, keystroke overlay chips, smoothed synthetic cursor, and 9:16 vertical export that follows the action. Use when polishing a screen recording / demo video for sharing, when the user mentions Screen Studio, auto-zoom, idle speed-up, or vertical/social video from a screen capture, and for any social-facing demo (vertical output is the default for those). author: Conner K Ward
The skill's code lives in this directory (`polish.py`, `render.py`, `studio.py`, `events-log.swift`, test fixtures, etc.). Published publicly as `connerkward/screenstudio-alternative-skill`.
Two components:
drops keys during macOS secure input). Runs ONLY while recording. Needs Accessibility/Input Monitoring for the terminal. **Auto-zoom/keys/cursor need this data at capture time — it cannot be recovered from pixels later.**
python3 src/polish.py in.mp4 --events in.events.jsonl \ --speedup # compress idle (input-gap ∩ frozen-pixels; animations stay 1x) --zoom # eased auto-zoom on click clusters (zoompan) --keys # accumulating keystroke chips (PIL overlays, no drawtext dep) --smooth-cursor # synthetic eased cursor (best with sck-record --no-cursor) --vertical # ALSO emit 1080x1920 following the action
`--speedup` works WITHOUT events (freezedetect only) — usable on the whole existing dailies corpus.
spring-physics camera over the original high-res frames, LANCZOS into a smaller target (crisp zoom, ~1.3× sharper than the ffmpeg upscale path), 60fps, H + 9:16 V. Tunable `--freq`/`--zeta` (spring), `--fps`, `--target-w`. Takes explicit `--regions [{t0,t1,z,cx,cy}]` — plus optional `cx1,cy1,z1` end-keyframe per region: when present the camera **pans** (eases start→end across the held span, `ease_traj`). `polish.py` is the older ffmpeg-filter fallback.
source duration, never rescales → upstream always planted): zoom regions are draggable blocks (move / retime edges / click to add / double-click delete). Selecting a zoom shows a **draggable crop-rect overlay on the preview** (reframe where the zoom looks: drag body = move cx/cy, corner handle = zoom level). **+ pan** adds a second END keyframe → a two-keyframe camera move: start rect (solid) + end rect (dashed) + a path arrow on the preview, a `[ Start | End ]` toggle picks which the drag edits, and scrubbing interpolates the pan live (same `ease_traj` as the export). Idle spans are **speed blocks with rate-only editing** — source range locked, rate set via inspector slider on select or right-edge **rate-stretch** drag (FCP retime / Premiere Rate Stretch); rate changes ripple downstream only. Camera easing is **smootherstep ease-in-out by default** (full ease, no constant-velocity middle — cinematic slow-start/smooth-middle/gentle-stop on zoom AND pan); Advanced section exposes an **easing curve** selector (Smooth · Snappy · Linear) + smoothness/ramp slider (`--curve`/`--ramp`, persisted in session.json, preview == export). Tunable default zoom, aspect, frame styling. Always-smooth synthetic cursor + click ripple + real recorded click sound (CC0 #735771). Export uses render.py. Free port, local. (Keystroke overlay exists in the engine but is off by default.)
`screencast.sh --demo` (screencast skill) does the whole chain: starts the event logger, records, then polishes + emits the 9:16 vertical automatically. Vertical is the DEFAULT for social-facing demos.
per-frame exprs). That's why zoom uses `zoompan` (no `t` var there — use `on/FPS`).
PNGs + `overlay`.
events.jsonl — validate any change against it before trusting real footage.
conversion judders on the auto-zoom (a frozen frame wedged mid-motion); use `test/record-demo.js` instead.
logical timeline frame-by-frame against the live page (not `recordVideo`), so every output frame is captured exactly once → perfect CFR, no judder. See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for mechanism + usage.
Callouts are read one at a time. **Two text callouts must never overlap in output time, and must not be closely spaced** — only one on screen at a time, with a clear gap (~0.3s+) between them so each is legible before the next appears. Rules:
bar, nav, or the result/image being shown. A callout covering the thing it points at is worse than none.
**extend the callout's window** so it survives the compression (a callout inside a 5× block is gone in a blink otherwise).
(Burn 2026-06-18: five callouts set with overlapping windows, sitting on top of the results, too brief over a sped-up idle — read as clutter; the features didn't register.)
screenstudio-alt — an open-source headless Screen Studio alternative (Claude Code skill): auto-zoom, idle speed-up, vertical export.
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…