From 0e84008da07f5fb44f5517d923c9dd80117c74b8 Mon Sep 17 00:00:00 2001 From: Santhi Prakash Date: Thu, 30 Jul 2026 19:22:10 +0000 Subject: [PATCH 1/2] docs: fix preview port in DOCS_GUIDELINES example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Problem: DOCS_GUIDELINES showed preview at localhost:3000 with stale "Server running" / "Watching for changes" output. - Fix: Align with packages/cli/README.md — default port 3002 and the actual "Studio running at" summary line. - Verification: bun run format:check -- DOCS_GUIDELINES.md → passed. --- DOCS_GUIDELINES.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DOCS_GUIDELINES.md b/DOCS_GUIDELINES.md index 8bd6d6b413..6edc01d723 100644 --- a/DOCS_GUIDELINES.md +++ b/DOCS_GUIDELINES.md @@ -91,8 +91,7 @@ After CLI commands, show what the user should see: ```bash npx hyperframes preview -# ✓ Server running at http://localhost:3000 -# ✓ Watching for changes... +# Studio running at http://localhost:3002 ``` ### Use CodeGroup for multi-platform commands From 866955410fc72bc51ac7f86303c605c9926bb730 Mon Sep 17 00:00:00 2001 From: Santhi Prakash Date: Sat, 1 Aug 2026 12:46:29 +0000 Subject: [PATCH 2/2] docs(guides): update Cursor links to cursor.com - Problem: guide links still pointed at the legacy cursor.sh domain. - Fix: switch both docs references to cursor.com so users land on the canonical homepage directly. - Verification: bunx oxfmt --check on the two edited MDX files. --- docs/guides/skills.mdx | 57 +++++++++------- docs/guides/website-to-video.mdx | 112 ++++++++++++++++--------------- 2 files changed, 90 insertions(+), 79 deletions(-) diff --git a/docs/guides/skills.mdx b/docs/guides/skills.mdx index 8c60644600..a2e08f03fb 100644 --- a/docs/guides/skills.mdx +++ b/docs/guides/skills.mdx @@ -19,7 +19,8 @@ The skills split into three groups: npx hyperframes skills update ``` - Installs exactly the core set — the `/hyperframes` router, the `hyperframes-*` domain skills, and `media-use` — and the router installs each creation workflow on demand the first time it routes there. Always installs from the repo's current `main`. Works with [Claude Code](https://claude.ai/claude-code), [Cursor](https://cursor.sh), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Codex CLI](https://github.com/openai/codex), [GitHub Copilot CLI](/guides/copilot-cli), and [Google Antigravity](/guides/antigravity). + Installs exactly the core set — the `/hyperframes` router, the `hyperframes-*` domain skills, and `media-use` — and the router installs each creation workflow on demand the first time it routes there. Always installs from the repo's current `main`. Works with [Claude Code](https://claude.ai/claude-code), [Cursor](https://cursor.com), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Codex CLI](https://github.com/openai/codex), [GitHub Copilot CLI](/guides/copilot-cli), and [Google Antigravity](/guides/antigravity). + ```bash @@ -27,6 +28,7 @@ The skills split into three groups: ``` In a terminal this opens a picker — the core set under the "Core Skills" group, the on-demand creation workflows under "Other", nothing pre-selected. Keep `--full-depth`: it installs the current `main`; without it `skills add` fetches the skills.sh registry blob, which lags `main` by hours. The picker is interactive-only: a non-interactive or agent run without `--skill` installs all 19, so agents should use `npx hyperframes skills update` above. + ```bash @@ -34,6 +36,7 @@ The skills split into three groups: ``` Writes every skill to your project in one shot. Use this only when you explicitly want the full set up front — the router installs workflows on demand otherwise. + ```bash @@ -41,6 +44,7 @@ The skills split into three groups: ``` Pass the bare skill name (no leading `/`) — e.g. `--skill hyperframes-animation`. Useful when you want a single capability without the full set. + Once installed, invoke `/hyperframes` in your agent. It's the capability map for everything below and routes "make me a…" intent — a video, a deck, or a composition port — to the right creation workflow based on your input. @@ -48,7 +52,8 @@ The skills split into three groups: - **Don't see a slash command after install?** Open a new agent session, or run `/skills` (Copilot CLI) / restart your agent's skill loader. Most agents pick up new skills on the next prompt. + **Don't see a slash command after install?** Open a new agent session, or run `/skills` (Copilot + CLI) / restart your agent's skill loader. Most agents pick up new skills on the next prompt. ## Keeping skills current @@ -73,41 +78,41 @@ npx hyperframes skills # install the full set explicitly The single entry point. Read `/hyperframes` before invoking anything else — it knows what's available and which workflow fits your request. -| Skill | Use when | -| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Skill | Use when | +| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `/hyperframes` | **Read first** for any request to make / create / edit / animate / render a video, animation, or motion graphic. Capability map for the domain skills, the intent layer that confirms every creation brief up front, and intent router for the creation workflows below. | ## Creation workflows One workflow per input shape. The router (`/hyperframes`) picks one of these for you — but you can invoke them directly when you already know which fits. -| Skill | Use when | -| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/product-launch-video` | Any **website** — marketing / launching / promoting a product (from its URL, a brief, or a script), or a site tour / showcase / social clip featuring the site's own visuals. Up to ~3 min (sweet spot 30-90s). | -| `/faceless-explainer` | **Explaining a topic / concept** from arbitrary text — no product, no URL, no website capture; every visual is LLM-invented (typography / abstract / diagram / data-viz). | -| `/pr-to-video` | A **GitHub pull request** (PR URL, `owner/repo#N` ref, or "this PR") → changelog / feature-reveal / fix / refactor explainer, read via the `gh` CLI. | -| `/embedded-captions` | Adding **captions / subtitles** to an existing talking-head video (footage untouched) — verbatim rail, embedded climax behind the subject, or pure-cinematic embed. | -| `/talking-head-recut` | Packaging an existing talking-head / interview / podcast video with **designed graphic overlays** — lower-thirds, data callouts, kinetic titles, pull-quotes, side panels, PiP. | -| `/motion-graphics` | A short, **unnarrated, design-led motion graphic** (~under 10s) — kinetic type, stat / chart hit, logo sting, lower-third, animated tweet / headline. MP4 or transparent overlay. | -| `/music-to-video` | A **music track** (audio file, video to pull audio from, or one generated from a mood brief) → a **beat-synced** video — lyric, slideshow, or kinetic promo; music drives pacing. | -| `/slideshow` | A **presentation / pitch deck / interactive deck** — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode. Output is a navigable deck, not a rendered video. | -| `/general-video` | **Anything else** — longer or multi-scene pieces, brand / sizzle reel, title card, static loop, freeform composition. Input- and length-agnostic fallback, and the home of companion mode (co-create with the full toolbox). | -| `/remotion-to-hyperframes` | **Porting an existing Remotion** (React) composition's source to HyperFrames HTML. One-way migration, not creation. | +| Skill | Use when | +| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/product-launch-video` | Any **website** — marketing / launching / promoting a product (from its URL, a brief, or a script), or a site tour / showcase / social clip featuring the site's own visuals. Up to ~3 min (sweet spot 30-90s). | +| `/faceless-explainer` | **Explaining a topic / concept** from arbitrary text — no product, no URL, no website capture; every visual is LLM-invented (typography / abstract / diagram / data-viz). | +| `/pr-to-video` | A **GitHub pull request** (PR URL, `owner/repo#N` ref, or "this PR") → changelog / feature-reveal / fix / refactor explainer, read via the `gh` CLI. | +| `/embedded-captions` | Adding **captions / subtitles** to an existing talking-head video (footage untouched) — verbatim rail, embedded climax behind the subject, or pure-cinematic embed. | +| `/talking-head-recut` | Packaging an existing talking-head / interview / podcast video with **designed graphic overlays** — lower-thirds, data callouts, kinetic titles, pull-quotes, side panels, PiP. | +| `/motion-graphics` | A short, **unnarrated, design-led motion graphic** (~under 10s) — kinetic type, stat / chart hit, logo sting, lower-third, animated tweet / headline. MP4 or transparent overlay. | +| `/music-to-video` | A **music track** (audio file, video to pull audio from, or one generated from a mood brief) → a **beat-synced** video — lyric, slideshow, or kinetic promo; music drives pacing. | +| `/slideshow` | A **presentation / pitch deck / interactive deck** — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode. Output is a navigable deck, not a rendered video. | +| `/general-video` | **Anything else** — longer or multi-scene pieces, brand / sizzle reel, title card, static loop, freeform composition. Input- and length-agnostic fallback, and the home of companion mode (co-create with the full toolbox). | +| `/remotion-to-hyperframes` | **Porting an existing Remotion** (React) composition's source to HyperFrames HTML. One-way migration, not creation. | ## Domain skills (loaded on demand) Atomic capabilities the creation workflows compose against — pull one when you need that specific layer. -| Skill | Covers | -| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/hyperframes-core` | The composition contract — `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, determinism rules. | -| `/hyperframes-animation` | All animation knowledge — atomic motion rules, scene blueprints, transitions, runtime adapters (GSAP / Lottie / Three.js / Anime.js / CSS / WAAPI / TypeGPU). | -| `/hyperframes-keyframes` | Seek-safe keyframe authoring across runtimes — GSAP timelines, CSS keyframes, Anime.js, WAAPI, FLIP, paths, masks, SVG morph/draw, 3D depth — plus `hyperframes keyframes` diagnostics for rendered motion. | -| `/hyperframes-creative` | Non-animation creative direction — `frame.md` / `design.md`, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns. | -| `/media-use` | The media OS — resolve any media need (BGM, SFX, image, icon, logo, voice, color grade, LUT) into a frozen local file or paste-ready block + ledger record, generate via TTS/music/image models when the catalog misses, transcribe, caption, remove backgrounds, and reuse assets across projects. One shared audio engine + manifest tracking. | -| `/hyperframes-cli` | CLI dev loop — `init`, `lint`, `check`, `snapshot`, `preview`, `render`, `publish`, `doctor`, plus HeyGen-hosted cloud rendering (`cloud render / list / get / delete`) and AWS Lambda rendering (`lambda deploy / render / progress / destroy / policies`). | -| `/hyperframes-registry` | Install and wire registry blocks and components into compositions via `hyperframes add`. Authoring a new block or component to contribute upstream. | -| `/figma` | Import Figma assets, tokens, components, and storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI) plus Motion animations (MCP) and shaders (MCP source / native export) into a composition. | +| Skill | Covers | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `/hyperframes-core` | The composition contract — `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, determinism rules. | +| `/hyperframes-animation` | All animation knowledge — atomic motion rules, scene blueprints, transitions, runtime adapters (GSAP / Lottie / Three.js / Anime.js / CSS / WAAPI / TypeGPU). | +| `/hyperframes-keyframes` | Seek-safe keyframe authoring across runtimes — GSAP timelines, CSS keyframes, Anime.js, WAAPI, FLIP, paths, masks, SVG morph/draw, 3D depth — plus `hyperframes keyframes` diagnostics for rendered motion. | +| `/hyperframes-creative` | Non-animation creative direction — `frame.md` / `design.md`, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns. | +| `/media-use` | The media OS — resolve any media need (BGM, SFX, image, icon, logo, voice, color grade, LUT) into a frozen local file or paste-ready block + ledger record, generate via TTS/music/image models when the catalog misses, transcribe, caption, remove backgrounds, and reuse assets across projects. One shared audio engine + manifest tracking. | +| `/hyperframes-cli` | CLI dev loop — `init`, `lint`, `check`, `snapshot`, `preview`, `render`, `publish`, `doctor`, plus HeyGen-hosted cloud rendering (`cloud render / list / get / delete`) and AWS Lambda rendering (`lambda deploy / render / progress / destroy / policies`). | +| `/hyperframes-registry` | Install and wire registry blocks and components into compositions via `hyperframes add`. Authoring a new block or component to contribute upstream. | +| `/figma` | Import Figma assets, tokens, components, and storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI) plus Motion animations (MCP) and shaders (MCP source / native export) into a composition. | ## Source of truth diff --git a/docs/guides/website-to-video.mdx b/docs/guides/website-to-video.mdx index b2f2215af3..80501830ed 100644 --- a/docs/guides/website-to-video.mdx +++ b/docs/guides/website-to-video.mdx @@ -20,7 +20,8 @@ Give your AI agent a URL and a creative direction. It captures the site, extract npx skills add heygen-com/hyperframes ``` - Works with [Claude Code](https://claude.ai/claude-code), [Cursor](https://cursor.sh), [Gemini CLI](https://github.com/google-gemini/gemini-cli), and [Codex CLI](https://github.com/openai/codex). + Works with [Claude Code](https://claude.ai/claude-code), [Cursor](https://cursor.com), [Gemini CLI](https://github.com/google-gemini/gemini-cli), and [Codex CLI](https://github.com/openai/codex). + Open your agent in any directory and describe the video you want: @@ -34,6 +35,7 @@ Give your AI agent a URL and a creative direction. It captures the site, extract Agents also trigger this skill automatically when they see a URL and a video request. + ```bash @@ -41,6 +43,7 @@ Give your AI agent a URL and a creative direction. It captures the site, extract ``` Opens the video in your browser. Edits reload automatically. + ```bash @@ -51,26 +54,29 @@ Give your AI agent a URL and a creative direction. It captures the site, extract ✓ Captured 750 frames in 12.4s ✓ Encoded to my-video.mp4 (25.0s, 1920×1080, 6.8MB) ``` + - You don't need to run `npx hyperframes capture` manually — the skill instructs the agent to capture as the first step. The capture command is documented [below](#capture-command) for advanced use. + You don't need to run `npx hyperframes capture` manually — the skill instructs the agent to + capture as the first step. The capture command is documented [below](#capture-command) for + advanced use. ## How the Pipeline Works The skill follows the [Hyperframes pipeline](/guides/pipeline): seven steps, each producing a named artifact that feeds the next. -| Step | Output | What happens | -|------|--------|-------------| -| **Capture** | `capture/` | Extract screenshots, design tokens, fonts, assets, animations | -| **Design** | `DESIGN.md` | Brand reference — colors, typography, component stylings, spacing, iteration guide | -| **Strategy & Messaging** | — | Align on video type, style, the ONE message, and narrative arc | -| **Storyboard + Script** | `STORYBOARD.md` + `SCRIPT.md` | Concept-first storyboard and narration script, written together | -| **VO + Timing** | `narration.wav` + `transcript.json` | TTS audio with word-level timestamps | -| **Build** | `compositions/*.html` | Animated HTML compositions, one per beat | -| **Validate** | Snapshot PNGs + lint/validate pass | Visual verification and runtime checks before delivery | +| Step | Output | What happens | +| ------------------------ | ----------------------------------- | ---------------------------------------------------------------------------------- | +| **Capture** | `capture/` | Extract screenshots, design tokens, fonts, assets, animations | +| **Design** | `DESIGN.md` | Brand reference — colors, typography, component stylings, spacing, iteration guide | +| **Strategy & Messaging** | — | Align on video type, style, the ONE message, and narrative arc | +| **Storyboard + Script** | `STORYBOARD.md` + `SCRIPT.md` | Concept-first storyboard and narration script, written together | +| **VO + Timing** | `narration.wav` + `transcript.json` | TTS audio with word-level timestamps | +| **Build** | `compositions/*.html` | Animated HTML compositions, one per beat | +| **Validate** | Snapshot PNGs + lint/validate pass | Visual verification and runtime checks before delivery | See [the pipeline guide](/guides/pipeline) for a detailed walkthrough of each step, the contents of every generated file, and how to iterate without re-running the whole pipeline. The structure is useful for any Hyperframes project, not just website captures. @@ -78,16 +84,18 @@ See [the pipeline guide](/guides/pipeline) for a detailed walkthrough of each st The prompt determines the format. Include a duration and creative direction: -| Type | Duration | Example | -|------|----------|---------| -| Social ad | 10–15s | _"15-second Instagram reel. Energetic, fast cuts."_ | -| Product demo | 30–60s | _"45-second demo showing the top 3 features."_ | -| Feature announcement | 15–30s | _"Feature announcement highlighting the new AI agents."_ | -| Brand reel | 20–45s | _"30-second brand video. Celebrate the design."_ | -| Launch teaser | 10–20s | _"12-second teaser. Super minimal. Just the hook."_ | +| Type | Duration | Example | +| -------------------- | -------- | -------------------------------------------------------- | +| Social ad | 10–15s | _"15-second Instagram reel. Energetic, fast cuts."_ | +| Product demo | 30–60s | _"45-second demo showing the top 3 features."_ | +| Feature announcement | 15–30s | _"Feature announcement highlighting the new AI agents."_ | +| Brand reel | 20–45s | _"30-second brand video. Celebrate the design."_ | +| Launch teaser | 10–20s | _"12-second teaser. Super minimal. Just the hook."_ | - Creative direction matters more than format. _"Playful, hand-crafted feel"_ or _"dark, developer-focused, show code"_ shapes the storyboard and drives every visual decision the agent makes. + Creative direction matters more than format. _"Playful, hand-crafted feel"_ or _"dark, + developer-focused, show code"_ shapes the storyboard and drives every visual decision the agent + makes. ## Enriching Captures with Gemini Vision @@ -110,24 +118,20 @@ OpenRouter is used when its key is present (it takes priority if both are set). - ``` - - hero-bg.png — 582KB, section: "Hero", above fold - ``` - The agent knows the file exists and where it was on the page, but not what it looks like. + ``` - hero-bg.png — 582KB, section: "Hero", above fold ``` The agent knows the file exists and + where it was on the page, but not what it looks like. - ``` - - hero-bg.png — 582KB, A gradient wave in purple and blue sweeps - across a dark background, creating an aurora-like effect. - ``` - The agent knows what the image actually shows, enabling better creative decisions in the storyboard. + ``` - hero-bg.png — 582KB, A gradient wave in purple and blue sweeps across a dark background, + creating an aurora-like effect. ``` The agent knows what the image actually shows, enabling + better creative decisions in the storyboard. | Tier | Rate limit | Cost per image | -|------|-----------|----------------| -| Free | 5 RPM | Free | -| Paid | 2,000 RPM | ~$0.001 | +| ---- | ---------- | -------------- | +| Free | 5 RPM | Free | +| Paid | 2,000 RPM | ~$0.001 | A typical capture with 40 images costs about **$0.04** on the paid tier. @@ -148,26 +152,26 @@ npx hyperframes capture https://stripe.com Fonts: sohne-var ``` -| Flag | Default | Description | -|------|---------|-------------| -| `-o, --output` | `./capture` | Output directory (auto-suffixes to `./capture-2/`, `./capture-3/`, … if `./capture/` is taken) | -| `--timeout` | `120000` | Page load timeout in ms | -| `--skip-assets` | `false` | Skip downloading images and fonts | -| `--max-screenshots` | `24` | Maximum screenshot count | -| `--json` | `false` | Output structured JSON for programmatic use | +| Flag | Default | Description | +| ------------------- | ----------- | ---------------------------------------------------------------------------------------------- | +| `-o, --output` | `./capture` | Output directory (auto-suffixes to `./capture-2/`, `./capture-3/`, … if `./capture/` is taken) | +| `--timeout` | `120000` | Page load timeout in ms | +| `--skip-assets` | `false` | Skip downloading images and fonts | +| `--max-screenshots` | `24` | Maximum screenshot count | +| `--json` | `false` | Output structured JSON for programmatic use | ### What Gets Captured -| Data | Description | -|------|-------------| -| **Screenshots** | Viewport captures at every scroll depth — dynamic count based on page height | -| **Colors** | Pixel-sampled dominant colors + computed styles, including oklch/lab conversion | -| **Fonts** | CSS font families + downloaded woff2 files | -| **Assets** | Images, SVGs with semantic names, Lottie animations, video previews | -| **Text** | All visible text in DOM order | -| **Animations** | Web Animations API, scroll-triggered animations, WebGL shaders | -| **Sections** | Page structure with headings, types, background colors | -| **CTAs** | Buttons and links detected by class names and text patterns | +| Data | Description | +| --------------- | ------------------------------------------------------------------------------- | +| **Screenshots** | Viewport captures at every scroll depth — dynamic count based on page height | +| **Colors** | Pixel-sampled dominant colors + computed styles, including oklch/lab conversion | +| **Fonts** | CSS font families + downloaded woff2 files | +| **Assets** | Images, SVGs with semantic names, Lottie animations, video previews | +| **Text** | All visible text in DOM order | +| **Animations** | Web Animations API, scroll-triggered animations, WebGL shaders | +| **Sections** | Page structure with headings, types, background colors | +| **CTAs** | Buttons and links detected by class names and text patterns | ## Snapshot Command @@ -177,11 +181,11 @@ Capture key frames from a built video as PNGs — verify compositions without a npx hyperframes snapshot my-project --at 2.9,10.4,18.7 ``` -| Flag | Default | Description | -|------|---------|-------------| -| `--frames` | `5` | Number of evenly-spaced frames | -| `--at` | — | Comma-separated timestamps in seconds | -| `--timeout` | `5000` | Ms to wait for runtime to initialize | +| Flag | Default | Description | +| ----------- | ------- | ------------------------------------- | +| `--frames` | `5` | Number of evenly-spaced frames | +| `--at` | — | Comma-separated timestamps in seconds | +| `--timeout` | `5000` | Ms to wait for runtime to initialize | ## Iterating @@ -202,6 +206,7 @@ See the [pipeline guide](/guides/pipeline#iterating) for more re-entry patterns. ```bash npx hyperframes capture https://example.com --timeout 180000 ``` + Sites using frameworks like Framer lazy-load images via IntersectionObserver. The capture scrolls through the page to trigger loading, but very long pages may miss images near the bottom. Adding a Gemini key improves descriptions of captured assets, but doesn't increase the count. @@ -217,6 +222,7 @@ See the [pipeline guide](/guides/pipeline#iterating) for more re-entry patterns. ``` Lead your prompt with _"Use the /product-launch-video skill"_ for the most reliable results — site tours route there too. Agents also discover it automatically when they see a URL and a video request. +