{"id":48018155,"url":"https://github.com/vericontext/vibeframe","last_synced_at":"2026-06-09T19:00:27.759Z","repository":{"id":335803748,"uuid":"1147087099","full_name":"vericontext/vibeframe","owner":"vericontext","description":"AI-Native Video Editor — CLI-first, MCP-ready. Generate, edit, and ship videos from your terminal.","archived":false,"fork":false,"pushed_at":"2026-06-07T10:26:44.000Z","size":152854,"stargazers_count":127,"open_issues_count":6,"forks_count":27,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T11:21:07.634Z","etag":null,"topics":["ai","ai-agents","claude","cli","developer-tools","ffmpeg","gemini","image-to-video","mcp","monorepo","open-source","openai","text-to-video","tts","typescript","video-editing","video-generation"],"latest_commit_sha":null,"homepage":"https://vibeframe.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vericontext.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-01T06:58:09.000Z","updated_at":"2026-06-07T10:26:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vericontext/vibeframe","commit_stats":null,"previous_names":["vericontext/vibe-edit"],"tags_count":163,"template":false,"template_full_name":null,"purl":"pkg:github/vericontext/vibeframe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vericontext%2Fvibeframe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vericontext%2Fvibeframe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vericontext%2Fvibeframe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vericontext%2Fvibeframe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vericontext","download_url":"https://codeload.github.com/vericontext/vibeframe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vericontext%2Fvibeframe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34121022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","claude","cli","developer-tools","ffmpeg","gemini","image-to-video","mcp","monorepo","open-source","openai","text-to-video","tts","typescript","video-editing","video-generation"],"created_at":"2026-04-04T13:44:53.737Z","updated_at":"2026-06-09T19:00:27.751Z","avatar_url":"https://github.com/vericontext.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VibeFrame\n\n**Brief to MP4 with your coding agent.**\n\nVibeFrame is an agentic video workflow layer around composition engines. It\nhelps humans and AI coding agents turn a written brief into `STORYBOARD.md`,\n`DESIGN.md`, generated assets, timed scene compositions, review reports, and a\nfinal MP4.\n\nVibeFrame is **CLI-first, not terminal-only**. The CLI is the stable runtime:\nJSON output, dry runs, cost gates, deterministic project files, and\nmachine-readable reports that Codex, Claude Code, Cursor, and other host apps\ncan act on. VibeFrame also includes FFmpeg-style editing commands, AI media\nprimitives, YAML pipelines, and an optional MCP server, but the north-star path\nis the storyboard-driven project loop.\n\nMost users do not need a new chat UI. Install the runtime once, then ask Codex,\nClaude Code, Cursor, Aider, Gemini CLI, OpenCode, or any other shell-capable\nagent to operate the video project. For app hosts that prefer typed tools, use\n`vibe host setup` to configure MCP. `vibe agent` exists as an optional built-in\nfallback when you do not already have an AI coding agent.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![CI](https://github.com/vericontext/vibeframe/actions/workflows/ci.yml/badge.svg)](https://github.com/vericontext/vibeframe/actions/workflows/ci.yml)\n[![GitHub stars](https://img.shields.io/github/stars/vericontext/vibeframe)](https://github.com/vericontext/vibeframe/stargazers)\n\n```bash\ncurl -fsSL https://vibeframe.ai/install.sh | bash\n\nmkdir launch-demo \u0026\u0026 cd launch-demo\nmkdir -p launch/media\n\n# brief.md can be rough notes, pasted research, links, or a one-line idea.\ncat \u003e brief.md \u003c\u003c'EOF'\nMake a 30-second launch video for VibeFrame.\n\nAudience: developers using Codex, Claude Code, or Cursor.\nMessage: a coding agent can turn a brief into a rendered MP4.\nTone: technical, concise, credible.\n\nIf media/product-shot.png exists, use it as the hero product reference.\nEOF\n\n# Optional: put your own photos, logos, screenshots, or B-roll in launch/media/.\n# cp ~/Desktop/product-shot.png launch/media/\n\nvibe setup --scope project\nvibe init launch --from brief.md --json\nvibe host setup all launch # optional: print Codex/Claude/Cursor app config\n\n# Ask Codex, Claude Code, Cursor, or another host agent:\n# \"Research this topic and update launch/STORYBOARD.md and launch/DESIGN.md.\n#  Tighten the image-generation cues, then build and inspect the video.\"\n\nvibe storyboard validate launch --json\nvibe build launch --dry-run --json\nvibe build launch --json\nvibe render launch -o renders/final.mp4 --json\nvibe inspect render launch --cheap --json\n```\n\n## Demo\n\nThis demo shows the intended first-run shape: start with rough intent, add any\noptional source media, let a coding agent update the project files, then build,\nrender, inspect, and share the MP4.\n\n1. Install `vibe`.\n2. Run `vibe setup --scope project`.\n3. Write `brief.md` as messy notes, research, links, or a one-line idea.\n4. Optional: place photos, screenshots, logos, clips, or voice files in\n   `launch/media/`.\n5. Run `vibe init launch --from brief.md`.\n6. Ask a coding agent to research a topic and update `STORYBOARD.md` and\n   `DESIGN.md`.\n7. Let the storyboard include explicit image-generation cues or local\n   `media/...` references.\n8. Build, render, inspect, and share the final MP4.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cvideo src=\"https://github.com/user-attachments/assets/f080f5e4-02a9-4625-977f-8f16e7c434bb\" controls muted width=\"100%\"\u003e\u003c/video\u003e\n      \u003cbr /\u003e\n      \u003cstrong\u003eProcess highlight\u003c/strong\u003e\u003cbr /\u003e\n      \u003csub\u003eAgent-driven setup, research, storyboard/design edits, image cues, build, render, and review.\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\" valign=\"top\"\u003e\n      \u003cvideo src=\"https://github.com/user-attachments/assets/10c85f2b-d07c-4d82-9922-fbc114fcf8be\" controls muted width=\"100%\"\u003e\u003c/video\u003e\n      \u003cbr /\u003e\n      \u003cstrong\u003eRendered result\u003c/strong\u003e\u003cbr /\u003e\n      \u003csub\u003eThe final MP4 produced from the storyboard composition workflow.\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## What It Does\n\n- **Build videos from briefs:** scaffold `STORYBOARD.md` and `DESIGN.md`, let\n  an agent revise them, then run `vibe plan`, `vibe build`, `vibe inspect`,\n  and `vibe render`.\n- **Run the agent loop safely:** use JSON output, dry runs, cost caps,\n  `build-report.json`, `review-report.json`, and deterministic repair commands.\n- **Route provider-heavy work:** generate images, video clips, narration,\n  music, sound effects, motion graphics, and thumbnails through pluggable AI\n  providers only when the storyboard or command asks for them.\n- **Use escape hatches:** drop into `generate`, `edit`, `remix`, `audio`,\n  YAML, timeline, or MCP workflows when the job is one asset, one media edit,\n  or one repeatable pipeline instead of a full storyboard build.\n\n## Workflow Lanes\n\nUse the highest-level lane that matches the job:\n\n| Lane                 | Use it when...                                        | Source of truth               | Commands                                                        |\n| -------------------- | ----------------------------------------------------- | ----------------------------- | --------------------------------------------------------------- |\n| **BUILD**            | You want a complete video from a written brief        | `STORYBOARD.md` + `DESIGN.md` | `vibe init`, `storyboard`, `plan`, `build`, `render`, `inspect` |\n| **GENERATE / ASSET** | You need one standalone image, clip, voice, or music  | The prompt and provider flags | `vibe generate image`, `video`, `narration`, `music`, `motion`  |\n| **EDIT / REMIX**     | You already have media and want to change or reuse it | The existing media file       | `vibe edit`, `vibe remix`, `vibe audio`, `vibe detect`          |\n\nThis is the same routing model scaffolded into project `AGENTS.md`. It keeps\nagents from treating every natural-language request as a full scene project:\n\n- **BUILD:** create or revise a multi-scene video. Edit `STORYBOARD.md` for\n  narration, beat timing, and image/video/music cues. Edit `DESIGN.md` for\n  palette, typography, composition, and motion language. Then run `vibe build`\n  and `vibe render`.\n- **GENERATE / ASSET:** create one asset directly. Do not edit\n  `STORYBOARD.md` or `DESIGN.md` unless the user explicitly asks for a\n  storyboard project.\n- **EDIT / REMIX:** start from an existing media file. Use `vibe edit`,\n  `vibe remix`, or `vibe audio` for captions, overlays, highlights, BGM,\n  dubbing, reframing, silence cuts, and similar transformations.\n\nThe README focuses on the first-run product path. For a concise command-routing\nreference, see [FUNCTIONS.md](FUNCTIONS.md).\n\n## 30-Second Map\n\n| You want to...                                                        | Use                                                               |\n| --------------------------------------------------------------------- | ----------------------------------------------------------------- |\n| Start a storyboard-driven video project                               | `vibe init --from ...`, then edit `STORYBOARD.md` and `DESIGN.md` |\n| Validate, cost, and explain the project plan                          | `vibe storyboard validate`, `vibe plan`, `vibe build --dry-run`   |\n| Generate assets, compose scenes, and sync timing                      | `vibe build`, `vibe status project`                               |\n| Review quality and produce the final MP4                              | `vibe inspect project`, `vibe render`, `vibe inspect render`      |\n| Apply deterministic scene fixes after review                          | `vibe scene repair`                                               |\n| Generate a standalone image, video, narration, music, or motion asset | `vibe generate ...`                                               |\n| Change an existing media file                                         | `vibe edit ...`, `vibe remix ...`, `vibe audio ...`               |\n| Run a repeatable multi-step workflow                                  | `vibe run pipeline.yaml`                                          |\n| Script low-level timeline edits or bulk imports                       | `vibe timeline ...`, `vibe batch ...`                             |\n| Decide which path fits                                                | `vibe guide motion`, `vibe guide scene`, `vibe guide pipeline`    |\n\n## Requirements\n\n- Node.js 20+\n- FFmpeg\n- Chrome or Chromium for HTML scene rendering\n- API keys only for the providers you use\n\nLocal/free paths are available for many editing tasks and for Kokoro TTS. AI\nimage/video generation requires provider keys such as `OPENAI_API_KEY`,\n`FAL_API_KEY`, `GOOGLE_API_KEY`, or others listed in [MODELS.md](MODELS.md).\n\n## Install\n\n```bash\ncurl -fsSL https://vibeframe.ai/install.sh | bash\nvibe doctor\n```\n\nThe installer places the CLI checkout under the XDG data directory\n(`~/.local/share/vibeframe` by default). User-scope API keys stay in a clean\n`~/.vibeframe/config.yaml`; project-scope setup still writes\n`./.vibeframe/config.yaml`. When a project config exists at your current\ndirectory or an ancestor, VibeFrame uses that project config in isolation and\ndoes not merge in user-scope keys.\n\nFor local development:\n\n```bash\ngit clone https://github.com/vericontext/vibeframe.git\ncd vibeframe\npnpm install\npnpm build\npnpm vibe --help\n```\n\n## Quick Start\n\nFirst run:\n\n```bash\nvibe setup\nvibe setup --scope project  # optional: store provider keys in this repo only\nvibe doctor\nvibe guide\n```\n\n`brief.md` is not a strict template. It is raw intent: rough notes, pasted\nresearch, links, a product brief, or a one-line idea. `vibe init --from` uses\nit only to seed `STORYBOARD.md` and `DESIGN.md`; after init, those two files\nbecome the working source of truth.\n\n`--from` accepts either a file path or a short inline brief:\n\n```bash\nvibe init launch --from brief.md --json\nvibe init launch --from \"30-second launch video for VibeFrame\" --json\n```\n\nIf you already have source media, put it inside the scene project under\n`media/` before or after init:\n\n```bash\nmkdir -p my-video/media\ncp ~/Desktop/product-shot.png my-video/media/\ncp ~/Desktop/logo.png my-video/media/\n```\n\nUse `media/` for user-provided inputs, `assets/` for generated or canonical\nbuild assets, `renders/` for outputs, and `references/` for local composition\nrules installed by VibeFrame.\n\n### Build A Storyboard Video\n\n```bash\nvibe init my-video \\\n  --from \"45-second launch video for an AI-native editor\" \\\n  --profile agent \\\n  --visual-style \"Swiss Pulse\" \\\n  -r 16:9 \\\n  -d 45 \\\n  --json\n\n# Edit my-video/STORYBOARD.md and my-video/DESIGN.md\nvibe storyboard validate my-video --json\nvibe plan my-video --json\nvibe build my-video --dry-run --max-cost 5 --json\nvibe build my-video --max-cost 5 --json\nvibe status project my-video --refresh --json\nvibe inspect project my-video --json\nvibe render my-video -o renders/final.mp4 --quality standard --json\nvibe inspect render my-video --cheap --json\nvibe scene repair my-video --json\n\n# Focus a single beat during iteration\nvibe build my-video --beat hook --stage sync --json\nvibe inspect project my-video --beat hook --json\nvibe render my-video --beat hook --json\nvibe inspect render my-video --beat hook --cheap --json\n\n# Let a host agent handle semantic issues from the report\ncodex \"fix issues from my-video/review-report.json\"\n```\n\nUse direct media commands when you do not need a full project:\n\n```bash\nvibe generate image \"cinematic product demo frame\" -p openai -o frame.png\nvibe generate video \"interface animates into a polished demo\" -p seedance -i frame.png -o motion.mp4\nvibe edit caption demo.mp4 -o captioned.mp4\nvibe remix highlights demo-process.mp4 -d 60 -o highlight.mp4\nvibe generate music \"minimal instrumental tech pulse\" --instrumental -d 60 -o bgm.mp3\nvibe audio duck bgm.mp3 --voice highlight.mp4 -o bgm-ducked.mp3\n```\n\nEach storyboard beat can include YAML cues:\n\n````markdown\n## Beat hook — Open\n\n```yaml\nnarration: \"Start with a storyboard. VibeFrame turns each beat into a render plan.\"\nbackdrop: \"Clean developer terminal beside structured storyboard cues\"\nvideo: \"Slow push-in across generated interface panels\"\nmotion: \"Kinetic headline, subtle parallax, clean lower-third\"\nvoice: \"alloy\"\nmusic: \"minimal pulse, confident\"\nduration: 5\n```\n````\n\nUse text cues when you want VibeFrame to generate an asset. Use project-relative\npaths when you want to reuse a local file:\n\n```yaml\nbackdrop: \"media/product-shot.png\" # existing still image\nvideo: \"media/broll.mp4\" # existing video/B-roll\nnarration: \"media/voice.wav\" # existing recorded narration\nasset: \"media/logo.png\" # generic local asset reference\n```\n\nAgents should use `vibe storyboard set/get/move/list` for narrow cue edits\nand direct Markdown edits for larger creative rewrites. `STORYBOARD.md` is\nthe intent layer, `DESIGN.md` is the visual system, `vibe.config.json` stores\nprovider/model defaults, `media/` stores user-provided source media, and files\nunder `assets/` and `compositions/` are generated or canonical build artifacts.\n`build-report.json` records build results and costs;\n`review-report.json` records inspection findings and suggested fixes.\nWhen paid video or music providers return async jobs, `vibe status project\n--refresh` downloads completed outputs, updates `build-report.json`, and\nwrites freshness metadata under `.vibeframe/assets/`. The sync stage wires\nready narration and music into the root timeline, so render inspection can map\naudio/visual issues back to the affected beat.\n\n### Edit Existing Media\n\n```bash\n# Remove silence\nvibe edit silence-cut interview.mp4 -o clean.mp4\n\n# Add captions\nvibe edit caption video.mp4 -o captioned.mp4\n\n# Detect scene changes\nvibe detect scenes video.mp4\n\n# Reduce background noise\nvibe edit noise-reduce noisy.mp4 -o clean.mp4\n```\n\n### Generate Media Primitives\n\nUse primitives directly when you need a standalone asset or when an agent is\ndebugging one stage of a storyboard build.\n\n```bash\nvibe generate image \\\n  \"A cinematic product demo frame, clean terminal UI, blue highlights\" \\\n  -p openai \\\n  -o frame.png\n\nvibe generate video \\\n  \"The interface animates into a polished product demo\" \\\n  -p seedance \\\n  -i frame.png \\\n  -d 8 \\\n  -o motion.mp4\n\nvibe generate narration \\\n  \"Start with a storyboard. VibeFrame turns each beat into a render plan.\" \\\n  -o narration.mp3\n```\n\n## Video As YAML\n\nUse `vibe run` when you want a reproducible multi-step workflow:\n\n```yaml\nname: promo\nbudget:\n  costUsd: 5\nsteps:\n  - id: image\n    action: generate-image\n    prompt: \"A cinematic developer-tool hero frame\"\n    output: frame.png\n\n  - id: video\n    action: generate-video\n    prompt: \"Slow camera push-in, subtle interface motion\"\n    image: $image.output\n    provider: seedance\n    duration: 8\n    output: motion.mp4\n```\n\n```bash\nvibe run promo.yaml --dry-run\nvibe run promo.yaml\nvibe run promo.yaml --resume\n```\n\n## Agent Workflows\n\nVibeFrame is designed to be easy for AI coding agents to drive because the CLI\nis the UI. The primary agent path is still plain shell commands plus project\nguidance files, not a separate VibeFrame chat surface.\n\n```text\n\"Build a 45-second launch video from this brief\"\n-\u003e vibe init launch --from brief.md --json\n-\u003e edit launch/STORYBOARD.md and launch/DESIGN.md\n-\u003e vibe plan launch --json\n-\u003e vibe build launch --dry-run --max-cost 5 --json\n-\u003e vibe build launch --max-cost 5 --json\n-\u003e vibe status project launch --refresh --json\n-\u003e vibe inspect project launch --json\n-\u003e vibe render launch --json\n-\u003e vibe inspect render launch --cheap --json\n\n\"Fix quality issues from the render review\"\n-\u003e read review-report.json\n-\u003e vibe scene repair launch --json\n-\u003e edit STORYBOARD.md or composition artifacts only where needed\n-\u003e vibe render launch --json\n-\u003e vibe inspect render launch --cheap --json\n```\n\n`vibe init` creates project guidance files for common hosts, including Claude\nCode, Codex, Cursor, Aider, Gemini CLI, OpenCode, and a universal `AGENTS.md`\nfallback.\n\n`vibe host` turns that guidance into app-ready configuration for Codex, Claude,\nand Cursor:\n\n```bash\nvibe host list --json\nvibe host setup all              # print snippets only\nvibe host setup cursor --write   # write .cursor/mcp.json\nvibe host doctor all --json      # verify guidance + MCP config\n```\n\nBy default, `vibe host setup` does **not** modify files; pass `--write` to\napply the printed config. Claude Desktop global config is also opt-in and is\nbacked up before merge. For Claude Desktop, pass the workspace directory you\nwant relative project names to resolve under; VibeFrame writes a shell wrapper\nso Claude Desktop preserves that workspace anchor:\n\n```bash\nvibe host setup claude-desktop ~/dev/videos --write\n```\n\nHow agents discover the right command:\n\n- Claude Code reads `CLAUDE.md`, which imports `AGENTS.md`.\n- Codex reads `AGENTS.md` directly, and can load `.codex/config.toml` for MCP.\n- Cursor can use `AGENTS.md`, `.cursor/rules`, and `.cursor/mcp.json`.\n- Every host can fall back to `vibe schema`, `vibe context`, `vibe doctor`,\n  and `vibe guide`.\n\nBuilt-in workflow guides are the first stop when intent is ambiguous:\n\n```bash\nvibe guide\nvibe guide motion\nvibe guide scene\nvibe guide pipeline\n```\n\n`vibe agent` is available for environments without Claude Code, Codex, Cursor,\nor another coding agent. Treat it as optional/advanced; external agents driving\nthe CLI through `AGENTS.md`, `--json`, `--dry-run`, `vibe context`, and\n`vibe schema --list --surface public` are the primary workflow.\n\n## MCP Server\n\nThe CLI is the primary runtime. For hosts that prefer MCP, VibeFrame also\nships `@vibeframe/mcp-server`. Generate host-specific snippets with:\n\n```bash\nvibe host setup codex\nvibe host setup claude\nvibe host setup cursor\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"vibeframe\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@vibeframe/mcp-server\"]\n    }\n  }\n}\n```\n\nSee [packages/mcp-server/README.md](packages/mcp-server/README.md) for tool,\nresource, and prompt details.\n\n## Providers\n\nVibeFrame routes to multiple providers for LLMs, image generation, video\ngeneration, TTS, transcription, and analysis. Common environment variables:\n\n```text\nOPENAI_API_KEY\nANTHROPIC_API_KEY\nGOOGLE_API_KEY\nFAL_API_KEY\nELEVENLABS_API_KEY\nRUNWAY_API_SECRET\nKLING_API_KEY\nXAI_API_KEY\nREPLICATE_API_TOKEN\nOPENROUTER_API_KEY\nIMGBB_API_KEY\n```\n\nThe canonical list is `vibe doctor --json | jq '.data.providers'` — that\nshape derives from `packages/ai-providers/src/api-keys.ts` and stays in\nsync with new providers automatically.\n\nUse:\n\n```bash\nvibe setup --show\nvibe doctor\n```\n\nFor model and provider details, see [MODELS.md](MODELS.md).\n\n## Relationship To Composition Engines\n\nVibeFrame is not trying to replace lower-level composition engines. It wraps\nthem in a workflow that agents can drive from brief to MP4:\n\n| Layer                                                    | Owns                                                                                                                                               |\n| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Remotion](https://github.com/remotion-dev/remotion)     | React-based programmatic video and component-driven motion graphics.                                                                               |\n| [Hyperframes](https://github.com/heygen-com/hyperframes) | HTML/CSS/JS scene composition and deterministic browser capture for agents.                                                                        |\n| VibeFrame                                                | `STORYBOARD.md` / `DESIGN.md`, provider routing, generated assets, build reports, render inspection, edit/remix commands, and host-agent guidance. |\n\nScene projects use `vibe.config.json` for provider, model, quality, and build\ndefaults. Legacy projects may still carry `vibe.project.yaml`, where the\ncomposition engine can be declared like this:\n\n```yaml\ncomposition:\n  engine: hyperframes\n  entry: index.html\n```\n\nIn practice, use Hyperframes directly when the job is only focused HTML scene\nauthoring and rendering. Use VibeFrame when the job includes storyboard\nplanning, image/video/audio generation, narration, build reports, render\ninspection, or editing/remix steps around the composition layer.\n\nVibeFrame is not affiliated with HeyGen. See [CREDITS.md](CREDITS.md) for\ndependency and provenance notes.\n\n## Repository Layout\n\n```text\npackages/cli/            CLI and agent mode\npackages/core/           Timeline engine and shared core types\npackages/ai-providers/   Provider registry and implementations\npackages/mcp-server/     MCP server package\npackages/ui/             Shared React UI\napps/web/                Next.js landing/demo app\ndocs/                    Compact public docs\nscripts/                 Install, docs generation, demos, and maintainer helpers\ntests/                   Manual smoke checks outside CI\n```\n\n## Reference\n\n- [MODELS.md](MODELS.md): provider and model reference.\n- [CHANGELOG.md](CHANGELOG.md): versioned release notes.\n- [FUNCTIONS.md](FUNCTIONS.md): workflow lanes, command routing, and agent\n  usage rules.\n- [ROADMAP.md](ROADMAP.md): short public roadmap.\n\nFor machine-readable access (agents, scripts) use the live introspection\nhooks instead of this README:\n\n```bash\nvibe schema --list --surface public  # small first-run/product surface\nvibe schema --list --json     # full command catalog (current count via `length`)\nvibe schema --list --filter very-high  # narrow to a cost tier\nvibe schema \u003ccommand\u003e --json  # JSON Schema for one command\nvibe context                  # agent quickstart (rules, envelope shape, conventions)\n```\n\nSchema entries include a `surface` field. Treat `public` as the first-run\nproduct path, `agent` as host-agent automation, and `advanced`/`legacy` as\ncompatible power primitives with replacements where applicable.\n\n## Development\n\n```bash\npnpm install\npnpm build\npnpm test\npnpm lint\n```\n\nUseful local commands:\n\n```bash\npnpm vibe --help\npnpm -F @vibeframe/cli test\npnpm -F @vibeframe/web dev\n```\n\n## Contributing\n\nContributions are welcome: bug fixes, provider integrations, CLI UX\nimprovements, docs, and tests.\n\n```bash\n# Scaffold a provider declaration\npnpm scaffold:provider \u003cname\u003e\n\n# Scaffold a command under generate or edit\npnpm scaffold:command \u003cgenerate|edit\u003e \u003cname\u003e\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvericontext%2Fvibeframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvericontext%2Fvibeframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvericontext%2Fvibeframe/lists"}