diff --git a/.prettierignore b/.prettierignore index cea6e5f904..e90c71dc47 100644 --- a/.prettierignore +++ b/.prettierignore @@ -57,3 +57,4 @@ skills/figma/SKILL.md skills/slideshow/SKILL.md skills/remotion-to-hyperframes/SKILL.md skills/reverse-any-video/SKILL.md +skills/style-sampling/SKILL.md diff --git a/AGENTS.md b/AGENTS.md index d9aadd0691..22c8267624 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,7 +8,7 @@ This repo ships AI agent skills via [vercel-labs/skills](https://github.com/verc ```bash npx hyperframes skills update # default: installs/refreshes the core set plus anything already installed -npx hyperframes skills # all 8 published skills at once +npx hyperframes skills # all 9 published skills at once npx skills add heygen-com/hyperframes # interactive picker (terminal only; repo-internal skills are excluded by default) ``` @@ -22,6 +22,7 @@ Make any video by asking for it; the `/hyperframes` skill carries the contract a - `/slideshow` — a presentation, pitch deck or interactive deck. Output is a navigable deck, not a rendered MP4. - `/remotion-to-hyperframes` — bring existing video code or footage into HyperFrames (Remotion first; also Motion Canvas, Lottie, Three.js, canvas, or renders from other tools) and verify it frame by frame against the original. - `/reverse-any-video` — rebuild any video file as an editable HyperFrames project (motion graphics, talking heads, live action or AI-generated footage) and check the render against the original frame by frame. A HyperFrames Pro feature. +- `/style-sampling` — make a new episode on your topic in one of five proven styles (Collage Explainer, Finance Explainer, Animated Science Explainer, 3D Brand Explainer, 3D True Crime). A HyperFrames Pro feature. ## Issue and PR triage diff --git a/CLAUDE.md b/CLAUDE.md index 8c4daf2f09..e512ae4bfe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,11 +4,11 @@ Open-source video rendering framework: write HTML, render video. ## Skills -This repo ships 8 AI agent skills via [vercel-labs/skills](https://github.com/vercel-labs/skills). Install them before writing compositions — they encode framework-specific patterns that generic docs don't cover. **Default to the core set** (`/hyperframes`, `/hyperframes-cli`, `/hyperframes-registry`, `/media-use`); `/slideshow`, `/remotion-to-hyperframes`, `/reverse-any-video` and `/figma` install on demand. Install all 8 only when the user explicitly asks for the full set. +This repo ships 9 AI agent skills via [vercel-labs/skills](https://github.com/vercel-labs/skills). Install them before writing compositions — they encode framework-specific patterns that generic docs don't cover. **Default to the core set** (`/hyperframes`, `/hyperframes-cli`, `/hyperframes-registry`, `/media-use`); `/slideshow`, `/remotion-to-hyperframes`, `/reverse-any-video`, `/style-sampling` and `/figma` install on demand. Install all 9 only when the user explicitly asks for the full set. ```bash npx hyperframes skills update # default: installs/refreshes the core set plus anything already installed -npx hyperframes skills # all 8 published skills at once — only on explicit request +npx hyperframes skills # all 9 published skills at once — only on explicit request npx skills add heygen-com/hyperframes # interactive picker; internal skills require INSTALL_INTERNAL_SKILLS=1 for discovery npx skills add heygen-com/hyperframes --all # excludes internal skills unless INSTALL_INTERNAL_SKILLS=1 npx skills add heygen-com/hyperframes --skill # a named match installs regardless of metadata.internal (bare name, no leading slash) @@ -28,6 +28,7 @@ Make any video by asking for it; the `/hyperframes` skill carries the render con - `/slideshow` — a presentation, pitch deck or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation and presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. - `/remotion-to-hyperframes` — bring existing video code or footage into HyperFrames (Remotion first; also Motion Canvas, Lottie, Three.js, canvas, or renders from other tools) and verify it frame by frame against the original. - `/reverse-any-video` — rebuild any video file as an editable HyperFrames project (motion graphics, talking heads, live action or AI-generated footage) and check the render against the original frame by frame. A HyperFrames Pro feature. +- `/style-sampling` — make a new episode on your topic in one of five proven styles (Collage Explainer, Finance Explainer, Animated Science Explainer, 3D Brand Explainer, 3D True Crime). A HyperFrames Pro feature. ## Skill catalog maintenance diff --git a/README.md b/README.md index 924a44569c..da0e96f5c6 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ For standalone skills (including OpenCode), use: npx skills add heygen-com/hyperframes ``` -> The picker opens with nothing pre-selected — the **Core Skills** group is all you need; `/slideshow`, `/remotion-to-hyperframes`, `/reverse-any-video` and `/figma` install on demand. Agents and non-interactive runs should use `npx hyperframes skills update` instead — it installs exactly the core set, whereas `skills add --all` installs all 8 published skills. The six repo-internal skills under `.claude/skills` / `.agents/skills` are excluded by default. For the full published set use `npx hyperframes skills`. +> The picker opens with nothing pre-selected — the **Core Skills** group is all you need; `/slideshow`, `/remotion-to-hyperframes`, `/reverse-any-video`, `/style-sampling` and `/figma` install on demand. Agents and non-interactive runs should use `npx hyperframes skills update` instead — it installs exactly the core set, whereas `skills add --all` installs all 9 published skills. The six repo-internal skills under `.claude/skills` / `.agents/skills` are excluded by default. For the full published set use `npx hyperframes skills`. > > `skills add` resolves the skills.sh registry blob, which can lag `main` by hours. `npx hyperframes skills update` installs from the current `main`, so reach for it when you need the newest copy of a skill. @@ -81,9 +81,9 @@ The skills teach agents the HyperFrames production loop: plan the video, write v ## Skills -HyperFrames ships 8 skills. Make any video by asking for it; the `/hyperframes` skill carries the contract and the references (film, captions, overlays, motion, look). Read it first. +HyperFrames ships 9 skills. Make any video by asking for it; the `/hyperframes` skill carries the contract and the references (film, captions, overlays, motion, look). Read it first. -For standalone installation, default to the **core set** (`/hyperframes`, `/hyperframes-cli`, `/hyperframes-registry`, `/media-use`). `npx hyperframes skills update` installs exactly that from anywhere; the interactive picker (`npx skills add heygen-com/hyperframes`) lists it as the "Core Skills" group, nothing pre-selected. The picker is interactive-only — a non-interactive or agent run without `--skill` installs all 8. Use `npx skills add heygen-com/hyperframes --all` to install the complete published set deliberately (skips the picker), or `npx skills add heygen-com/hyperframes --skill ` for just one (bare name, no leading `/`). +For standalone installation, default to the **core set** (`/hyperframes`, `/hyperframes-cli`, `/hyperframes-registry`, `/media-use`). `npx hyperframes skills update` installs exactly that from anywhere; the interactive picker (`npx skills add heygen-com/hyperframes`) lists it as the "Core Skills" group, nothing pre-selected. The picker is interactive-only — a non-interactive or agent run without `--skill` installs all 9. Use `npx skills add heygen-com/hyperframes --all` to install the complete published set deliberately (skips the picker), or `npx skills add heygen-com/hyperframes --skill ` for just one (bare name, no leading `/`). Standalone installs stay lean after that: `npx hyperframes init` installs the **core set** only when it is missing and never touches a skill you already have (`npx hyperframes skills update` refreshes them, and never removes one); `/figma`, `/slideshow`, `/remotion-to-hyperframes` and `/reverse-any-video` install **on demand** with `npx hyperframes skills update `. Nothing re-pulls the full set behind your back. @@ -120,6 +120,7 @@ This writes `dist/hyperframes-plugin.zip` with a `hyperframes/` root folder and | `/slideshow` | A presentation, pitch deck or interactive deck — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode with speaker notes. Output is a navigable deck, not a rendered MP4. | | `/remotion-to-hyperframes` | Bringing existing video code or footage into HyperFrames (Remotion first; also Motion Canvas, Lottie, Three.js, canvas, other tools' renders), verified frame by frame. | | `/reverse-any-video` | Rebuilding any video file as an editable HyperFrames project (motion graphics, talking heads, live action, AI-generated footage), checked frame by frame against the original. HyperFrames Pro. | +| `/style-sampling` | Making a new episode on your topic in one of five proven styles: Collage Explainer, Finance Explainer, Animated Science Explainer, 3D Brand Explainer, 3D True Crime. HyperFrames Pro. | For visual design handoff workflows, see the [Claude Design guide](https://hyperframes.heygen.com/guides/claude-design) and [Open Design guide](https://hyperframes.heygen.com/guides/open-design). diff --git a/docs/guides/skills.mdx b/docs/guides/skills.mdx index 9d3b6aa1a7..aab6d8a082 100644 --- a/docs/guides/skills.mdx +++ b/docs/guides/skills.mdx @@ -126,6 +126,7 @@ Make any video by asking for it; the `/hyperframes` skill carries the contract a | `/slideshow` | A presentation, pitch deck or interactive deck. Output is a navigable deck, not a rendered MP4. | | `/remotion-to-hyperframes` | Bringing existing video code or footage into HyperFrames (Remotion first; also Motion Canvas, Lottie, Three.js, canvas, other tools' renders), verified frame by frame. | | `/reverse-any-video` | Rebuilding any video file as an editable HyperFrames project (motion graphics, talking heads, live action, AI-generated footage), checked frame by frame against the original. HyperFrames Pro. | +| `/style-sampling` | Making a new episode on your topic in one of five proven styles: Collage Explainer, Finance Explainer, Animated Science Explainer, 3D Brand Explainer, 3D True Crime. HyperFrames Pro. | You can name a skill directly, but you do not need to memorize the names to start. diff --git a/docs/packages/cli.mdx b/docs/packages/cli.mdx index 00022a189e..5823b2e95f 100644 --- a/docs/packages/cli.mdx +++ b/docs/packages/cli.mdx @@ -33,7 +33,7 @@ npm install -g hyperframes | Make a file | [`render`](#render), [`benchmark`](#benchmark) | | Render somewhere else | [`cloud`](#hyperframes-cloud), [`lambda`](#hyperframes-lambda), [`cloudrun`](#hyperframes-cloudrun) | | Fix your setup | [`doctor`](#doctor), [`browser`](#browser), [`upgrade`](#upgrade), [`docs`](#docs), [`info`](#info-and-compositions), [`compositions`](#info-and-compositions), [`clean`](#clean) | -| Connect other tools | [`auth`](#hyperframes-auth), [`billing`](#billing), [`skills`](#skills), [`usage`](#usage), [`figma`](#figma-and-events), [`events`](#figma-and-events), [`telemetry`](#telemetry), [`feedback`](#feedback) | +| Connect other tools | [`auth`](#hyperframes-auth), [`billing`](#billing), [`templates`](#templates), [`skills`](#skills), [`usage`](#usage), [`figma`](#figma-and-events), [`events`](#figma-and-events), [`telemetry`](#telemetry), [`feedback`](#feedback) | `validate`, `inspect`, and `layout` still work but are [deprecated](#deprecated-validate-inspect-and-layout). Use `check` instead. @@ -2288,6 +2288,20 @@ npx hyperframes billing top-up --needed 180 | `--tool` | The step that is waiting, shown on the page | | `--timeout` | Seconds to wait (default 600) | +### `templates` + +Pulls a style template into the project's `templates//`, for a HyperFrames +Pro account: `collage-explainer`, `finance-explainer`, `animated-science-explainer`, +`3d-brand-explainer` or `3d-true-crime`. A pull costs no credits, and a template already there is left alone. + +```bash +npx hyperframes templates pull collage-explainer +``` + +| Flag | Description | +| ------- | ----------------------------------------------- | +| `--dir` | Project folder (default: the current folder) | + ### `figma` and `events` `npx hyperframes figma` imports through the Figma REST API, with three diff --git a/packages/cli/src/api/transcribe.ts b/packages/cli/src/api/transcribe.ts index e07edafb2b..e6d3402e1c 100644 --- a/packages/cli/src/api/transcribe.ts +++ b/packages/cli/src/api/transcribe.ts @@ -423,7 +423,6 @@ async function transcribeOnHeygen( try { const result = await transcribeWithHeygen(inputPath, join(dir, TRANSCRIPT_FILE), { diarize: options.speakers, - projectDir: dir, onStatus: options.onStatus, }); return finishTranscript(result, "heygen", dir, sidecar); diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 20ed7f860a..4a3df9b046 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -180,6 +180,7 @@ const commandLoaders = { measure: () => import("./commands/measure.js").then((m) => m.default), reverse: () => import("./commands/reverse.js").then((m) => m.default), billing: () => import("./commands/billing.js").then((m) => m.default), + templates: () => import("./commands/templates.js").then((m) => m.default), capture: () => import("./commands/capture.js").then((m) => m.default), lambda: () => import("./commands/lambda.js").then((m) => m.default), cloudrun: () => import("./commands/cloudrun.js").then((m) => m.default), diff --git a/packages/cli/src/cloud/offload.test.ts b/packages/cli/src/cloud/offload.test.ts index 01cfbcb4d9..fe6fbd9d16 100644 --- a/packages/cli/src/cloud/offload.test.ts +++ b/packages/cli/src/cloud/offload.test.ts @@ -894,6 +894,106 @@ describe("offloadHeavyMedia", () => { expect(fileMap.has("media/clip.mp4")).toBe(true); }); + it("offloads a heavy file only a composition's