Skip to content

shayyz-code/vibevid-cli

Repository files navigation

VibeVid CLI

Coding Education Video Scene Generator for creating short, high-energy explainer videos from a script.

VibeVid turns a coding topic into timed scenes, searches visuals, applies text/transition styling, and renders a final MP4 with FFmpeg.

What It Generates

  • Fast scene sequences designed for developer education videos.
  • Fireship-inspired pacing with punchy overlays and frequent visual changes.
  • Mixed visual sources: stock clips, meme GIFs, code visuals, and tool logos.
  • Final output synced to segment timings.

Rendering Style

The default pipeline is tuned toward a fast technical explainers style:

  • Short scenes with denser cuts.
  • Overlay templates: big_center, lower_third, side_caption, blank, neon_box.
  • Transitions: cut, zoom, fade, flash, spin.

Prerequisites

  • Go 1.26+ (for building from source)
  • Bun or Node.js (for rendering)
  • FFmpeg available on PATH

Installation

Homebrew (macOS / Linux)

brew tap shayyz-code/homebrew-tap
brew install vibevid

Build from source

go build -o vibevid ./cmd/vibevid

Quick Start

JSON script plan (full scene control):

./vibevid --script examples/script_git.json --output output/git_scene.mp4

Command Flags

  • -s, --script: Input script path (.json) (required)
  • -o, --output: Output video path (default output.mp4)

Script Mode

VibeVid uses your segment timeline directly from a JSON file.

Use this mode for:

  • Precise editorial control
  • Repeatable output
  • Defined transitions, overlays, and visual intent

Example:

{
  "segments": [
    {
      "start_time": 0.0,
      "end_time": 1.0,
      "asset_path": "local_assets/git_logo.png",
      "visual_type": "logo",
      "text_overlay": "GIT",
      "text_template": "big_center",
      "transition": "flash"
    }
  ]
}

Notes:

  • Segment timings are strict: each segment MUST have valid start_time and end_time (where start < end).
  • asset_path MUST point to a local file (e.g., logo, meme, video).

Releasing

The project uses GoReleaser via GitHub Actions to automate releases.

When you push a new tag, the GitHub Action will automatically:

  1. Build cross-platform binaries.
  2. Create a GitHub Release with the artifacts.
  3. Update the Homebrew formula in shayyz-code/homebrew-tap.

Important: You must configure a repository secret named TAP_GITHUB_TOKEN in your GitHub repository (Settings > Secrets and variables > Actions). This should be a Personal Access Token (PAT) with repo scope so it has permission to push the formula to your separate Homebrew tap repository.

To trigger a release:

git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

Developer Commands

make build
make run-example
make clean

License

MIT

About

Video Generator from a script for creating short, high-energy Coding Education explainer videos.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors