Skill Tracer
Skills › HyperFrames › hyperframes-cli › init-and-scaffold.md

init-and-scaffold.md

75 lines · skills/hyperframes-cli/references/init-and-scaffold.md at a595755

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# init, capture, skills
2
3<!-- registry-items: allow=blank,landscape-4k,portrait-4k,square-4k,media-use -->
4
5Scaffolding commands. Use these instead of creating files by hand — they set up the right file structure, copy media, and run transcription.
6

init, capture, skills

<!-- registry-items: allow=blank,landscape-4k,portrait-4k,square-4k,media-use -->

Scaffolding commands. Use these instead of creating files by hand — they set up the right file structure, copy media, and run transcription.

Raw lines 1 to 6
7## init
8
9```bash
10npx hyperframes init my-video --skip-skills # centered blank (TTY: wizard)
11npx hyperframes init my-video --skip-skills --example warm-grain # pick an example
12npx hyperframes init my-video --skip-skills --resolution portrait
13npx hyperframes init my-video --skip-skills --video clip.mp4 # with video file
14npx hyperframes init my-video --skip-skills --audio track.mp3 # with audio file
15npx hyperframes init my-video --skip-skills --tailwind # Tailwind v4 browser runtime
16npx hyperframes init my-video --skip-skills --non-interactive # CI — flag-only, same blank
17```
19**Default depends on TTY**: in a terminal, the CLI prompts for example/options (default: centered blank). Outside a TTY (CI, agents, piped output) it auto-switches to non-interactive and scaffolds that blank. Pass `--example` only to start from a named example. Pass `--non-interactive` to force flag-only mode on a TTY.
21Templates: `blank`, `warm-grain`, `play-mode`, `swiss-grid`, `vignelli`, `decision-tree`, `kinetic-type`, `product-promo`, `nyt-graph`. (The closed set of `hyperframes:example` items in `registry/registry.json` plus the bundled `blank` template. `hyperframes catalog` does not list examples — its `--type` takes only `block` or `component` — so this list has no live equivalent and is checked by `bun run lint:skills`.)
23Other useful flags:
25- `--resolution` — preset: `landscape` (1920×1080), `portrait` (1080×1920), `landscape-4k`, `portrait-4k`, `square` (1080×1080), `square-4k`. Aliases: `1080p`, `4k`, `uhd`, `1080p-square`, `4k-square`.
26- `--skill=<slug>` — record the owning skill (e.g. `hyperframes`) in `hyperframes.json`, so every later render of this project — re-renders, `npm run render`, `--batch` — is attributed to it on usage telemetry without re-passing the flag. You rarely pass it by hand.
27- `--skip-skills` — leave AI coding skills alone: `init` does not install the core set. `HYPERFRAMES_SKIP_SKILLS=1` does the same. Always pass it: without it `init` installs any missing core skill, and installing skills is the person's step. When a core skill is missing, tell the person they can install it with `npx hyperframes skills update`.
28- `--skip-transcribe` — don't auto-transcribe `--audio` / `--video` with Whisper.
29- `--model`, `--language` — Whisper model / language for the auto-transcription.
31**Tailwind** (`--tailwind`): the scaffold pins the Tailwind v4 browser runtime, not Studio's Tailwind v3 setup.
33- Keep the pinned runtime; never swap in `cdn.tailwindcss.com`. Renders wait for `window.__tailwindReady` before frame 0. For offline or locked-down renders, compile to CSS and ship the stylesheet.
34- Theme and custom utilities go in `<style type="text/tailwindcss">` with `@theme` and `@utility`. No v3 `@tailwind base/components/utilities`, no `tailwind.config.js`; `@config` and `@plugin` abort the browser compile.
35- Write complete class tokens in the HTML. The runtime only sees classes it can scan, so never build a render-critical class name at seek time (`bg-${color}-500`); vary items through CSS variables (`style="--i: 2"`) or data variants.
36- Tailwind is for static layout and style; timing stays in GSAP or another seekable runtime.
38When `--audio` or `--video` is supplied, `init` transcribes the file with Whisper. For voice/model selection see the `media-use` skill.

init

npx hyperframes init my-video --skip-skills                      # centered blank (TTY: wizard)
npx hyperframes init my-video --skip-skills --example warm-grain # pick an example
npx hyperframes init my-video --skip-skills --resolution portrait
npx hyperframes init my-video --skip-skills --video clip.mp4     # with video file
npx hyperframes init my-video --skip-skills --audio track.mp3    # with audio file
npx hyperframes init my-video --skip-skills --tailwind           # Tailwind v4 browser runtime
npx hyperframes init my-video --skip-skills --non-interactive    # CI — flag-only, same blank

Default depends on TTY: in a terminal, the CLI prompts for example/options (default: centered blank). Outside a TTY (CI, agents, piped output) it auto-switches to non-interactive and scaffolds that blank. Pass --example only to start from a named example. Pass --non-interactive to force flag-only mode on a TTY.

Templates: blank, warm-grain, play-mode, swiss-grid, vignelli, decision-tree, kinetic-type, product-promo, nyt-graph. (The closed set of hyperframes:example items in registry/registry.json plus the bundled blank template. hyperframes catalog does not list examples — its --type takes only block or component — so this list has no live equivalent and is checked by bun run lint:skills.)

Other useful flags:

  • --resolution — preset: landscape (1920×1080), portrait (1080×1920), landscape-4k, portrait-4k, square (1080×1080), square-4k. Aliases: 1080p, 4k, uhd, 1080p-square, 4k-square.
  • --skill=<slug> — record the owning skill (e.g. hyperframes) in hyperframes.json, so every later render of this project — re-renders, npm run render, --batch — is attributed to it on usage telemetry without re-passing the flag. You rarely pass it by hand.
  • --skip-skills — leave AI coding skills alone: init does not install the core set. HYPERFRAMES_SKIP_SKILLS=1 does the same. Always pass it: without it init installs any missing core skill, and installing skills is the person's step. When a core skill is missing, tell the person they can install it with npx hyperframes skills update.
  • --skip-transcribe — don't auto-transcribe --audio / --video with Whisper.
  • --model, --language — Whisper model / language for the auto-transcription.

Tailwind (--tailwind): the scaffold pins the Tailwind v4 browser runtime, not Studio's Tailwind v3 setup.

  • Keep the pinned runtime; never swap in cdn.tailwindcss.com. Renders wait for window.__tailwindReady before frame 0. For offline or locked-down renders, compile to CSS and ship the stylesheet.
  • Theme and custom utilities go in <style type="text/tailwindcss"> with @theme and @utility. No v3 @tailwind base/components/utilities, no tailwind.config.js; @config and @plugin abort the browser compile.
  • Write complete class tokens in the HTML. The runtime only sees classes it can scan, so never build a render-critical class name at seek time (bg-${color}-500); vary items through CSS variables (style="--i: 2") or data variants.
  • Tailwind is for static layout and style; timing stays in GSAP or another seekable runtime.

When --audio or --video is supplied, init transcribes the file with Whisper. For voice/model selection see the media-use skill.

Raw lines 7 to 39
Names a skill hyperframes :26
Names a skill media-use :38
40## capture
42```bash
43npx hyperframes capture https://stripe.com # scaffold from a website
44npx hyperframes capture https://linear.app -o linear-video # custom output directory
45npx hyperframes capture https://example.com --json # JSON output for agents
46npx hyperframes capture https://example.com --skip-assets # skip image/SVG download
47npx hyperframes capture https://example.com --skip-vision # skip optional AI captions
48npx hyperframes capture https://example.com --max-screenshots 12
49npx hyperframes capture https://example.com --timeout 60000 # page-load timeout in ms
50npx hyperframes capture https://example.com --capture-budget 90000 # post-navigation budget
51HYPERFRAMES_CAPTURE_PROXY=http://127.0.0.1:3128 npx hyperframes capture https://example.com # behind an egress proxy
52```
54Captures a live URL as an editable HyperFrames project: screenshots become layered scenes, assets are downloaded locally, and the result is a normal project you can `lint` / `preview` / `render`. Use this when the user supplies a URL as the starting point for a video.
56`--timeout` bounds page navigation; `--capture-budget` is the separate cooperative budget for work
57after navigation (fonts, assets, vision, and contact sheets). The latter is not a hard wall-clock
58watchdog and cannot interrupt native work already in flight. An outer caller deadline is therefore a
59third, distinct timeout. An outer caller timeout leaves the capture result unknown; it does not prove
60HyperFrames hung or that the navigation timeout should be increased. Preserve the last phase and
61classify the boundary that fired. `--skip-vision` disables only optional AI image captioning.
63For agents, use `--json`. The result includes `ok`, warnings, and `lastPhase`. The command also emits
64stable `HYPERFRAMES_CAPTURE_PHASE` records so a watchdog can report the last started, completed, or
65degraded phase without retaining sensitive payloads.
67Treat a non-zero exit, JSON `ok: false`, or an output `BLOCKED.md` as a **hard stop**. Do not render,
68build, or infer brand/design data from partial files in a blocked capture. A successful capture may
69degrade an optional phase within budget, but its structural output still has to be usable. Exit zero and file existence alone are not semantic success: require the current
70invocation's JSON `ok: true`, no `BLOCKED.md`, and artifacts usable for the video. Run each retry
71into a fresh output directory; never merge or reuse a blocked attempt's partial output.

capture

npx hyperframes capture https://stripe.com                  # scaffold from a website
npx hyperframes capture https://linear.app -o linear-video  # custom output directory
npx hyperframes capture https://example.com --json          # JSON output for agents
npx hyperframes capture https://example.com --skip-assets   # skip image/SVG download
npx hyperframes capture https://example.com --skip-vision   # skip optional AI captions
npx hyperframes capture https://example.com --max-screenshots 12
npx hyperframes capture https://example.com --timeout 60000 # page-load timeout in ms
npx hyperframes capture https://example.com --capture-budget 90000 # post-navigation budget
HYPERFRAMES_CAPTURE_PROXY=http://127.0.0.1:3128 npx hyperframes capture https://example.com # behind an egress proxy

Captures a live URL as an editable HyperFrames project: screenshots become layered scenes, assets are downloaded locally, and the result is a normal project you can lint / preview / render. Use this when the user supplies a URL as the starting point for a video.

--timeout bounds page navigation; --capture-budget is the separate cooperative budget for work after navigation (fonts, assets, vision, and contact sheets). The latter is not a hard wall-clock watchdog and cannot interrupt native work already in flight. An outer caller deadline is therefore a third, distinct timeout. An outer caller timeout leaves the capture result unknown; it does not prove HyperFrames hung or that the navigation timeout should be increased. Preserve the last phase and classify the boundary that fired. --skip-vision disables only optional AI image captioning.

For agents, use --json. The result includes ok, warnings, and lastPhase. The command also emits stable HYPERFRAMES_CAPTURE_PHASE records so a watchdog can report the last started, completed, or degraded phase without retaining sensitive payloads.

Treat a non-zero exit, JSON ok: false, or an output BLOCKED.md as a hard stop. Do not render, build, or infer brand/design data from partial files in a blocked capture. A successful capture may degrade an optional phase within budget, but its structural output still has to be usable. Exit zero and file existence alone are not semantic success: require the current invocation's JSON ok: true, no BLOCKED.md, and artifacts usable for the video. Run each retry into a fresh output directory; never merge or reuse a blocked attempt's partial output.

Raw lines 40 to 72
73## skills
75`npx hyperframes skills` is the person's one-time setup: it adds the HyperFrames skill pack (/hyperframes with its references, /hyperframes-cli, /hyperframes-registry, /media-use, /figma, /slideshow, /remotion-to-hyperframes, /reverse-any-video, /style-sampling) to the local AI coding environment so agents follow the framework conventions. Skills are versioned with the CLI; after a HyperFrames upgrade the person can refresh them with `npx hyperframes skills update`. Tell them when that applies; do not run it yourself.

skills

npx hyperframes skills is the person's one-time setup: it adds the HyperFrames skill pack (/hyperframes with its references, /hyperframes-cli, /hyperframes-registry, /media-use, /figma, /slideshow, /remotion-to-hyperframes, /reverse-any-video, /style-sampling) to the local AI coding environment so agents follow the framework conventions. Skills are versioned with the CLI; after a HyperFrames upgrade the person can refresh them with npx hyperframes skills update. Tell them when that applies; do not run it yourself.

Raw lines 73 to 75