@vibeo/cli 0.1.2 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/commands/preview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/commands/preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa;IAC7D,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;IAEjC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,0BAA0B,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,gBAAgB;IAChB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,5 +1,18 @@
1
- /**
2
- * Execute the render command.
3
- */
4
- export declare function renderCommand(args: string[]): Promise<void>;
1
+ import type { Codec, ImageFormat } from "@vibeo/renderer";
2
+ interface RenderOptions {
3
+ entry: string;
4
+ composition: string;
5
+ output: string | undefined;
6
+ fps: number | null;
7
+ frames: string | null;
8
+ codec: Codec;
9
+ concurrency: number;
10
+ imageFormat: ImageFormat;
11
+ quality: number;
12
+ }
13
+ export declare function renderVideo(opts: RenderOptions): Promise<{
14
+ output: string;
15
+ elapsed: string;
16
+ }>;
17
+ export {};
5
18
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAqIA;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqEjE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAE1E,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAuBD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C9C"}
@@ -1,114 +1,5 @@
1
1
  import { resolve } from "node:path";
2
- import { availableParallelism } from "node:os";
3
- import { parseFrameRange } from "@vibeo/renderer";
4
- import { renderComposition } from "@vibeo/renderer";
5
- function parseArgs(args) {
6
- const result = {
7
- entry: "",
8
- composition: "",
9
- output: null,
10
- fps: null,
11
- frames: null,
12
- codec: "h264",
13
- concurrency: Math.max(1, Math.floor(availableParallelism() / 2)),
14
- imageFormat: "png",
15
- quality: 80,
16
- };
17
- for (let i = 0; i < args.length; i++) {
18
- const arg = args[i];
19
- const next = args[i + 1];
20
- if (arg === "--entry" && next) {
21
- result.entry = next;
22
- i++;
23
- }
24
- else if (arg.startsWith("--entry=")) {
25
- result.entry = arg.slice("--entry=".length);
26
- }
27
- else if (arg === "--composition" && next) {
28
- result.composition = next;
29
- i++;
30
- }
31
- else if (arg.startsWith("--composition=")) {
32
- result.composition = arg.slice("--composition=".length);
33
- }
34
- else if (arg === "--output" && next) {
35
- result.output = next;
36
- i++;
37
- }
38
- else if (arg.startsWith("--output=")) {
39
- result.output = arg.slice("--output=".length);
40
- }
41
- else if (arg === "--fps" && next) {
42
- result.fps = parseInt(next, 10);
43
- i++;
44
- }
45
- else if (arg.startsWith("--fps=")) {
46
- result.fps = parseInt(arg.slice("--fps=".length), 10);
47
- }
48
- else if (arg === "--frames" && next) {
49
- result.frames = next;
50
- i++;
51
- }
52
- else if (arg.startsWith("--frames=")) {
53
- result.frames = arg.slice("--frames=".length);
54
- }
55
- else if (arg === "--codec" && next) {
56
- result.codec = next;
57
- i++;
58
- }
59
- else if (arg.startsWith("--codec=")) {
60
- result.codec = arg.slice("--codec=".length);
61
- }
62
- else if (arg === "--concurrency" && next) {
63
- result.concurrency = parseInt(next, 10);
64
- i++;
65
- }
66
- else if (arg.startsWith("--concurrency=")) {
67
- result.concurrency = parseInt(arg.slice("--concurrency=".length), 10);
68
- }
69
- else if (arg === "--image-format" && next) {
70
- result.imageFormat = next;
71
- i++;
72
- }
73
- else if (arg.startsWith("--image-format=")) {
74
- result.imageFormat = arg.slice("--image-format=".length);
75
- }
76
- else if (arg === "--quality" && next) {
77
- result.quality = parseInt(next, 10);
78
- i++;
79
- }
80
- else if (arg.startsWith("--quality=")) {
81
- result.quality = parseInt(arg.slice("--quality=".length), 10);
82
- }
83
- else if (arg === "--help" || arg === "-h") {
84
- printHelp();
85
- process.exit(0);
86
- }
87
- }
88
- return result;
89
- }
90
- function printHelp() {
91
- console.log(`
92
- vibeo render - Render a composition to video
93
-
94
- Usage:
95
- vibeo render --entry <path> --composition <id> [options]
96
-
97
- Required:
98
- --entry <path> Path to the root file with compositions
99
- --composition <id> Composition ID to render
100
-
101
- Options:
102
- --output <path> Output file path (default: out/<compositionId>.mp4)
103
- --fps <number> Override fps
104
- --frames <range> Frame range "start-end" (e.g., "0-100")
105
- --codec <codec> h264 | h265 | vp9 | prores (default: h264)
106
- --concurrency <number> Parallel browser tabs (default: cpu count / 2)
107
- --image-format <format> png | jpeg (default: png)
108
- --quality <number> 0-100 for jpeg quality / crf (default: 80)
109
- --help Show this help
110
- `);
111
- }
2
+ import { parseFrameRange, renderComposition } from "@vibeo/renderer";
112
3
  function formatTime(ms) {
113
4
  const seconds = Math.floor(ms / 1000);
114
5
  const minutes = Math.floor(seconds / 60);
@@ -125,63 +16,40 @@ function renderProgressBar(progress) {
125
16
  const eta = etaMs !== null ? ` ETA ${formatTime(etaMs)}` : "";
126
17
  process.stdout.write(`\r [${bar}] ${pct}% (${framesRendered}/${totalFrames})${eta} `);
127
18
  }
128
- /**
129
- * Execute the render command.
130
- */
131
- export async function renderCommand(args) {
132
- const parsed = parseArgs(args);
133
- if (!parsed.entry) {
134
- console.error("Error: --entry is required");
135
- printHelp();
136
- process.exit(1);
137
- }
138
- if (!parsed.composition) {
139
- console.error("Error: --composition is required");
140
- printHelp();
141
- process.exit(1);
142
- }
143
- const entry = resolve(parsed.entry);
144
- const compositionId = parsed.composition;
145
- // TODO: In a full implementation, we would bundle the entry, extract
146
- // composition metadata, and use it here. For now we require the user
147
- // to have the composition info available.
148
- // This is a simplified flow that demonstrates the pipeline.
149
- const ext = parsed.codec === "vp9" ? "webm" : parsed.codec === "prores" ? "mov" : "mp4";
150
- const output = parsed.output
151
- ? resolve(parsed.output)
152
- : resolve(`out/${compositionId}.${ext}`);
153
- console.log(`\nRendering composition "${compositionId}"`);
154
- console.log(` Entry: ${entry}`);
19
+ export async function renderVideo(opts) {
20
+ const ext = opts.codec === "vp9" ? "webm" : opts.codec === "prores" ? "mov" : "mp4";
21
+ const output = opts.output
22
+ ? resolve(opts.output)
23
+ : resolve(`out/${opts.composition}.${ext}`);
24
+ console.log(`\nRendering composition "${opts.composition}"`);
25
+ console.log(` Entry: ${opts.entry}`);
155
26
  console.log(` Output: ${output}`);
156
- console.log(` Codec: ${parsed.codec}`);
157
- console.log(` Image format: ${parsed.imageFormat}`);
158
- console.log(` Concurrency: ${parsed.concurrency}`);
27
+ console.log(` Codec: ${opts.codec}`);
28
+ console.log(` Concurrency: ${opts.concurrency}`);
159
29
  console.log();
160
- // For a full render, we need composition info from the bundle.
161
- // This would normally be extracted by bundling and evaluating the entry.
162
- // Here we set up the render config and delegate to renderComposition.
163
30
  const compositionInfo = {
164
31
  width: 1920,
165
32
  height: 1080,
166
- fps: parsed.fps ?? 30,
33
+ fps: opts.fps ?? 30,
167
34
  durationInFrames: 300,
168
35
  };
169
- const frameRange = parseFrameRange(parsed.frames, compositionInfo.durationInFrames);
36
+ const frameRange = parseFrameRange(opts.frames, compositionInfo.durationInFrames);
170
37
  const startTime = Date.now();
171
38
  await renderComposition({
172
- entry,
173
- compositionId,
39
+ entry: opts.entry,
40
+ compositionId: opts.composition,
174
41
  outputPath: output,
175
- codec: parsed.codec,
176
- imageFormat: parsed.imageFormat,
177
- quality: parsed.quality,
178
- fps: parsed.fps,
42
+ codec: opts.codec,
43
+ imageFormat: opts.imageFormat,
44
+ quality: opts.quality,
45
+ fps: opts.fps,
179
46
  frameRange,
180
- concurrency: parsed.concurrency,
47
+ concurrency: opts.concurrency,
181
48
  pixelFormat: "yuv420p",
182
49
  onProgress: renderProgressBar,
183
50
  }, compositionInfo);
184
- const elapsed = Date.now() - startTime;
185
- console.log(`\n\nDone in ${formatTime(elapsed)}. Output: ${output}`);
51
+ const elapsed = formatTime(Date.now() - startTime);
52
+ console.log(`\n\nDone in ${elapsed}. Output: ${output}`);
53
+ return { output, elapsed };
186
54
  }
187
55
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/commands/render.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,59 +1,125 @@
1
- import { renderCommand } from "./commands/render.js";
2
- import { previewCommand } from "./commands/preview.js";
3
- import { listCommand } from "./commands/list.js";
4
- import { createCommand } from "./commands/create.js";
5
- const args = process.argv.slice(2);
6
- const command = args[0];
7
- function printUsage() {
8
- console.log(`
9
- vibeo - React video framework CLI
10
-
11
- Usage:
12
- vibeo <command> [options]
13
-
14
- Commands:
15
- create Create a new project from a template
16
- render Render a composition to video
17
- preview Start a dev server with live preview
18
- list List registered compositions
19
-
20
- Options:
21
- --help Show help for a command
22
-
23
- Examples:
24
- vibeo create my-video
25
- vibeo create music-viz --template audio-reactive
26
- vibeo render --entry src/index.tsx --composition MyComp --output out.mp4
27
- vibeo preview --entry src/index.tsx
28
- vibeo list --entry src/index.tsx
29
- `);
30
- }
31
- async function main() {
32
- if (!command || command === "--help" || command === "-h") {
33
- printUsage();
34
- process.exit(0);
35
- }
36
- switch (command) {
37
- case "create":
38
- await createCommand(args.slice(1));
39
- break;
40
- case "render":
41
- await renderCommand(args.slice(1));
42
- break;
43
- case "preview":
44
- await previewCommand(args.slice(1));
45
- break;
46
- case "list":
47
- await listCommand(args.slice(1));
48
- break;
49
- default:
50
- console.error(`Unknown command: ${command}`);
51
- printUsage();
52
- process.exit(1);
53
- }
54
- }
55
- main().catch((err) => {
56
- console.error(err);
57
- process.exit(1);
1
+ import { Cli, z } from "incur";
2
+ import { resolve } from "node:path";
3
+ import { availableParallelism } from "node:os";
4
+ import { createProject } from "./commands/create.js";
5
+ import { startPreview } from "./commands/preview.js";
6
+ import { listCompositions } from "./commands/list.js";
7
+ import { renderVideo } from "./commands/render.js";
8
+ import { installSkills } from "./commands/install-skills.js";
9
+ const cli = Cli.create("vibeo", {
10
+ description: "React-based programmatic video framework CLI",
11
+ sync: {
12
+ suggestions: [
13
+ "create a new video project",
14
+ "preview a composition in the browser",
15
+ "render a composition to video",
16
+ "list all registered compositions",
17
+ ],
18
+ },
58
19
  });
20
+ cli.command("create", {
21
+ description: "Create a new Vibeo project from a template",
22
+ args: z.object({
23
+ name: z.string().describe("Project directory name"),
24
+ }),
25
+ options: z.object({
26
+ template: z
27
+ .enum(["basic", "audio-reactive", "transitions", "subtitles"])
28
+ .default("basic")
29
+ .describe("Template to scaffold from"),
30
+ }),
31
+ examples: [
32
+ { args: { name: "my-video" }, description: "Create with basic template" },
33
+ { args: { name: "viz" }, options: { template: "audio-reactive" }, description: "Create with audio-reactive template" },
34
+ ],
35
+ async run(c) {
36
+ return await createProject(c.args.name, c.options.template);
37
+ },
38
+ });
39
+ cli.command("preview", {
40
+ description: "Start a dev server with live preview in the browser",
41
+ options: z.object({
42
+ entry: z.string().describe("Path to the root file with compositions"),
43
+ port: z.number().default(3000).describe("Port for the dev server"),
44
+ }),
45
+ examples: [
46
+ { options: { entry: "src/index.tsx" }, description: "Preview on default port" },
47
+ ],
48
+ async run(c) {
49
+ await startPreview(resolve(c.options.entry), c.options.port);
50
+ },
51
+ });
52
+ cli.command("render", {
53
+ description: "Render a composition to a video file",
54
+ options: z.object({
55
+ entry: z.string().describe("Path to the root file with compositions"),
56
+ composition: z.string().describe("Composition ID to render"),
57
+ output: z.string().optional().describe("Output file path (default: out/<id>.mp4)"),
58
+ fps: z.number().optional().describe("Override frames per second"),
59
+ frames: z.string().optional().describe('Frame range, e.g. "0-100" or "50"'),
60
+ codec: z
61
+ .enum(["h264", "h265", "vp9", "prores"])
62
+ .default("h264")
63
+ .describe("Video codec"),
64
+ concurrency: z
65
+ .number()
66
+ .default(Math.max(1, Math.floor(availableParallelism() / 2)))
67
+ .describe("Number of parallel browser tabs"),
68
+ imageFormat: z
69
+ .enum(["png", "jpeg"])
70
+ .default("png")
71
+ .describe("Intermediate frame image format"),
72
+ quality: z.number().default(80).describe("JPEG quality / CRF value (0-100)"),
73
+ }),
74
+ examples: [
75
+ { options: { entry: "src/index.tsx", composition: "MyComp" }, description: "Render with defaults" },
76
+ { options: { entry: "src/index.tsx", composition: "MyComp", codec: "vp9", frames: "0-100" }, description: "Render a frame range as WebM" },
77
+ ],
78
+ async run(c) {
79
+ return await renderVideo({
80
+ entry: resolve(c.options.entry),
81
+ composition: c.options.composition,
82
+ output: c.options.output,
83
+ fps: c.options.fps ?? null,
84
+ frames: c.options.frames ?? null,
85
+ codec: c.options.codec,
86
+ concurrency: c.options.concurrency,
87
+ imageFormat: c.options.imageFormat,
88
+ quality: c.options.quality,
89
+ });
90
+ },
91
+ });
92
+ cli.command("list", {
93
+ description: "List registered compositions in an entry file",
94
+ options: z.object({
95
+ entry: z.string().describe("Path to the root file with compositions"),
96
+ }),
97
+ examples: [
98
+ { options: { entry: "src/index.tsx" }, description: "List all compositions" },
99
+ ],
100
+ async run(c) {
101
+ const compositions = await listCompositions(resolve(c.options.entry));
102
+ return { compositions };
103
+ },
104
+ });
105
+ cli.command("install-skills", {
106
+ description: "Install Vibeo skill/rule files for all supported LLM coding tools (Claude, Codex, Cursor, Gemini, OpenCode, Aider)",
107
+ options: z.object({
108
+ targets: z
109
+ .string()
110
+ .optional()
111
+ .describe('Comma-separated list of targets (default: all). Options: claude, codex, cursor, gemini, opencode, aider'),
112
+ }),
113
+ examples: [
114
+ { description: "Install for all supported tools" },
115
+ { options: { targets: "claude,cursor" }, description: "Install for Claude and Cursor only" },
116
+ ],
117
+ async run(c) {
118
+ const targets = c.options.targets
119
+ ? c.options.targets.split(",").map((t) => t.trim())
120
+ : [];
121
+ return await installSkills(targets, process.cwd());
122
+ },
123
+ });
124
+ cli.serve();
59
125
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBb,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM;QACR,KAAK,MAAM;YACT,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeo/cli",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,10 +14,11 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
+ "@vibeo/audio": "0.1.0",
17
18
  "@vibeo/core": "0.1.0",
18
- "@vibeo/renderer": "0.1.0",
19
19
  "@vibeo/player": "0.1.0",
20
- "@vibeo/audio": "0.1.0"
20
+ "@vibeo/renderer": "0.1.0",
21
+ "incur": "^0.3.13"
21
22
  },
22
23
  "files": [
23
24
  "bin",