vibemovie について
VibeMovieは、構造化されたコーディングセッションのイベントを、開発者やクリエイター向けの自己完結型アニメーションHTMLにまとめます。オプションのパイプラインではWaveSpeed AIとFFmpegを使い、ナレーション付きMP4を生成できます。標準のレンダラーにAPIキーは不要です。
主な機能
- 01イベントからシーンを生成
- 023種類のリカップテンプレート
- 03HTMLの3種類のアスペクト比
- 04再生、字幕、タイムライン操作
- 05オプションのホスト生成とMP4組み立て
活用シーン
- 01タスクとテストのイベントからオフラインHTMLのリカップを作る
- 02プルリクエストの節目をJSONで記述する
- 03MCP経由で指定イベントをレンダリングする
- 04WaveSpeed AIでシネマティックなリカップを作る
MCP 対応
`vibemovie mcp`はstdioで単一のMCPツール`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 の型定義と、直接依存するランタイム依存関係が 2 つ含まれています。 デフォルトの 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 がコーディングエージェントの履歴を自動的に調べることはありません。
仕組み
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、エージェントツール | 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 レンダーツール 1 つ |
| OpenAI Sora / Replicate | — | プロバイダーアダプターは同梱されていません |
ソースでは、1 つの API サービスを通じて、2 つのエンジン、3 つのアスペクト比、3 つのテンプレート、6 種類のシーン、5 つのホスト型モデルエンドポイントを宣言しています。 ここでの検証対象は、ソースと、シネマティック依存関係を注入したローカルテストです。有料 API リクエストや認証情報の確認は行っていません。 エンドポイントが実装済みであっても、プロバイダーモデルが引き続き利用可能であることを保証するものではありません。
一般的なユースケース
- Claude Code の開発者:タスクとテストのイベントをオフラインの HTML リキャップに出力します。
- Codex のメンテナー:リリースストーリー用にプルリクエストのマイルストーンを JSON で記述します。
- Gemini CLI のクリエイター:
--ratio 9:16でポートレート形式の Hyperframes 出力を選択します。 - Node.js チーム:既存のイベントパイプライン内で
buildScenesとrenderHyperframesを呼び出します。 - MCP エージェント:単一の
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 は、次のツール 1 つを備えた 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 ではありません。画面を録画したり、エージェントの動作をライブ配信したりすることはありません。
CLI に --session や --repo のインポーターはありません。外部の録画をレンダリングする前に、イベントスキーマに変換してください。
シーンコンパイラーが表示するタスク行は最大 5 行、差分ファイル名は最大 4 件、ターミナル行は最大 5 行です。
ターミナル行は提供されたイベントの要約であり、記録されたターミナルトランスクリプトではありません。
差分の合計とテスト結果は入力された内容を反映するものであり、Git やテスト実行による独立した検証は行われません。
シネマティック出力は、24 フレーム/秒の 1280×720 に正規化されます。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 を起動する前に、シェルまたはランチャーで変数を読み込みます。VibeMovie は
.envを自動的に読み込みません。 - エージェントのセットアップ: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 イベント入力を受け付けます。ファイル、stdin、ライブラリ、または MCP を通じてイベント配列を渡してください。
VibeMovie は既存の Sora または Replicate アカウントを使用できますか?
このバージョンの VibeMovie に Sora または Replicate のアダプターはありません。シネマティックパイプラインは固定された WaveSpeed モデルのエンドポイントを呼び出します。
シネマティック MP4 では、すべての出力比率を利用できますか?
VibeMovie は Hyperframes HTML で 3 つの比率をサポートしています。シネマティックアセンブリでは、現在、動画を 1280×720 に正規化します。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。