Skip to main content
hyperframes CLI 是使用HyperFrames的主要方式。它可以从您的终端处理项目创建、实时预览、渲染、linting 和诊断。
npm install -g hyperframes
# or use directly with npx
npx hyperframes <command>

何时使用

当您想要执行以下操作时使用 CLI:
  • 捕获用于视频制作的网站 (capture)
  • 从示例创建一个新的组合项目 (init)
  • 通过实时热重载预览合成 (preview)
  • 在本地或 Docker 中将合成渲染为 MP4 (render)
  • 针对结构问题的 Lint 组合 (lint)
  • 检查渲染的视觉布局是否有文本溢出和剪切容器 (inspect)
  • 将关键帧捕获为 PNG 屏幕截图 (snapshot)
  • 检查您的环境是否缺少依赖项 (doctor)
如果您愿意,请使用不同的包:
  • 从 Node.js 代码以编程方式渲染 - 使用 生产者
  • 构建自定义帧捕获管道 - 使用 engine
  • 在您自己的网络应用程序中嵌入合成编辑器 - 使用 studio
  • 在代码中解析或生成合成 HTML — 使用 core
CLI 是所有 Hyperframes 用户推荐的起点。它包装了制作人、引擎和工作室包,因此您无需单独安装它们。

默认情况下对代理友好

CLI 默认情况下对代理友好:命令支持显式标志和可解析输出,因此自动化可以可靠地运行。
  • 输入可以通过标志传递(例如,--example--video--output
  • 缺少必需的标志会快速失败,并提供清晰的错误和使用示例
  • 输出是适合解析的纯文本
交互性是特定于命令的。例如,init 默认使用 TTY 上的提示;通过 --non-interactive 强制非交互模式。 --human-friendly 也是特定于命令的(例如,catalog)。它不是每个命令上的全局标志。
# Fully non-interactive — all inputs from flags
npx hyperframes init my-video --example blank --video video.mp4
npx hyperframes render --output output.mp4 --fps 30 --quality standard
npx hyperframes upgrade --check --json

JSON 输出和 _meta 信封

所有支持 --json 的命令都使用包含版本检查信息的 _meta 字段包装其输出:
{
  "name": "my-video",
  "duration": 10.5,
  "_meta": {
    "version": "0.1.4",
    "latestVersion": "0.1.5",
    "updateAvailable": true
  }
}
这允许代理从任何命令的输出中检测过时的版本,而无需运行单独的升级检查。版本数据来自24小时缓存——--json输出期间没有网络请求。

被动更新通知

CLI 在后台检查 npm 是否有较新版本(缓存 24 小时)。如果有可用更新,命令完成后 stderr 上会出现一条通知:
  Update available: 0.1.4 → 0.1.5
  Run: npx hyperframes@latest
在 CI 环境、非 TTY shell 以及设置 HYPERFRAMES_NO_UPDATE_CHECK=1 时,这种情况会被抑制。

入门

1

创建一个项目

从一个例子中搭建一个新的组合:
npx hyperframes init --example warm-grain
系统将提示您输入项目名称,或将其作为参数传递:
npx hyperframes init my-video --example warm-grain
有关所有可用示例,请参阅示例
2

在浏览器中预览

通过实时热重载启动开发服务器:
cd my-video
npx hyperframes preview
Hyperframes Studio 将在您的浏览器中打开。编辑 index.html ,预览会立即更新。
3

检查你的作品

渲染前检查结构问题:
npx hyperframes lint
◆  Linting my-project/index.html

◇  0 errors, 0 warnings
4

渲染为 MP4

制作最终视频:
npx hyperframes render --output output.mp4
渲染特定的合成而不是 index.html
npx hyperframes render -c compositions/intro.html -o intro.mp4
对于确定性输出,请添加 --docker
npx hyperframes render --docker --output output.mp4

命令

init

从示例创建一个新的组合项目:
# Agent mode (default) — --example is required
npx hyperframes init my-video --example blank --video video.mp4

# Include Tailwind CSS browser-runtime support
npx hyperframes init my-video --example blank --tailwind

# Human mode — interactive prompts on TTY by default
npx hyperframes init my-video
旗帜描述
--example, -e脚手架示例(默认模式下需要,在 --human-friendly 中交互)
--resolution画布预设:landscape (1920×1080)、portrait (1080×1920)、landscape-4k (3840×2160)、portrait-4k (2160×3840)、square (1080×1080)、 square-4k (2160×2160)。别名:1080p4kuhd1080p-squaresquare-1080p4k-square。默认:保留模板尺寸。
--video, -V视频文件的路径(MP4、WebM、MOV)
--audio, -a音频文件的路径(MP3、WAV、M4A)
--tailwind将 Tailwind CSS 浏览器运行时支持添加到脚手架 HTML
--skip-skills跳过AI编码技能安装
--skip-transcribe跳过自动耳语转录
--model用于转录的 Whisper 模型(例如 small.enmedium.enlarge-v3
--language用于转录的语言代码(例如 enesja)。过滤非目标语音。
例子描述
blank空构图——只有脚手架
warm-grain具有颗粒纹理的奶油色美感
play-mode俏皮的弹性动画
swiss-grid结构化网格布局
vignelli带有红色口音的大胆排版
在非交互模式下,需要 --example — 如果缺少,则会出现 CLI 错误并带有使用示例。在交互模式下(TTY 上的默认模式),您可以交互地选择示例。通过标志传递 --non-interactive 以要求 --example。当提供 --video--audio 时,CLI 自动使用 Whisper 转录音频并将字幕修补到合成中(使用 --skip-transcribe 禁用)。--tailwind 将固定的 Tailwind v4 浏览器运行时注入支架式 HTML 中,并公开 window.__tailwindReady 承诺,在捕获帧 0 之前渲染等待。在编辑这些项目时使用 /tailwind 技能,以便代理遵循 v4 CSS 优先模式,而不是 v3 tailwind.config.js@tailwind 指令模式。浏览器运行时仍然适用于脚手架项目和快速迭代;对于完全离线或锁定的生产渲染,请将 Tailwind 编译为 CSS 并直接包含样式表。搭建完成后,CLI 会安装 Claude Code、Gemini CLI 和 Codex CLI 的 AI 编码技能(使用 --skip-skills 禁用)。请参阅 skills 命令。有关完整详细信息,请参阅示例

add

将注册表中的组件安装到现有项目中。示例(完整项目)由 init 搭建;块和组件是您添加到已有组合中的较小单元。
# Add a block (sub-composition scene)
npx hyperframes add claude-code-window

# Add a component (effect / snippet)
npx hyperframes add shader-wipe

# Target a different project dir
npx hyperframes add shader-wipe --dir ./my-video

# Headless / CI (skip clipboard; also: --json for a machine-readable result)
npx hyperframes add shader-wipe --no-clipboard --json
旗帜描述
<name>(位置)注册表项名称(例如 claude-code-windowshader-wipe
--dir项目目录(默认为当前工作目录)
--no-clipboard跳过将包含片段复制到剪贴板
--json将机器可读的摘要(书面文件+片段)打印到标准输出
add 在项目根目录读取 hyperframes.json 以了解要从哪个注册表中提取以及在何处放置文件。如果该文件丢失,但目录看起来像 Hyperframes 项目(具有 index.html),则第一次运行 add 时会写入默认的 hyperframes.json块或组件的输出是一组文件加上粘贴片段 - 要包含在主机组合中的 <iframe> 标记(对于块)或片段路径(对于组件)。默认情况下,代码片段会复制到剪贴板;为 CI 或无头环境添加 --no-clipboard尝试使用示例名称(例如 hyperframes add warm-grain)使用 add 会发出一个明确的错误,指向 init --example

catalog

浏览注册表 - 列出可用的块和组件以及可选的过滤器:
# List everything (default: table output)
npx hyperframes catalog

# Filter by type or tag
npx hyperframes catalog --type block
npx hyperframes catalog --type block --tag social

# Machine-readable JSON
npx hyperframes catalog --json

# Interactive picker — select to install
npx hyperframes catalog --human-friendly
旗帜描述
--typeblockcomponent 过滤
--tag按标签过滤(例如 socialtransitiontext
--json将匹配项打印为 JSON(非交互式)
--human-friendly交互式选择器 — 选择一个项目进行安装
默认输出是一个列出名称、类型、描述和标签的表——专为代理进行解析而设计。 --json 产生结构化输出。 --human-friendly 打开一个交互式选择器,该选择器在选择时运行 add

compositions

列出当前项目中的所有作品:
npx hyperframes compositions
旗帜描述
--json输出为 JSON
显示每个合成的 ID、持续时间、分辨率和元素计数。

transcribe

将音频/视频转录为字级时间戳,或导入现有转录:
# Transcribe audio/video with local whisper.cpp
npx hyperframes transcribe audio.mp3
npx hyperframes transcribe video.mp4 --model medium.en --language en

# Import existing transcripts from other tools
npx hyperframes transcribe subtitles.srt
npx hyperframes transcribe captions.vtt
npx hyperframes transcribe openai-response.json
旗帜描述
--dir, -d项目目录(默认:当前目录)
--model, -m耳语模型(默认:small.en)。选项:tiny.enbase.ensmall.enmedium.enlarge-v3
--language, -l语言代码(例如 enesja)。过滤掉非目标语言语音。
--json输出结果为 JSON
该命令自动检测输入类型。音频/视频文件是用whisper.cpp转录的。转录文件(.json.srt.vtt)已标准化并导入。支持的成绩单格式:
格式来源
耳语.cpp JSONhyperframes init --videohyperframes transcribe
OpenAI Whisper API JSONopenai.audio.transcriptions.create() 带有单词时间戳
SRT 字幕视频编辑器、YouTube、字幕工具
视频字幕网络播放器、YouTube、转录服务
所有格式均标准化为标准 [{text, start, end}] 字数组并保存为 transcript.json。如果项目有标题 HTML 文件,它们会自动使用脚本数据进行修补。
对于音乐或嘈杂的音频,请使用 --model medium.en 以获得更高的准确性。为了获得生产内容的最佳效果,请通过 OpenAI 或 Groq Whisper API 进行转录并导入 JSON。

tts

使用本地 AI 模型 (Kokoro-82M) 从文本生成语音音频。无需 API 密钥 — 完全在设备上运行。
# Generate speech from text
npx hyperframes tts "Welcome to HyperFrames"

# Choose a voice
npx hyperframes tts "Hello world" --voice am_adam

# Save to a specific file
npx hyperframes tts "Intro" --voice bf_emma --output narration.wav

# Adjust speech speed
npx hyperframes tts "Slow and clear" --speed 0.8

# Generate Spanish speech (lang auto-detected from the `e` voice prefix)
npx hyperframes tts "La reunión empieza a las nueve" --voice ef_dora --output es.wav

# Override the phonemizer (read English text with a French voice)
npx hyperframes tts "Bonjour le monde" --voice af_heart --lang fr-fr

# Read text from a file
npx hyperframes tts script.txt

# List available voices
npx hyperframes tts --list
旗帜描述
--output, -o输出文件路径(默认:当前目录中的speech.wav
--voice, -v语音 ID(运行 --list 查看选项)
--speed, -s语音速度倍增器(默认值:1.0)
--lang, -lPhonemizer 语言环境(en-usen-gbesfr-frhiitpt-brjazh)。省略时,从语音 ID 前缀推断。
--list列出可用的声音并退出
--json输出结果为 JSON
语音 ID 在其第一个字母中对音素语言进行编码(a=美式、b=英式、e=西班牙语、f=法语、h=印地语、i=意大利语、j=日语、 p=巴西葡萄牙语,z=普通话)。仅当您想要覆盖它时才需要 --lang — 例如,为英语文本提供法语音素以实现风格化口音。
ttstranscribe 结合起来,在单个工作流程中为字幕生成旁白和字级时间戳:使用 tts 生成音频,然后使用 transcribe 转录输出以获得字级计时。

remove-background

使用本地 AI 模型从视频或图像中删除背景。输出是透明媒体,您可以将其放入任何合成的 <video><img> 元素中 — 无需绿屏。
# Default: VP9-with-alpha WebM (HTML5-native, ~1 MB / 4s @ 1080p)
npx hyperframes remove-background avatar.mp4 -o transparent.webm

# ProRes 4444 .mov for editing round-trip
npx hyperframes remove-background avatar.mp4 -o transparent.mov

# Single image → transparent PNG
npx hyperframes remove-background portrait.jpg -o cutout.png

# Layer separation: cutout AND inverse-alpha background plate in one pass
npx hyperframes remove-background avatar.mp4 \
  -o subject.webm --background-output plate.webm

# Force CPU on a machine that has CoreML or CUDA
npx hyperframes remove-background avatar.mp4 -o transparent.webm --device cpu

# Inspect detected providers without rendering
npx hyperframes remove-background --info
旗帜描述
--output, -o输出路径。从扩展推断的格式:.webm(默认)、.mov.png
--background-output, -b可选的第二个输出:反阿尔法背景板(主体区域透明,周围环境不透明)。相同的 RGB 源,互补掩模。必须是 .webm.mov。挖孔,而不是修补——在下面复合一些东西来填充孔。
--device执行提供者:auto(默认)、cpucoremlcuda
--qualityWebM 编码器预设:fast(crf 30,最小)、balanced(crf 18,默认)、best(crf 12,接近无损)。更高的质量使剪切图的 RGB 更接近源 mp4,这在将剪切图叠加到其自己的源上以实现文本背后主题效果时非常重要。适用于 --output--background-output。忽略 .mov / .png
--info打印检测到的执行提供者并退出(无渲染)
--json输出结果为 JSON
该模型是 u2net_human_seg (MIT, ~168 MB ONNX)。权重在第一次运行时下载到 ~/.cache/hyperframes/background-removal/models/ 并随后重复使用。峰值推理 RAM 约为 1.5 GB。--device auto 选择 Apple Silicon 上的 CoreML,CUDA(如果可用),否则选择 CPU。 CLI 捆绑了 onnxruntime-node 的 CPU 版本;对于 CUDA,设置 HYPERFRAMES_CUDA=1 并提供支持 GPU 的 onnxruntime-node 构建。输出格式:
格式使用案例尺寸(4s @ 1080p)
.webm(VP9 阿尔法)放入 <video> 进行 HTML5 原生透明播放〜1MB
.mov (ProRes 4444)在 Premiere / Resolve / DaVinci 中编辑往返〜50MB
.png单张图像剪切各不相同
当 WebM 使用 alpha_mode=1 元数据标记编码为 yuva420p 时,Chrome 中的 <video> 元素仅考虑 alpha 平面。 CLI 会自动设置两者 — 如果您自己重新编码输出,请保留这些标志。
请参阅删除背景指南 了解完整的工作流程 — 在合成中使用透明视频、每个平台的性能、u2net_human_seg 的限制以及此模型不合适时的免费替代工具。

capture

捕获网站 - 提取屏幕截图、设计标记、字体、资产和动画以进行视频制作:
npx hyperframes capture https://stripe.com
npx hyperframes capture https://linear.app -o captures/linear
npx hyperframes capture https://example.com --json
◇  Captured Stripe | Financial Infrastructure → captures/stripe-com

  Screenshots: 12
  Assets: 45
  Sections: 15
  Fonts: sohne-var
旗帜描述
-o, --output输出目录(默认:captures/<hostname>
--timeout页面加载超时(以毫秒为单位)(默认值:120000)
--skip-assets跳过下载图像和字体
--max-screenshots最大屏幕截图数量(默认:24)
--json输出结构化 JSON 以供编程使用
捕获命令提取 AI 代理理解网站视觉标识所需的所有内容:每个滚动深度的视口屏幕截图、调色板(像素采样 + DOM 计算)、字体文件、具有语义名称的图像、SVG、Lottie 动画、视频预览、WebGL 着色器、可见文本和页面结构。输出是一个独立的目录,其中包含 CLAUDE.md 文件,任何 AI 代理都可以读取该文件来了解捕获的站点。由 /website-to-hyperframes 技能用作视频制作流程的第 1 步。.env 文件中设置 GEMINI_API_KEY,通过 Gemini 视觉进行 AI 驱动的图像描述(~0.001 美元/图像)。有关详细信息,请参阅网站到视频 指南。

HyperFrames验证

登录 HeyGen 并管理凭据。凭证存储在 ~/.heygen/credentials(模式 0600)并与 ** 共享 heygen CLI** — 使用其中一个登录,另一个接收会话。 解决顺序(第一场比赛获胜):
  1. HEYGEN_API_KEY 环境变量
  2. HYPERFRAMES_API_KEY 环境变量(HyperFrames别名)
  3. ~/.heygen/credentials

子命令

auth login --api-key

保存 HeyGen API 密钥。密钥根据 GET /v3/users/me 进行验证 在命令报告成功之前;被拒绝的密钥不会留在磁盘上。
# Interactive hidden-input prompt
hyperframes auth login --api-key

# Pipe a key from stdin (CI-friendly)
echo "$HEYGEN_API_KEY" | hyperframes auth login --api-key

auth status

显示活动凭证的来源、类型和经过验证的身份 (帐户+账单快照)。未配置任何内容时以非零值退出 或者 API 拒绝凭据,因此脚本可以检查登录状态。
hyperframes auth status
hyperframes auth status --json   # machine-readable

auth logout

删除存储的凭据。在 TTY 上提示确认。
hyperframes auth logout
hyperframes auth logout --keep-api-key   # clear only an OAuth session
hyperframes auth logout --yes            # skip the confirmation prompt

环境变量

多变的描述
HEYGEN_API_KEY覆盖存储的凭据。
HYPERFRAMES_API_KEYHEYGEN_API_KEY 的别名。
HEYGEN_API_URLAPI 基本 URL(默认 https://api.heygen.com)。
HEYGEN_CONFIG_DIR凭证目录(默认 ~/.heygen)。

HyperFrames云

在 HeyGen 的托管云上渲染 HyperFrames 合成 — 无需本地 Chrome、无需本地 ffmpeg、无需管理 AWS。使用 hyperframes auth login 登录一次,相同的凭据驱动每个 cloud 子命令。
hyperframes auth login                          # one-time
hyperframes cloud render ./my-video             # zip + upload + poll + download
hyperframes cloud render ./my-video --no-wait   # submit and exit with the render_id
hyperframes cloud list                          # browse recent renders

子命令

cloud render [<projectDir>]

端到端渲染:压缩项目(不包括 .gitnode_modulesdist.nextcoverage、点文件),通过 POST /v3/assets 上传,提交 POST /v3/hyperframes/renders,轮询 GET /v3/hyperframes/renders/{id},直到渲染完成或失败,并将生成的视频流式传输到磁盘。 渲染参数在重叠处镜像本地 hyperframes render UX:
旗帜默认意义
--fps30整数 1-240。
--qualitystandarddraftstandardhigh
--formatmp4mp4webmmov
--resolution构图默认landscapeportraitlandscape-4kportrait-4ksquaresquare-4k
--composition / -cindex.html在 zip 中输入 HTML 文件。
--variables内联 JSON 对象覆盖 data-composition-variables
--variables-fileJSON 文件的路径(替代 --variables)。
--strict-variables离开当变量未声明或类型错误时失败。
--title自由文本标签与详细回复相呼应。
--output / -orenders/<render_id>.<ext>下载视频的本地目的地。
生命周期/控制标志:
旗帜意义
--no-wait立即提交并退出;将 render_id 打印到标准输出。
--callback-url渲染终止时触发 HTTPS webhook(使用 --no-wait 组合)。
--callback-idWebhook 负载中回显的不透明跟踪 ID。
--asset-id跳过压缩+上传;提交已上传的作文。与项目目录和 --url 互斥。
--url提交公共 HTTPS zip URL。与 --asset-id 相同的互斥。
--poll-interval轮询节奏(以秒为单位)(默认 10)。
--max-wait最大轮询持续时间(以分钟为单位)(默认 60)。
--idempotency-key用于安全重试的可选 Idempotency-Key(来自 [A-Za-z0-9_:.-] 的 1-255 个字符)。
--json发出机器可读的 JSON,而不是人类友好的进度。
# Default flow — render the current directory.
hyperframes cloud render

# Pick a composition + output path.
hyperframes cloud render . \
  --composition compositions/intro.html \
  --output ./renders/intro.mp4

# Higher quality at 60fps.
hyperframes cloud render --quality high --fps 60

# Fire-and-forget with a webhook (no local polling).
hyperframes cloud render --callback-url https://example.com/hf-hook --no-wait

# Re-render an already-uploaded composition (skips zip + upload).
hyperframes cloud render --asset-id asst_abc123

# Render from a public URL (no upload).
hyperframes cloud render --url https://cdn.example.com/site.zip
通过 --idempotency-key 安全重试
CLI 通过强制刷新 OAuth 令牌并重播失败的请求,以透明方式重试 401 Unauthorized。对于大多数读取来说,这是无害的,但 POST /v3/assets (zip 上传)本身不是幂等的 - 没有 Idempotency-Key 的重试将创建重复的资产并对工作区进行两次计费。 每当您想要安全重试 cloud render 时,请传递 --idempotency-key <key>。密钥被转发到上传和提交调用;服务器对每个端点进行幂等性作用域,因此在两个步骤中重复使用相同的值是安全的,并且可以防止任一步骤出现重复。每个逻辑渲染使用 UUID,或 [A-Za-z0-9_:.-] 中的任何不透明字符串(1-255 个字符)。
hyperframes cloud render . --idempotency-key "$(uuidgen)"

cloud list

通过最近渲染的页面。基于游标:--limit 限制单个页面(1-100),--token 从上一个 next_token 恢复,--all 遍历完整列表直到耗尽。
hyperframes cloud list
hyperframes cloud list --limit 50 --json
hyperframes cloud list --all

cloud get <render_id>

获取一次渲染的完整详细记录,包括短期签名的 video_urlthumbnail_url (预签名的 S3 URL — 按需重新获取而不是缓存)。
hyperframes cloud get hfr_abc123
hyperframes cloud get hfr_abc123 --json

cloud delete <render_id>

软删除渲染。随后的 GET 调用会返回 404,签名的视频 URL 很快就会停止工作。交互提示确认;通过 --no-confirm 绕过脚本。
hyperframes cloud delete hfr_abc123
hyperframes cloud delete hfr_abc123 --no-confirm --json

何时选择 cloud vs lambda vs 本地渲染

  • hyperframes render(本地):最快的迭代循环。在作曲创作期间使用。
  • hyperframes lambda render:自带 AWS 分布式渲染。当您已经投资了 AWS 并且希望在自己的帐户上实现分块并行时,请使用。
  • hyperframes cloud render:零基础设施选项。 HeyGen 运行渲染;您按积分付费。当您不想在本地管理 Chrome/ffmpeg/AWS 时使用。

身份验证 + 基本 URL

cloud 重用 hyperframes auth status 解析的凭证。使用 HEYGEN_API_URL(默认 https://api.heygen.com)覆盖用于分段测试的 API 基础。

HyperFrames lambda

将 HyperFrames 分布式渲染部署到 AWS Lambda 并从您的笔记本电脑或 CI 驱动渲染。 hyperframes lambda 命令组包含 @hyperframes/aws-lambda SDK 和 AWS SAM,因此端到端渲染需要三个命令:
hyperframes lambda deploy
hyperframes lambda render ./my-project --width 1920 --height 1080 --wait
hyperframes lambda destroy   # when you're done

先决条件

  • 配置的 AWS 凭证(环境变量、~/.aws/credentials、SSO 或 IMDS)。
  • PATH 上的 AWS SAM CLI
  • PATH 上的 bun(用于构建 Lambda 处理程序 ZIP)。

子命令

lambda deploy

构建 packages/aws-lambda/dist/handler.zip 并将堆栈部署在 examples/aws-lambda/template.yaml 处。成功后,写入 <cwd>/.hyperframes/lambda-stack-<stackName>.json ,以便其他子命令不需要重新派生存储桶/状态机 ARN。
hyperframes lambda deploy \
  --stack-name=hyperframes-prod \
  --region=us-east-1 \
  --concurrency=8 \
  --memory=10240
幂等 — 当没有任何变化时,在相同的 --stack-name 上重新运行将解析为无操作。

lambda sites create <projectDir>

Tars + 使用内容寻址密钥将 <projectDir> 上传到 S3。返回一个 siteId ,您可以在多个渲染中重复使用,因此同一棵树的重新渲染会跳过上传。
hyperframes lambda sites create ./my-project
# → siteId: abc1234deadbeef0  (stable across re-runs of the same tree)

hyperframes lambda render ./my-project --site-id=abc1234deadbeef0 --width 1920 --height 1080

lambda render <projectDir>

启动 Step Functions 执行。立即返回 renderId (使用 lambda progress 进行轮询),除非设置了 --wait ,在这种情况下,CLI 会阻塞,直到渲染完成并流式传输每个块的进度线。
hyperframes lambda render ./my-project \
  --width=1920 --height=1080 --fps=30 --format=mp4 \
  --chunk-size=240 --max-parallel-chunks=16 \
  --wait
--json 将人类可读的输出交换为机器可解析的 JSON 快照。 该组合可以使用 --variables / --variables-file 进行参数化,镜像本地 hyperframes render 标志。变量流入 Step Functions 执行输入并以 window.__hfVariables 形式到达每个块工作线程。与组合物的 data-composition-variables 声明不匹配打印为警告;传递 --strict-variables 会使命令失败。
hyperframes lambda render ./my-template --site-id=abc1234deadbeef0 \
  --width=1920 --height=1080 \
  --variables '{"title":"Hello Alice","accent":"#ff0000"}'
hyperframes lambda render ./my-template --site-id=abc1234deadbeef0 \
  --width=1920 --height=1080 \
  --variables-file ./alice.json --strict-variables
变量在 Step Functions 标准执行输入内传输,AWS 的整个负载上限为 256 KiB。通过变量传递类型化数据(字符串、数字、结构化记录);组合在渲染时解析 URL 引用媒体资产(图像、音频、视频),而不是内联字节。该开发工具包会在任何 AWS 调用运行之前验证客户端的大小并拒绝过大的输入,并显示明显的错误 - 请参阅 templates-on-lambda 指南 了解 URL-your-assets 约定。

lambda render-batch <projectDir>

从 JSONL 批处理文件扇出 N 个个性化渲染——自动化模板渲染管道的头条人体工学。部署站点一次(或使用 --site-id 跳过),然后使用每个条目 variablesoutputKey 调用每个批处理行 renderToLambda。并发 Step Functions 启动上限为 --max-concurrent(默认为 50),因此 10 000 个条目的批处理不会尝试一次生成 10 000 个执行并超出 AWS 账户限制。 批处理文件格式(JSONL — 每行一个 JSON 对象):
{"outputKey": "renders/alice.mp4", "variables": {"name": "Alice", "accent": "#ff0000"}}
{"outputKey": "renders/bob.mp4",   "variables": {"name": "Bob",   "accent": "#0000ff"}}
{"outputKey": "renders/carol.mp4", "variables": {"name": "Carol"}, "executionName": "hf-carol-001"}
hyperframes lambda render-batch ./my-template \
  --batch ./users.jsonl \
  --width 1920 --height 1080 \
  --max-concurrent 10
该动词打印一个清单——每个输入行一行——带有 executionArn + 状态:
Batch dispatched: 3 started, 0 failed-to-start.

  ✓ line 1  renders/alice.mp4  arn:aws:states:us-east-1:1234:execution:hf:hf-render-...
  ✓ line 2  renders/bob.mp4    arn:aws:states:us-east-1:1234:execution:hf:hf-render-...
  ✓ line 3  renders/carol.mp4  arn:aws:states:us-east-1:1234:execution:hf:hf-carol-001
传递 --json 作为机器可读的形式。通过 hyperframes lambda progress <renderId> 轮询每个执行(或使用返回的 executionArn)。 --dry-run 跳过 AWS 调用并为每个条目打印带有 status: "would-invoke" 的清单 — 在提交 N 个可计费执行之前使用它来检查批处理文件:
hyperframes lambda render-batch ./my-template --batch ./users.jsonl \
  --width 1920 --height 1080 --dry-run --json
--max-concurrent 仅适用于协调器端:它限制同时运行的 StartExecution 调用数量,而不是帐户可以运行的 Lambda 调用数量。 AWS 账户级 Lambda 并发限制向上一级,render-batch 无法强制执行;根据您账户的 concurrent-execution 配额以及您通过 lambda deploy --concurrency=<N> 配置的 Lambda 预留并发数选择 --max-concurrent

lambda progress <renderId | executionArn>

打印一份进度快照 — 总体百分比、渲染的帧、Lambda 调用、应计成本和任何错误。接受裸 renderId (根据堆栈的状态机 ARN 解析)或完整 SFN 执行 ARN。
hyperframes lambda progress hf-render-abcd1234

lambda destroy

调用 sam delete --no-prompts 并删除本地状态文件。渲染 S3 存储桶配置有 CloudFormation Retain,因此它不会被破坏 - 如果您想要恢复存储,请清空并通过 AWS 控制台/CLI 将其删除。

lambda policies role | user | validate

打印或验证 CLI 部署/调用/销毁堆栈所需的最低 IAM 策略。
# Print an inline-policy doc you can attach to an IAM user that runs the CLI.
hyperframes lambda policies user

# Print { TrustRelationship, InlinePolicy } for an IAM role (default: cloudformation principal).
hyperframes lambda policies role --principal=cloudformation

# Validate a checked-in policy still covers the CLI's needs.
hyperframes lambda policies validate ./infra/iam/hyperframes-deploy.json
validate 读取 JSON 文档,并检查其 Effect: Allow 操作与 CLI 所需操作集的并集,扩展 s3:* / s3:Get* / * 通配符。缺少的操作打印到 stderr 并且命令以非零值退出 - 将其连接到 CI 以在下一次部署失败之前捕获偏差。 操作列表故意很宽泛 (Resource: "*"),因为 CloudFormation 会在每个采用者的首次部署时创建新的函数/状态机/存储桶 ARN。具有更严格安全态势的采用者应在首次成功运行后将 Resource 缩小到已部署的 ARN。

国家档案

hyperframes lambda 将每个堆栈元数据保存在 <cwd>/.hyperframes/lambda-stack-<name>.json 下,因此动词不需要每次都调用 describe-stacks 。根据您的工作流程将文件提交到存储库或 .gitignore — 它包含存储桶名称、状态机 ARN 和区域,这些都不是秘密,但所有这些都是 AWS 账户识别信息。

HyperFrames.json

hyperframes init 在每个新项目的根目录写入 hyperframes.json 文件。 hyperframes add 读取它以了解从哪个注册表中提取项目以及将其放置在何处。编辑文件(或删除它以恢复默认值)以重塑项目布局或指向自定义注册表。
{
  "$schema": "https://hyperframes.heygen.com/schema/hyperframes.json",
  "registry": "https://raw.githubusercontent.com/heygen-com/hyperframes/main/registry",
  "paths": {
    "blocks": "compositions",
    "components": "compositions/components",
    "assets": "assets"
  }
}
场地描述
registry从中提取的注册表 add 的基本 URL。默认为公共超框架注册表。
paths.blocks其中块 .html 文件落地(相对于项目根)。
paths.components组件文件所在的位置(相对于项目根目录)。
paths.assets引用的资源文件(图像、字体)所在的位置。
缺失的字段将使用默认值填充 - 您只需指定要覆盖的内容即可。

相关套餐

制片人

CLI 在底层调用的渲染管道。直接用于编程渲染。

工作室

hyperframes preview 提供支持的编辑器 UI。直接使用嵌入您自己的应用程序中。

类型、linter 和运行时。直接用于自定义工具和集成。

引擎

捕获引擎。直接用于自定义帧捕获管道。