Install any skill in seconds. Free to start, no credit card required.
Get Started Free →HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.
.claude/skills/cowork-os-hyperframes-cli/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 5% | 0% |
Everything runs through npx hyperframes. Requires Node.js >= 22 and FFmpeg.
npx hyperframes init my-videohyperframes skill)npx hyperframes lintnpx hyperframes previewnpx hyperframes renderLint before preview — catches missing data-composition-id, overlapping tracks, unregistered timelines.
bashnpx hyperframes init my-video # interactive wizard npx hyperframes init my-video --example warm-grain # pick an example npx hyperframes init my-video --video clip.mp4 # with video file npx hyperframes init my-video --audio track.mp3 # with audio file npx hyperframes init my-video --non-interactive # skip prompts (CI/agents)
Templates: blank, warm-grain, play-mode, swiss-grid, vignelli, decision-tree, kinetic-type, product-promo, nyt-graph.
init creates the right file structure, copies media, transcribes audio with Whisper, and installs AI coding skills. Use it instead of creating files by hand.
bashnpx hyperframes lint # current directory npx hyperframes lint ./my-project # specific project npx hyperframes lint --verbose # info-level findings npx hyperframes lint --json # machine-readable
Lints index.html and all files in compositions/. Reports errors (must fix), warnings (should fix), and info (with --verbose).
bashnpx hyperframes preview # serve current directory npx hyperframes preview --port 4567 # custom port (default 3002)
Hot-reloads on file changes. Opens the studio in your browser automatically.
bashnpx hyperframes render # standard MP4 npx hyperframes render --output final.mp4 # named output npx hyperframes render --quality draft # fast iteration npx hyperframes render --fps 60 --quality high # final delivery npx hyperframes render --format webm # transparent WebM npx hyperframes render --docker # byte-identical
| Flag | Options | Default | Notes | | -------------- | --------------------- | -------------------------- | --------------------------- | | --output | path | renders/name_timestamp.mp4 | Output path | | --fps | 24, 30, 60 | 30 | 60fps doubles render time | | --quality | draft, standard, high | standard | draft for iterating | | --format | mp4, webm | mp4 | WebM supports transparency | | --workers | 1-8 or auto | auto | Each spawns Chrome | | --docker | flag | off | Reproducible output | | --gpu | flag | off | GPU-accelerated encoding | | --strict | flag | off | Fail on lint errors | | --strict-all | flag | off | Fail on errors AND warnings |
Quality guidance: draft while iterating, standard for review, high for final delivery.
bashnpx hyperframes transcribe audio.mp3 npx hyperframes transcribe video.mp4 --model medium.en --language en npx hyperframes transcribe subtitles.srt # import existing npx hyperframes transcribe subtitles.vtt npx hyperframes transcribe openai-response.json
bashnpx hyperframes tts "Text here" --voice af_nova --output narration.wav npx hyperframes tts script.txt --voice bf_emma npx hyperframes tts --list # show all voices
bashnpx hyperframes doctor # check environment (Chrome, FFmpeg, Node, memory) npx hyperframes browser # manage bundled Chrome npx hyperframes info # version and environment details npx hyperframes upgrade # check for updates
Run doctor first if rendering fails. Common issues: missing FFmpeg, missing Chrome, low memory.
bashnpx hyperframes compositions # list compositions in project npx hyperframes docs # open documentation npx hyperframes benchmark . # benchmark render performance
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 8,533 | 6,508 | -24% | 1 | 1 | 0% | 1,580 | 2,259 | +43% | 0 | 0 | — |
case-02 | fail→pass | 6,582 | 4,843 | -26% | 1 | 1 | 0% | 1,117 | 1,976 | +77% | 0 | 0 | — |
case-03 | fail→pass | 7,369 | 2,664 | -64% | 1 | 1 | 0% | 1,271 | 1,523 | +20% | 0 | 0 | — |
case-04 | fail→pass | 9,762 | 2,389 | -76% | 1 | 1 | 0% | 1,589 | 1,368 | -14% | 0 | 0 | — |
case-05 | fail→pass | 7,634 | 2,198 | -71% | 1 | 1 | 0% | 1,376 | 1,438 | +5% | 0 | 0 | — |
case-06 | fail→pass | 7,896 | 2,634 | -67% | 1 | 1 | 0% | 1,482 | 1,361 | -8% | 0 | 0 | — |
case-07 | fail→pass | 9,397 | 2,314 | -75% | 1 | 1 | 0% | 1,509 | 1,370 | -9% | 0 | 0 | — |
case-08 | fail→pass | 8,640 | 1,496 | -83% | 1 | 1 | 0% | 1,469 | 1,320 | -10% | 0 | 0 | — |
case-09 | fail→pass | 12,656 | 3,159 | -75% | 1 | 1 | 0% | 2,316 | 1,598 | -31% | 0 | 0 | — |
case-10 | fail→pass | 14,920 | 2,258 | -85% | 1 | 1 | 0% | 2,392 | 1,348 | -44% | 0 | 0 | — |
case-11 | pass→pass | 7,099 | 2,016 | -72% | 1 | 1 | 0% | 1,304 | 1,273 | -2% | 0 | 0 | — |
case-12 | fail→pass | 9,605 | 2,204 | -77% | 1 | 1 | 0% | 1,697 | 1,384 | -18% | 0 | 0 | — |
case-13 | fail→pass | 3,971 | 1,801 | -55% | 1 | 1 | 0% | 564 | 1,316 | +133% | 0 | 0 | — |
case-14 | fail→pass | 11,730 | 3,450 | -71% | 1 | 1 | 0% | 2,000 | 1,518 | -24% | 0 | 0 | — |
case-15 | fail→pass | 8,041 | 1,580 | -80% | 1 | 1 | 0% | 1,437 | 1,260 | -12% | 0 | 0 | — |
case-16 | fail→fail | 8,488 | 1,547 | -82% | 1 | 1 | 0% | 1,398 | 1,232 | -12% | 0 | 0 | — |
case-17 | fail→pass | 11,039 | 1,677 | -85% | 1 | 1 | 0% | 2,084 | 1,228 | -41% | 0 | 0 | — |
case-18 | fail→pass | 4,714 | 1,895 | -60% | 1 | 1 | 0% | 686 | 1,296 | +89% | 0 | 0 | — |
case-19 | fail→pass | 13,672 | 1,575 | -88% | 1 | 1 | 0% | 2,429 | 1,199 | -51% | 0 | 0 | — |
case-20 | fail→pass | 4,865 | 1,835 | -62% | 1 | 1 | 0% | 715 | 1,223 | +71% | 0 | 0 | — |
case-21 | pass→pass | 7,735 | 5,339 | -31% | 1 | 1 | 0% | 1,301 | 2,051 | +58% | 0 | 0 | — |
case-22 | pass→pass | 8,648 | 5,909 | -32% | 1 | 1 | 0% | 1,548 | 2,239 | +45% | 0 | 0 | — |
case-23 | pass→pass | 7,774 | 4,178 | -46% | 1 | 1 | 0% | 1,385 | 1,821 | +31% | 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. The headline lift of +78 percentage points is the difference between those two pass rates over the 23 comparable cases.
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.