Skip to main content
hyperframes CLI 是使用HyperFrames的主要方式。它可以从您的终端处理项目创建、实时预览、渲染、linting 和诊断。

何时使用

当您想要执行以下操作时使用 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)。它不是每个命令上的全局标志。

JSON 输出和 _meta 信封

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

被动更新通知

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

入门

1

创建一个项目

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

在浏览器中预览

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

检查你的作品

渲染前检查结构问题:
4

渲染为 MP4

制作最终视频:
渲染特定的合成而不是 index.html
对于确定性输出,请添加 --docker

命令

init

从示例创建一个新的组合项目:
在非交互模式下,需要 --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 在项目根目录读取 hyperframes.json 以了解要从哪个注册表中提取以及在何处放置文件。如果该文件丢失,但目录看起来像 Hyperframes 项目(具有 index.html),则第一次运行 add 时会写入默认的 hyperframes.json块或组件的输出是一组文件加上粘贴片段 - 要包含在主机组合中的 <iframe> 标记(对于块)或片段路径(对于组件)。默认情况下,代码片段会复制到剪贴板;为 CI 或无头环境添加 --no-clipboard尝试使用示例名称(例如 hyperframes add warm-grain)使用 add 会发出一个明确的错误,指向 init --example

catalog

浏览注册表 - 列出可用的块和组件以及可选的过滤器:
默认输出是一个列出名称、类型、描述和标签的表——专为代理进行解析而设计。 --json 产生结构化输出。 --human-friendly 打开一个交互式选择器,该选择器在选择时运行 add

compositions

列出当前项目中的所有作品:
显示每个合成的 ID、持续时间、分辨率和元素计数。

transcribe

将音频/视频转录为字级时间戳,或导入现有转录:
该命令自动检测输入类型。音频/视频文件是用whisper.cpp转录的。转录文件(.json.srt.vtt)已标准化并导入。支持的成绩单格式:所有格式均标准化为标准 [{text, start, end}] 字数组并保存为 transcript.json。如果项目有标题 HTML 文件,它们会自动使用脚本数据进行修补。
对于音乐或嘈杂的音频,请使用 --model medium.en 以获得更高的准确性。为了获得生产内容的最佳效果,请通过 OpenAI 或 Groq Whisper API 进行转录并导入 JSON。

tts

使用本地 AI 模型 (Kokoro-82M) 从文本生成语音音频。无需 API 密钥 — 完全在设备上运行。
语音 ID 在其第一个字母中对音素语言进行编码(a=美式、b=英式、e=西班牙语、f=法语、h=印地语、i=意大利语、j=日语、 p=巴西葡萄牙语,z=普通话)。仅当您想要覆盖它时才需要 --lang — 例如,为英语文本提供法语音素以实现风格化口音。
ttstranscribe 结合起来,在单个工作流程中为字幕生成旁白和字级时间戳:使用 tts 生成音频,然后使用 transcribe 转录输出以获得字级计时。

remove-background

使用本地 AI 模型从视频或图像中删除背景。输出是透明媒体,您可以将其放入任何合成的 <video><img> 元素中 — 无需绿屏。
该模型是 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 构建。输出格式:
当 WebM 使用 alpha_mode=1 元数据标记编码为 yuva420p 时,Chrome 中的 <video> 元素仅考虑 alpha 平面。 CLI 会自动设置两者 — 如果您自己重新编码输出,请保留这些标志。
请参阅删除背景指南 了解完整的工作流程 — 在合成中使用透明视频、每个平台的性能、u2net_human_seg 的限制以及此模型不合适时的免费替代工具。

capture

捕获网站 - 提取屏幕截图、设计标记、字体、资产和动画以进行视频制作:
捕获命令提取 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 进行验证 在命令报告成功之前;被拒绝的密钥不会留在磁盘上。

auth status

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

auth logout

删除存储的凭据。在 TTY 上提示确认。

环境变量

HyperFrames云

在 HeyGen 的托管云上渲染 HyperFrames 合成 — 无需本地 Chrome、无需本地 ffmpeg、无需管理 AWS。使用 hyperframes auth login 登录一次,相同的凭据驱动每个 cloud 子命令。

子命令

cloud render [<projectDir>]

端到端渲染:压缩项目(不包括 .gitnode_modulesdist.nextcoverage、点文件),通过 POST /v3/assets 上传,提交 POST /v3/hyperframes/renders,轮询 GET /v3/hyperframes/renders/{id},直到渲染完成或失败,并将生成的视频流式传输到磁盘。 渲染参数在重叠处镜像本地 hyperframes render UX: 生命周期/控制标志:
通过 --idempotency-key 安全重试
CLI 通过强制刷新 OAuth 令牌并重播失败的请求,以透明方式重试 401 Unauthorized。对于大多数读取来说,这是无害的,但 POST /v3/assets (zip 上传)本身不是幂等的 - 没有 Idempotency-Key 的重试将创建重复的资产并对工作区进行两次计费。 每当您想要安全重试 cloud render 时,请传递 --idempotency-key <key>。密钥被转发到上传和提交调用;服务器对每个端点进行幂等性作用域,因此在两个步骤中重复使用相同的值是安全的,并且可以防止任一步骤出现重复。每个逻辑渲染使用 UUID,或 [A-Za-z0-9_:.-] 中的任何不透明字符串(1-255 个字符)。

cloud list

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

cloud get <render_id>

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

cloud delete <render_id>

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

何时选择 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,因此端到端渲染需要三个命令:

先决条件

  • 配置的 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。
幂等 — 当没有任何变化时,在相同的 --stack-name 上重新运行将解析为无操作。

lambda sites create <projectDir>

Tars + 使用内容寻址密钥将 <projectDir> 上传到 S3。返回一个 siteId ,您可以在多个渲染中重复使用,因此同一棵树的重新渲染会跳过上传。

lambda render <projectDir>

启动 Step Functions 执行。立即返回 renderId (使用 lambda progress 进行轮询),除非设置了 --wait ,在这种情况下,CLI 会阻塞,直到渲染完成并流式传输每个块的进度线。
--json 将人类可读的输出交换为机器可解析的 JSON 快照。 该组合可以使用 --variables / --variables-file 进行参数化,镜像本地 hyperframes render 标志。变量流入 Step Functions 执行输入并以 window.__hfVariables 形式到达每个块工作线程。与组合物的 data-composition-variables 声明不匹配打印为警告;传递 --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 对象):
该动词打印一个清单——每个输入行一行——带有 executionArn + 状态:
传递 --json 作为机器可读的形式。通过 hyperframes lambda progress <renderId> 轮询每个执行(或使用返回的 executionArn)。 --dry-run 跳过 AWS 调用并为每个条目打印带有 status: "would-invoke" 的清单 — 在提交 N 个可计费执行之前使用它来检查批处理文件:
--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。

lambda destroy

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

lambda policies role | user | validate

打印或验证 CLI 部署/调用/销毁堆栈所需的最低 IAM 策略。
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 读取它以了解从哪个注册表中提取项目以及将其放置在何处。编辑文件(或删除它以恢复默认值)以重塑项目布局或指向自定义注册表。
缺失的字段将使用默认值填充 - 您只需指定要覆盖的内容即可。

相关套餐

制片人

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

工作室

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

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

引擎

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