Files
hyperframes/skills/hyperframes-cli/SKILL.md
T
Vance Ingalls ad2d63db32 feat(cli): skill install targets + remove custom install in favor of vercel-labs/skills (#177)
## Summary

**Skill install targets (original):**
- Add project-level skill install targets: Windsurf, Cline, Roo Code, Trae (opt-in via flag)
- Split install logic into global vs project-level
- Fix lint false positive: timed tags with `data-composition-id` no longer flagged by media rule

**Skill system cleanup (folded from #189):**
- Delete `install-skills.ts` (~485 lines) — remove custom installation wrapper entirely
- Strip skill logic from `init` — no more project-level `.claude/skills/` copies, no `--skip-skills` flag; replaced with post-scaffold message: `npx skills add heygen-com/hyperframes`
- Front-load SKILL.md trigger words — all 5 skill descriptions rewritten so activation language comes first (~150 chars)
- Update CLAUDE.md — install instructions now point to [vercel-labs/skills](https://github.com/vercel-labs/skills)
- Fix `.claude/settings.json` — pre-commit hook changed from `pnpm` to `bun`

## Test plan

- [ ] `npx hyperframes skills` → "Unknown command skills"
- [ ] `npx hyperframes init test --template blank --non-interactive --skip-transcribe` → prints `npx skills add heygen-com/hyperframes`
- [ ] `grep -r "install-skills" packages/cli/src/` → no results
- [ ] All 5 `skills/*/SKILL.md` have front-loaded descriptions

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-04-02 00:47:25 -07:00

5.7 KiB

name, description
name description
hyperframes-cli Preview, render, lint, validate, scaffold, or troubleshoot HyperFrames compositions. Also use after finishing a composition — lint and preview are the natural next steps.

HyperFrames CLI

The CLI turns HTML compositions into previews and rendered video. Everything runs through npx hyperframes.

npx hyperframes <command>

Requires Node.js >= 22 and FFmpeg. Run npx hyperframes doctor if anything fails.

Workflow

The natural sequence when building a composition:

  1. Scaffoldnpx hyperframes init my-video (new projects only)
  2. Write — author HTML composition (see compose-video skill)
  3. Lintnpx hyperframes lint to catch structural errors
  4. Previewnpx hyperframes preview to see it live in the studio
  5. Rendernpx hyperframes render to export video

Lint before preview. It catches missing data-composition-id, overlapping tracks on the same data-track-index, unregistered timelines, and other structural issues that silently produce broken output. A 2-second lint saves minutes debugging a blank screen. Both preview and render auto-lint, but linting explicitly after editing gives you a chance to fix issues without waiting for the server or renderer to spin up.

Scaffolding New Projects

npx hyperframes init my-video                        # interactive wizard
npx hyperframes init my-video --template warm-grain   # pick a template
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 — the template includes boilerplate that's easy to forget.

Linting

npx hyperframes lint                  # current directory
npx hyperframes lint ./my-project     # specific project
npx hyperframes lint --verbose        # include info-level findings
npx hyperframes lint --json           # machine-readable output for scripting

Lints index.html and all files in compositions/. Reports errors (must fix), warnings (should fix), and info (with --verbose).

When to lint:

  • After writing or editing any composition file — always
  • Before rendering — render blocks on errors with --strict, but linting first is faster
  • After timing changes — overlapping clips on the same track are a common mistake

Previewing in the Studio

npx hyperframes preview                   # serve current directory
npx hyperframes preview ./my-project      # specific project
npx hyperframes preview --port 4567       # custom port (default 3002)

Opens the studio in your browser automatically. Hot-reloads on file changes. Run from the project root (directory containing index.html).

Rendering to Video

npx 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 -o hd.mp4      # high quality
npx hyperframes render --format webm -o overlay.webm          # transparent WebM
npx hyperframes render --docker -o deterministic.mp4          # reproducible
Flag Options Default Notes
--output path renders/name_timestamp.mp4 Output file path
--fps 24, 30, 60 30 60fps doubles render time
--quality draft, standard, high standard Use draft while iterating
--format mp4, webm mp4 WebM supports transparency
--workers 1-8 or auto auto (half CPU cores, max 4) Each spawns a Chrome process
--docker flag off Byte-identical output across machines
--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 on timing and layout — fast feedback
  • standard for review and most deliverables
  • high only for final delivery where render time doesn't matter

Troubleshooting

npx hyperframes doctor       # check environment (Chrome, FFmpeg, Node, memory, disk)
npx hyperframes browser      # manage bundled Chrome installation
npx hyperframes info         # version and environment details
npx hyperframes upgrade      # check for updates

Run doctor first if rendering fails or produces unexpected results. Common issues:

  • Missing FFmpeg → brew install ffmpeg
  • Missing Chrome → npx hyperframes browser ensure
  • Low memory → close other apps (each render worker uses ~256MB)

Other Commands

npx hyperframes compositions   # list compositions in current project
npx hyperframes docs           # open documentation in browser
npx hyperframes benchmark .    # benchmark render performance