vibemovie 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +146 -0
- package/dist/chunk-HI6AAJID.js +6 -0
- package/dist/chunk-JTRTKTPK.js +729 -0
- package/dist/cli.d.ts +42 -0
- package/dist/cli.js +192 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.js +10 -0
- package/dist/mcp.d.ts +13 -0
- package/dist/mcp.js +80 -0
- package/dist/scenes-CKgKppfK.d.ts +118 -0
- package/package.json +64 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Pooria Arab
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# VibeMovie
|
|
2
|
+
|
|
3
|
+
**Your vibe coding session, as a movie.**
|
|
4
|
+
|
|
5
|
+
Transforms your AI-assisted coding activity into a cinematic, narrated video — complete with chapters, a storyline, dramatic music, and visual effects. Not a screen recording. A movie.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm i -g vibemovie
|
|
11
|
+
# or run it directly
|
|
12
|
+
npx vibemovie --help
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Quick start
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# render a session recap from a JSON events file (or stdin)
|
|
19
|
+
vibemovie render session.json
|
|
20
|
+
# → writes ./vibe-recap.html — open it in any browser
|
|
21
|
+
|
|
22
|
+
vibemovie render session.json --ratio 9:16 --template speedrun --out recap.html
|
|
23
|
+
cat session.json | vibemovie render
|
|
24
|
+
|
|
25
|
+
# expose the render tool to your agent
|
|
26
|
+
vibemovie mcp
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The default engine is **Hyperframes**: the recap is a self-contained animated
|
|
30
|
+
HTML page rendered fully **offline** — **zero API keys**, no network, nothing
|
|
31
|
+
leaves your machine. (Gen-video providers like Sora/Wavespeed slot into the
|
|
32
|
+
cascade above it later; v0 ships the guaranteed floor.)
|
|
33
|
+
|
|
34
|
+
Input is a JSON array of events (or `{ "events": [...] }`):
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
[
|
|
38
|
+
{ "kind": "task-done", "ts": 1769500000000, "agent": "claude-code", "cwd": "/repo/demo",
|
|
39
|
+
"payload": { "label": "Refactor auth middleware", "durationMin": 18 } },
|
|
40
|
+
{ "kind": "tests-pass", "ts": 1769503600000, "payload": { "passed": 42 } },
|
|
41
|
+
{ "kind": "pr-merged", "ts": 1769505100000, "payload": { "pr": 42, "branch": "main" } }
|
|
42
|
+
]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Library usage:
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { renderMovie } from 'vibemovie';
|
|
49
|
+
|
|
50
|
+
const { html, path } = await renderMovie(events, {
|
|
51
|
+
ratio: '16:9', // '16:9' | '9:16' | '1:1'
|
|
52
|
+
template: 'documentary', // 'documentary' | 'speedrun' | 'meme'
|
|
53
|
+
out: 'recap.html', // optional — omit to just get the HTML string
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`buildScenes(events)` (events → scene list) and `renderHyperframes(scenes)` (scene list → HTML) are pure and exported for custom pipelines.
|
|
58
|
+
|
|
59
|
+
## Why Build This
|
|
60
|
+
|
|
61
|
+
- VibeReplay captures sessions — VibeMovie turns them into stories
|
|
62
|
+
- "I built a SaaS in 4 hours" is interesting — a cinematic version of it is unforgettable
|
|
63
|
+
- Content creators spend hours editing coding videos — this automates the entire pipeline
|
|
64
|
+
- Every VibeMovie shared is a viral ad for the tool
|
|
65
|
+
- Think: AI-generated documentary of your coding process
|
|
66
|
+
|
|
67
|
+
## Features
|
|
68
|
+
|
|
69
|
+
- **Story arc** — AI analyzes your session and creates a narrative: setup, struggle, breakthrough, deploy
|
|
70
|
+
- **Cinematic editing** — Automatic cuts, zooms, transitions, and focus on the interesting parts
|
|
71
|
+
- **AI narration** — Generated voiceover that explains the journey: "At minute 23, everything broke..."
|
|
72
|
+
- **Dynamic soundtrack** — Music that matches the emotional arc (powered by VibeRadio engine)
|
|
73
|
+
- **Code highlights** — Key code snippets rendered beautifully with syntax highlighting and annotations
|
|
74
|
+
- **Stats overlay** — Lines of code, files changed, tokens used, time elapsed
|
|
75
|
+
- **Chapters** — Auto-generated based on git commits and milestones
|
|
76
|
+
- **Multiple formats** — YouTube (16:9), X/TikTok (9:16), LinkedIn (1:1), GIF summary
|
|
77
|
+
- **Thumbnail generation** — AI-generated thumbnail optimized for clicks
|
|
78
|
+
- **Templates** — Documentary, tutorial, speedrun, meme
|
|
79
|
+
|
|
80
|
+
## Generation engine (cascade)
|
|
81
|
+
|
|
82
|
+
Video generation follows the shared `@vibe/core` cascade so it always works:
|
|
83
|
+
|
|
84
|
+
1. **Your existing model** — if your agent's provider does video (e.g. Sora via your
|
|
85
|
+
OpenAI), use it.
|
|
86
|
+
2. **A video-gen key you bring** — Wavespeed, Replicate, or similar.
|
|
87
|
+
3. **Hyperframes fallback** — pure HTML/CSS/JS animated "video" (a rendered,
|
|
88
|
+
animated web page). No generative-video model, no key, no network — always
|
|
89
|
+
available. (The prototype below _is_ a working Hyperframes recap.)
|
|
90
|
+
|
|
91
|
+
Options across all tiers: **sync/live** (scenes build as the agent works) or
|
|
92
|
+
**async** (rendered after a turn/session) — user-configurable per hook · **aspect
|
|
93
|
+
ratios** 16:9 / 9:16 / 1:1 / GIF · **sound on/off** (soundtrack via the VibeRadio
|
|
94
|
+
engine + optional narration) · **subtitles/captions** · **transitions & templates**
|
|
95
|
+
(documentary, tutorial, speedrun, meme) · **avatar narrator** — if you've set up a
|
|
96
|
+
personal likeness/voice (e.g. HeyGen, or an on-device avatar), the recap can be
|
|
97
|
+
narrated by your avatar instead of an abstract summary.
|
|
98
|
+
|
|
99
|
+
## Distribution
|
|
100
|
+
|
|
101
|
+
- **CLI** — `vibemovie render session.json` (today) · `--session <id>` / `--repo .` (planned)
|
|
102
|
+
- **npm package** — `npm install -g vibemovie`
|
|
103
|
+
- **MCP server** — `vibemovie mcp` exposes a `render` tool your agent can call
|
|
104
|
+
- **Claude Code skill** — `/vibemovie` to render your last session
|
|
105
|
+
- **skills.sh** — Listed on skills.sh marketplace
|
|
106
|
+
- **Web app** — Upload a git repo, get a movie of its entire history
|
|
107
|
+
|
|
108
|
+
## Tech Stack
|
|
109
|
+
|
|
110
|
+
- Node.js + TypeScript
|
|
111
|
+
- Remotion (video rendering)
|
|
112
|
+
- Claude API (narrative generation, story arc)
|
|
113
|
+
- ElevenLabs (voiceover)
|
|
114
|
+
- Tone.js (soundtrack — shared with VibeRadio)
|
|
115
|
+
- FFmpeg (post-processing)
|
|
116
|
+
|
|
117
|
+
## Prototype
|
|
118
|
+
|
|
119
|
+
Interactive, self-contained UX prototype (no build, no network): open
|
|
120
|
+
[`docs/prototype.html`](docs/prototype.html) in a browser — it plays a real
|
|
121
|
+
Hyperframes recap with a working scrubber, the cascade selector, and an avatar
|
|
122
|
+
narrator toggle.
|
|
123
|
+
|
|
124
|
+
## Local-first
|
|
125
|
+
|
|
126
|
+
Runs on your own machine. The Hyperframes tier renders fully offline; nothing leaves
|
|
127
|
+
your machine unless you opt into a hosted video model. Enforced by the `@vibe/core`
|
|
128
|
+
consent model.
|
|
129
|
+
|
|
130
|
+
## Vibe Suite
|
|
131
|
+
|
|
132
|
+
Part of the **Vibe Suite** — companion tools for agentic coding CLIs (Claude Code,
|
|
133
|
+
Codex, Cursor, Gemini, Grok, pi, Kimi, and other harnesses). Ships as **CLI + npm
|
|
134
|
+
package + MCP server**.
|
|
135
|
+
|
|
136
|
+
## Relationship to VibeReplay
|
|
137
|
+
|
|
138
|
+
- **VibeReplay** = raw capture + timelapse (quick, functional)
|
|
139
|
+
- **VibeMovie** = cinematic, narrated, story-driven (polished, shareable)
|
|
140
|
+
- VibeMovie can use VibeReplay recordings as input
|
|
141
|
+
|
|
142
|
+
## Revenue Potential
|
|
143
|
+
|
|
144
|
+
- Free tier: 1 movie/month, watermarked, 720p
|
|
145
|
+
- Pro: unlimited, 4K, custom branding, all templates
|
|
146
|
+
- Studio: team movies, custom narration voice, API access
|