實戰手冊 · Field Manual 2026 春季號
github.com/nexu-io/html-video · 228 ★
h
第 03 期 · 開源工具 / AI Agent 影片產製

coding agent,
把 HTML 變成影片

html-video 是 nexu-io 開源的 HTML→影片 meta-layer。你給它一段 HTML、一篇文章或一個 GitHub repo,本機的 coding agent 會讀內容、挑選範本、產生 content-graph 與逐格 HTML,再經無頭 Chromium 與 ffmpeg 渲染成 MP4。21 套授權乾淨的範本、6 種可自動偵測的 agent,全程在你的筆電上跑,沒有單次渲染費。這份手冊涵蓋安裝、套件結構、支援 agent、範本庫與完整渲染管線。

228
GitHub Stars
21
內建影片範本
6
支援 Coding Agent
Apache 2.0
開源授權
01
這到底是什麼

一層讓 agent
會做影片的中介層。

html-video 是 nexu-io 開源的 HTML→影片 meta-layer,授權為 Apache 2.0。它本身不畫影格,而是把「產生影片」這件事翻譯成 coding agent 已經會做的事:讀內容、填 HTML 範本、輸出結構化資料。輸入可以是一段 HTML、一篇文章 URL,或一個 GitHub repo;輸出是本機渲染的 MP4。

運作分工很清楚。agent 負責語意層:讀素材、選範本、產生 content-graph(多場景的中介表示)與每一格的自包含 HTML。引擎負責像素層:adapter-hyperframes 用無頭 Chromium 把每格錄成 WebM,再交給 ffmpeg 以 libx264 編碼、串接,必要時混入音訊。整條管線跑在你的筆電上,沒有雲端、沒有單次渲染費。

agent 不是寫死的。專案會偵測 PATH 上已安裝的 coding agent,支援 Open Design(Vela)、Claude Code、Cursor Agent、Codex CLI、Hermes,以及自帶金鑰的 Anthropic Messages API。渲染後端同樣是可插拔的 adapter,目前實作 Hyperframes,Remotion、Motion Canvas、Revideo、Manim 列在規劃中。

渲染管線 · 從素材到 MP4(六步)
Source fetch Agent loop Content-graph 逐格 HTML Hyperframes render ffmpeg MP4
HTML becomes video, on your laptop.
— html-video 專案標語 · github.com/nexu-io/html-video
02
安裝與啟動

三行建置,
打開 Studio。

html-video 是 pnpm monorepo,需要先安裝相依、建置所有 workspace,再啟動 studio。渲染端額外需要系統層的 ffmpegChromium(供無頭錄製)。建置完成後,studio 會在 http://127.0.0.1:3071 開啟瀏覽器介面。

pnpm install pnpm -r build node packages/cli/dist/bin.js studio # http://127.0.0.1:3071

先跑 doctor,確認環境

doctor 會偵測本機已安裝的 coding agent 與渲染引擎,確認 html-video 找得到至少一個可用 agent。search-templates 則用自然語意搜尋範本庫,回傳最相關的幾筆。

# 偵測已安裝的 agent 與引擎 node packages/cli/dist/bin.js doctor # 依意圖搜尋範本,取前 3 筆 node packages/cli/dist/bin.js search-templates --intent "github stars race" --top 3
不需要綁定特定 agent。html-video 會掃描 PATH 自動偵測可用的 coding agent。本機若已裝好 Claude Code、Cursor Agent、Codex CLI、Hermes 或 Open Design(Vela)其中之一就能直接用;沒有任何 CLI agent 時,也可在 Settings 填入 Anthropic API 金鑰,走 BYOK 的 Messages API。
03
套件結構 · Monorepo

六個套件,
分管語意像素

html-video 以 monorepo 切成六個 workspace。上半是語意層,負責內容理解、範本與 agent 編排;下半是像素層,負責擷取與編碼。日常從 cliproject-studio 入手,其餘套件在你要程式化整合或自訂引擎時才會直接接觸。

語意層 · 01
core/
型別 · 編排器
Project、Asset、ContentGraph 型別與註冊表、orchestrator、MiniMax provider、ffmpeg 音訊混音。
語意層 · 02
content-graph/
多場景 IR
多格 storyboard 的中介表示,由 node 與 edge 組成,並做拓樸排序決定播放順序。
語意層 · 03
runtime/
Agent 偵測
偵測與啟動 coding agent:Open Design/Vela、Claude、Cursor、Codex、Hermes、Anthropic API。
像素層 · 04
adapter-hyperframes/
渲染引擎
Hyperframes engine 適配器。以無頭 Chromium 加 ffmpeg 把逐格 HTML 渲染成影片。
入口 · 05
cli/
CLI · studio server
CLI 介面、studio HTTP 伺服器、來源抓取。studio、doctor、search-templates 都在這。
入口 · 06
project-studio/
瀏覽器 UI
對話、範本藝廊、逐格編輯、配樂與匯出的瀏覽器介面。

content-graph:影片的中介表示

多場景影片不寫死成時間軸,而是先表達成一張 content-graph。node 是內容單元、edge 是它們之間的關係,經拓樸排序後決定場景順序,再由 agent 展開成逐格 HTML。

元素 型別 作用
node entity / data / text 一個內容單元:實體、數據或文字。
edge sequence / dependency / contrast 節點間關係:先後、依賴或對比。
拓樸排序 topological sort 依 edge 解析出場景的播放順序。
04
支援 Agent · 範本庫

六種 agent,
二十一套範本

語意層的工作交給 coding agent。html-video 偵測 PATH 上已安裝的 agent,各以不同方式驅動;沒有 CLI agent 時也能用自帶金鑰的 Anthropic Messages API。下表是官方文件列出的六種接入方式。

Agent 偵測 驅動方式
Open Design(Vela) vela / 內建 ACP over stdio
Claude Code claude claude --print via stdin
Cursor Agent cursor-agent cursor-agent --print via stdin
Codex CLI codex codex exec via stdin
Hermes hermes Hermes ACP CLI
Anthropic API BYOK Direct Messages API

範本是內容的骨架。21 套授權乾淨的範本依用途分成五類,每套都附 template.html-video.yaml manifest,定義分類、標籤、輸入 schema、支援解析度、長寬比、fps、時長界限與授權資訊。agent 依素材挑範本、填內容。

範本 01

資料視覺化

圖表導向的範本,涵蓋 NYT 風格圖表與 Swiss / Vignelli 網格排版。適合把數據與排行做成動態畫面。

來源 · 官方文件 · 範本分類
範本 02

標題與 VFX

文字特效範本:glitch 效果、kinetic typography、打字機游標。用於開場標題與強調字卡。

來源 · 官方文件 · 範本分類
範本 03

主視覺與電影感

Hero 與 cinematic 範本:液態漸層、light-leak 光暈、暖色顆粒。用於品牌開場與情緒鋪陳。

來源 · 官方文件 · 範本分類
範本 04

產品宣傳片

多場景的 product promo 範本,提供 15 秒與 30 秒版本,直接套用於產品介紹短片。

來源 · 官方文件 · 範本分類
範本 05

說明片骨架

Explainer scaffold,內含決策樹等結構,用來把流程或概念拆成可視的步驟。

來源 · 官方文件 · 範本分類
音訊

AI 配樂與旁白(選用)

在 Settings → Audio 填入 MiniMax API 金鑰後,可用 mood 描述生成背景音樂、用 TTS 加旁白。兩者混入 MP4,音樂在人聲下自動 ducking,並可加淡入淡出。

來源 · 官方文件 · Soundtrack
05
完整渲染流程

把一個 repo,
變成一支 MP4

以下示範把一個 GitHub repo 做成短片:studio 在伺服器端抓取 repo,coding agent 讀內容、選一套資料視覺化範本、產生 content-graph 與逐格 HTML,Hyperframes 用無頭 Chromium 逐格錄成 WebM,最後 ffmpeg 編碼並串接成 MP4。整段都跑在本機。

html-video · studio + cli
# 1 · 確認本機 agent 與引擎就緒 $ node packages/cli/dist/bin.js doctor
✓ agents claude · cursor-agent · codex ✓ engine hyperframes (chromium + ffmpeg) audio minimax key not set (soundtrack optional)
# 2 · 開 studio,貼上要轉成影片的 repo $ node packages/cli/dist/bin.js studio ▶ studio · http://127.0.0.1:3071
studio › 把 github.com/nexu-io/html-video 做成 20 秒的 stars race 短片。
[1/6 source fetch · 伺服器端抓取 repo README + metadata] [2/6 agent loop · claude reads material] [search-templates --intent "github stars race" → data-viz/nyt-bars]
agent › 選用範本 data-viz/nyt-bars。我把內容拆成 content-graph: node text "html-video" (title) node data stars 0 → 228 (entity) node text "Apache-2.0 · local" (caption) edge sequence title → bars → caption
[3/6 content-graph · 3 nodes · 1 edge · topological sort ✓] [4/6 per-frame HTML · agent emits 4 self-contained frames]
[5/6 hyperframes render · headless chromium → webm] frame 01 intro ........ recorded frame 02 bars grow .... recorded frame 03 bars settle .. recorded frame 04 caption ...... recorded
[6/6 ffmpeg · libx264 · concat 4 frames · 20.0s]
✓ exported out/html-video-stars.mp4 · 1920×1080 · 20s 沒有任何雲端呼叫,整支片在本機渲染完成。
agent 負責語意,引擎負責像素。
中間用 content-graph 交班。
— 把「做影片」拆成 coding agent 已經會做的事

這段流程的關鍵

agent 沒有直接畫影格,而是輸出 content-graph 與逐格 HTML。這兩者都是文字,既能被 review,也能被引擎逐格錄製。範本提供視覺骨架、agent 填入素材內容,職責清楚分離。

渲染後端是可插拔的 adapter。目前由 adapter-hyperframes 以無頭 Chromium 實作,只要滿足單一 render(input, ctx) 介面就能替換;官方規劃中的 Remotion、Motion Canvas、Revideo、Manim 都走同一個契約。

06
先看清楚這些

上手前,
先確認邊界

  • 需要先建置 monorepo。這是 pnpm workspace,必須先 pnpm installpnpm -r build,CLI 才會出現在 packages/cli/dist/bin.js。跳過建置會找不到指令。
  • 渲染依賴 ffmpeg 與 Chromium。引擎以無頭 Chromium 錄製、ffmpeg(libx264)編碼,兩者皆為系統層相依。缺任一項,render 會失敗;先用 doctor 確認引擎就緒。
  • 至少要有一個可用 agent。語意層交給 coding agent,html-video 會掃描 PATH 偵測。本機沒有任何 CLI agent 時,需在 Settings 填入 Anthropic API 金鑰走 BYOK,否則 agent loop 無法執行。
  • 目前只有 Hyperframes 引擎。渲染 adapter 雖然可插拔,但現階段只有 adapter-hyperframes 已實作;Remotion、Motion Canvas、Revideo、Manim 仍列在規劃中,尚不可用。
  • 配樂是選用功能,需自備金鑰。背景音樂與旁白由 MiniMax 生成,要先在 Settings → Audio 填入 MiniMax API 金鑰。沒填則只輸出無聲影片,其餘流程不受影響。
  • 範本有授權與規格界限。每套範本的 template.html-video.yaml 定義了支援解析度、長寬比、fps 與時長界限。輸出規格需落在範本宣告的範圍內,超出界限的需求應換範本或自訂。
07
進階路徑

把 html-video 接進你的內容流程。

studio 適合互動式產製,CLI 與套件則讓你把它接進自動化流程。以下是幾條官方文件支持的延伸方向。

延伸方向

1. 用 search-templates 做選範本路由。search-templates --intent "..." --top N 以自然語意搜尋範本庫,可在腳本裡先選定範本,再交給 agent 填內容。

2. 文章與 repo 一鍵成片。studio 在伺服器端抓取 URL 或 repo,適合把部落格文章、release notes、repo 簡介批次轉成短片。

3. 加上 AI 配樂與旁白。填入 MiniMax 金鑰後,用 Soundtrack 面板以 mood 生成配樂、以 TTS 加旁白,匯出時自動混音與 ducking。

4. 換用其他 agent。偵測是基於 PATH 的,裝好 Cursor Agent、Codex CLI 或 Hermes 即可切換;無 CLI agent 時用 BYOK 的 Anthropic Messages API。

5. 自訂渲染引擎。引擎是滿足 render(input, ctx) 契約的 adapter。要接 Remotion、Manim 等後端,實作同一介面即可,語意層不必更動。

延伸閱讀

github.com/nexu-io/html-video:原始碼、套件結構、範本庫與授權(Apache 2.0)。
② repo 內 README 與各範本的 template.html-video.yaml:CLI 指令、agent 偵測與範本 manifest 規格。

HTML becomes video, on your laptop.
— html-video · nexu-io/html-video