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 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
@@ -0,0 +1,6 @@
1
+ // src/version.ts
2
+ var VERSION = "0.1.0";
3
+
4
+ export {
5
+ VERSION
6
+ };