关于 vibemovie
VibeMovie 面向开发者和创作者,将结构化编码会话事件编译成可独立播放的动画 HTML;也可选择通过 WaveSpeed AI 和 FFmpeg 生成带旁白的 MP4。默认渲染无需 API 密钥。
主要功能
- 01按事件生成场景
- 02三种叙事模板
- 03三种 HTML 画面比例
- 04支持播放、字幕与时间轴拖动
- 05可选托管生成与 MP4 组装
适用场景
- 01将任务和测试事件制作为离线 HTML 回顾
- 02用 JSON 整理拉取请求里程碑
- 03通过 MCP 渲染提供的事件
- 04使用 WaveSpeed AI 生成电影式回顾
MCP 相关
`vibemovie mcp` 通过 stdio 提供一个 `render` 工具,可根据事件数组及可选渲染参数生成 HTML,或写入输出文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| out | string | 否 | 写入 HTML(或 cinematic 模式下的 mp4)的可选路径。 |
| ratio | enum | 否 | 播放器宽高比(默认 16:9)。16:9 | 9:16 | 1:1 |
| title | string | 否 | 标题卡片上的会话名称。 |
| engine | enum | 否 | 渲染引擎(默认 hyperframes)。hyperframes | cinematic |
| events | array | 是 | 会话事件:[{ "kind": "task-done", "ts": 1720000000000, "payload": { "label": "..." } }, ...]。已知类型:task-done、tests-pass、tests-fail、error、pr-opened、pr-merged、session-end。使用的 payload 字段:label、durationMin、files、additions、deletions、filesChanged、pr、branch、reviewers、passed。 |
| template | enum | 否 | 字幕语气和节奏(默认 documentary)。documentary | speedrun | meme |
详细介绍
VibeMovie
VibeMovie 是一款开源工具,可为开发者和创作者生成编码会话回顾。 它通过本地 Hyperframes 引擎,将结构化事件转化为独立的动画 HTML 故事。 可选的电影级引擎通过 WaveSpeed AI 和 FFmpeg 生成带旁白的 MP4 输出。VibeMovie 属于 Vibe Suite。
安装
npm install -g vibemovie
需要 Node.js 18 或更高版本。包含 TypeScript 声明和两个直接运行时依赖。 默认的 Hyperframes 引擎无需 API 密钥、浏览器自动化或安装 FFmpeg。
渲染你的第一个回顾
创建输入文件:
cat > session.json <<'JSON'
[
{"kind":"task-done","ts":1769500000000,"agent":"claude-code","payload":{"label":"Refactor auth","durationMin":18}},
{"kind":"tests-pass","ts":1769503600000,"payload":{"passed":42}},
{"kind":"pr-merged","ts":1769505100000,"payload":{"pr":42,"branch":"main"}}
]
JSON
vibemovie render session.json --title "Auth recap" --out recap.html
CLI 会输出 recap rendered 和输出文件路径。在浏览器中打开 recap.html,即可播放故事并拖动时间轴。
无需环境变量或凭据。CLI 不会加载 .env 文件。
输入描述的是事件;VibeMovie 不会自动检查你的编码 Agent 历史记录。
工作原理
JSON events -> normalize and sort -> scene compiler
|
+---------------------+---------------------+
v v
Hyperframes (default) cinematic (explicit)
embedded HTML/CSS/JavaScript WaveSpeed images + video + voice
| |
offline browser player FFmpeg -> MP4
Hyperframes 渲染使用本地 vibe-core 运行器,并禁用出站网络访问。 电影级渲染会将派生提示词、旁白文本和中间媒体发送至 WaveSpeed AI。
为何打造
终端录制会保留活动记录。回顾则会将任务、测试结果、差异总量和拉取请求里程碑精选成一个短篇故事。 VibeMovie 使用固定模板编译所提供的事件。构建默认回顾不需要大模型。 Remotion 和 asciinema 也适用于相关的视频和终端工作流,但使用不同的输入。
比较
于 2026-10-14 对照 Remotion 和 asciinema CLI 检查。
| 属性 | VibeMovie | Remotion | asciinema |
|---|---|---|---|
| 输入 | 结构化编码事件 | React 视频合成 | 终端会话输出 |
| 范围 | 基于模板的回顾故事 | 程序化视频和动态图形 | 终端录制和流式传输 |
| 此处的默认产物 | 独立 HTML | 渲染后的合成内容或嵌入式播放器 | Asciicast 录制 |
| 编写方式 | JSON、Node.js API、Agent 工具 | React 组件 | 录制器 CLI |
覆盖范围
| 集成或界面 | 状态 | 源行为 |
|---|---|---|
| Hyperframes | 已实现;本地 | 嵌入式 HTML、CSS、JavaScript 和场景数据 |
| WaveSpeed AI | 已实现;实时 API 待接入 | 托管生成编排 |
| ByteDance Seedream v4 | 已通过 WaveSpeed 实现;实时 API 待接入 | 主视觉和人脸参考图像 |
| FLUX Kontext Max | 已通过 WaveSpeed 实现;实时 API 待接入 | 关键帧图像编辑 |
| Kling v2.5 Turbo Pro | 已通过 WaveSpeed 实现;实时 API 待接入 | 图生视频片段 |
| ElevenLabs Eleven v3 | 已通过 WaveSpeed 实现;实时 API 待接入 | 旁白合成 |
| WaveSpeed 视频换脸 | 已实现;尽力而为 | 可选的中间人脸一致性步骤 |
| FFmpeg | 已实现;外部可执行文件 | 规范化、拼接、调色并混流,生成电影级输出 |
| Claude Code / OpenAI Codex / Google Gemini CLI | 仅事件输入 | 自行提供规范化 JSON;不读取特定工具的日志 |
| MCP | 已实现 | 一个 stdio 渲染工具 |
| OpenAI Sora / Replicate | — | 未提供适配器 |
源代码通过一个 API 服务声明了两个引擎、三种宽高比、三个模板、六种场景类型和五个托管模型端点。 此处的验证涵盖了源代码和使用注入式电影级依赖的本地测试。未执行付费 API 请求或凭据检查。 端点已实现,并不保证提供商仍提供相应模型。
常见用例
- Claude Code 开发者:将任务和测试事件导出为离线 HTML 回顾。
- Codex 维护者:用 JSON 描述拉取请求的里程碑,制作发布故事。
- Gemini CLI 创作者:使用
--ratio 9:16选择竖屏 Hyperframes 输出。 - Node.js 团队:在现有事件流水线中调用
buildScenes和renderHyperframes。 - MCP Agent:使用单个
render工具渲染提供的事件。 - WaveSpeed 用户:使用自己的密钥和 FFmpeg 安装,选择启用托管电影级生成。
功能
- 场景: 标题、任务、差异、终端、合并和结尾;可选场景取决于所提供的数据。
- 模板: documentary、speedrun 和 meme 控制字幕与节奏。
- HTML 宽高比:
16:9、9:16和1:1。 - 播放器: 播放/暂停、时间轴拖动、字幕和嵌入式场景数据。
- 确定性编译: 相同的事件和场景选项会生成相同的本地场景。
- 电影级流水线: 生成参考图像、关键帧、片段和旁白,并在本地组装 MP4。
- 镜头配方: 导出配方数据和确定性选择器,供自定义调用方使用;不是自动的 CLI 故事板选择器。
- 套件通知: 渲染时会通过 vibe-core 尽力发送
render-done事件。
运行时界面
vibemovie render [file.json|-] [--ratio 16:9|9:16|1:1]
[--template documentary|speedrun|meme] [--engine hyperframes|cinematic]
[--out path] [--title name]
vibemovie mcp
vibemovie help
vibemovie --help / -h
vibemovie --version / -v / -V
render 从文件或 stdin 读取。输入可以是事件数组,也可以是 { "events": [...] }。
默认值为 hyperframes、documentary、16:9 和 ./vibe-recap.html。
电影级输出默认为 ./vibe-recap.mp4。
vibemovie mcp 会启动 stdio Model Context Protocol(MCP)服务,其中包含一个工具:
| 工具 | 必填输入 | 可选输入 | 结果 |
|---|---|---|---|
render | events 数组 | ratio、template、engine、title、out | HTML 文本,或写入的输出路径 |
库示例
使用 npm install vibemovie 安装。将以下内容保存为 recap.mjs,然后运行 node recap.mjs:
import { renderMovie } from 'vibemovie';
const result = await renderMovie([
{ kind: 'task-done', ts: 1769500000000, payload: { label: 'Ship auth' } }
], { title: 'Auth recap', out: 'recap.html' });
console.log(result.engine, result.path); // hyperframes recap.html
buildScenes(events, options) 和 renderHyperframes(scenes, options) 也会导出,供自定义流水线使用。
交付与行为限制
Hyperframes 生成的是动态 HTML,而非 MP4 或 GIF。它不会录制屏幕,也不会实时串流 Agent 活动。
CLI 没有 --session 或 --repo 导入器。渲染前,请将外部录制转换为事件架构。
场景编译器最多显示五行任务、四个差异文件名和五行终端内容。
终端内容行是对所提供事件的摘要,并非录制的终端记录。
差异统计和测试结果反映输入中的声明,不代表经过独立的 Git 或测试运行验证。
电影级输出统一为 1280×720,帧率为每秒 24 帧。HTML 比例选项不会改变该电影级输出尺寸。
电影级提示词使用固定角色和场景。没有用户头像选择或动态配乐引擎。
缺少 WAVESPEED_API_KEY 或 FFmpeg 时会回退到 HTML;已识别的视频文件扩展名会变为 .html。
运行时提供方故障不会触发通用 HTML 回退。失败的片段可能会被跳过;如果所有片段都失败,则渲染会中止。
预测轮询次数有限:通常为 95 次,旁白为 60 次,人脸替换为 140 次。请求没有显式网络超时。
人脸替换步骤可能回退到原始剪辑。临时电影级工作文件会保留在磁盘上。
渲染前请检查输入:托管式旁白可能包含任务标签、会话名称和摘要值。
集成指南
- 竖屏 HTML 回顾:
vibemovie render session.json --ratio 9:16 --template speedrun --out portrait.html。 - 事件管道:将 JSON 数组通过管道传入
vibemovie render --out recap.html。 - 托管式电影级回顾:安装 FFmpeg,导出
WAVESPEED_API_KEY,然后运行vibemovie render session.json --engine cinematic。 - 环境文件:启动 CLI 前,请在 shell 或启动器中加载变量;VibeMovie 不会自动读取
.env。 - Agent 设置:配置 MCP 主机,通过 stdio 启动
vibemovie mcp。
托管式渲染使用 https://api.wavespeed.ai/api/v3。此管道不需要单独的 ElevenLabs 密钥。
状态
版本 0.2.4 尚未达到 1.0;API 和生成行为可能会发生变化。
目前尚未发布公开案例研究。尚未配置公开文档站点;此处已包含完整的设置指南。
仅含源代码的原型展示了其他控制项;它们不是随附发布的 Web 应用。
如需支持,请使用 GitHub issues;可能需要仓库访问权限。
如需贡献,请运行 npm ci、npm run build、npm run typecheck、npm test 和 git diff --check。
常见问题
哪些集成经过了验证?
VibeMovie 使用注入的依赖项测试本地渲染和电影级编排。本次重写尚未通过凭据验证托管端点。
VibeMovie 提供托管视频服务吗?
VibeMovie 以本地软件包的形式运行。可选的托管式生成需要使用你的 WaveSpeed API 密钥和提供方账户。
VibeMovie 与 Remotion 有什么区别?
VibeMovie 使用预设场景编译结构化会话事件。Remotion 提供基于 React 的自定义视频合成工具。
VibeMovie 与 asciinema 有什么区别?
VibeMovie 根据所提供的事件渲染摘要。asciinema 会录制并串流终端输出。
VibeMovie 能离线运行吗?
VibeMovie 无需远程资源或 API 密钥即可渲染 Hyperframes HTML。其电影级引擎需要访问托管 API。
VibeMovie 无需凭据就能导出 MP4 吗?
没有电影级凭据时,VibeMovie 默认输出 HTML。生成 MP4 需要 WaveSpeed 密钥和 FFmpeg。
VibeMovie 会自动读取 Claude Code 或 Codex 日志吗?
VibeMovie 接受 JSON 事件输入,而不会扫描 Agent 框架日志。请通过文件、stdin、库或 MCP 提供事件数组。
VibeMovie 能使用我现有的 Sora 或 Replicate 账户吗?
此版本的 VibeMovie 没有 Sora 或 Replicate 适配器。电影级管道会调用固定的 WaveSpeed 模型端点。
电影级 MP4 支持所有输出比例吗?
VibeMovie 在 Hyperframes HTML 中支持三种比例。电影级拼接目前会将视频统一为 1280×720。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。