vibe-video
CLAUDE.md102 starsChanged 7 months agoApache-2.0View on GitHub
A conversational multi-agent team that produces Hyperframes motion-graphics videos from natural-language prompts. Part of the "mini demo agent" family alongside vibe-to-prd. The canonical specification is docs/SPEC.md. All other documentation derives from it — keep the two in sync. - Team definition: vibevideo/team.py (Vibe Video team leader, Coordinate mode) - Member agents: vibevideo/agents/animator.py (Animator), vibevideo/agents/codeexplorer.py (CodeExplorer), vibevideo/agents/researcher.py (Researcher, optional) - Shared settings: vibevideo/settings.py (DB, REPOSDIR, RENDERSDIR, model) - API server: app/main.py (FastAPI + AgentOS web UI) - Custom tools: vibevideo/tools/git.py (GitTools),…
- Reads credentials
- Installs packages
Files
Vibe Video
A conversational multi-agent team that produces Hyperframes motion-graphics videos from natural-language prompts. Part of the "mini demo agent" family alongside vibe-to-prd.
The canonical specification is docs/SPEC.md. All other documentation
derives from it — keep the two in sync.
Architecture
- Team definition:
vibe_video/team.py(Vibe Video team leader, Coordinate mode) - Member agents:
vibe_video/agents/animator.py(Animator),vibe_video/agents/code_explorer.py(CodeExplorer),vibe_video/agents/researcher.py(Researcher, optional) - Shared settings:
vibe_video/settings.py(DB, REPOS_DIR, RENDERS_DIR, model) - API server:
app/main.py(FastAPI + AgentOS web UI) - Custom tools:
vibe_video/tools/git.py(GitTools),vibe_video/tools/hyperframes.py(HyperframesTools) - Hyperframes authoring guide: compact, hand-written, inlined directly
in
vibe_video/agents/animator.py(no external skill assets) - Database: PostgreSQL + pgvector (session memory + agentic memory)
Team Structure
Vibe Video (Team, Coordinate, claude-opus-4-7)
├── Animator — writes Hyperframes HTML, renders to MP4, iterates
├── CodeExplorer — clones arbitrary repos on demand, read-only
├── Researcher — web search via Parallel (optional; gated on PARALLEL_API_KEY)
└── [leader responds directly for greetings/simple questions]- Leader — routes, delegates, synthesizes. No tools of its own.
- Animator — HyperframesTools, FileTools, ReasoningTools.
- CodeExplorer — CodingTools (read-only), GitTools (clone + read), ReasoningTools.
- Researcher — ParallelTools, ReasoningTools. Instantiated only when
PARALLEL_API_KEYis set.
Key Concepts
- Coordinate mode: leader picks the right specialist, delegates a structured brief, synthesizes. Respond directly only for greetings and "what can you do?".
- Hyperframes: HTML + GSAP local-render framework from HeyGen. The
Animator writes
index.html+ optionalcompositions/*.htmlinto a per-session workspace underRENDERS_DIR, lints, renders to MP4 via the CLI, and iterates on failure (up toMAX_RENDER_RETRIES). - On-demand cloning: CodeExplorer has no pre-configured repo list.
REPOS_DIRis an ephemeral scratch dir;clone_repo(url)is idempotent (clones or fast-forwards). - Skill-in-prompt: the Hyperframes and GSAP skills from
heygen-com/hyperframesare fetched at build time and inlined into Animator's system prompt. - Agentic memory: captures user style preferences (e.g. "3Blue1Brown pacing", narration on/off) across sessions. No learnings KB.
- Scheduler:
scheduler=Truein AgentOS. No pre-registered jobs — the feature is surfaced so users can schedule their own recurring runs against the team from the web UI.
Structure
vibe-video/
├── app/
│ ├── main.py # AgentOS web UI
│ └── config.yaml # Quick prompts
├── vibe_video/
│ ├── team.py # Vibe Video team (leader)
│ ├── agents/
│ │ ├── animator.py
│ │ ├── code_explorer.py
│ │ └── researcher.py
│ ├── settings.py # Shared DB/paths/model
│ ├── tools/
│ │ ├── git.py # Read-only git + clone_repo
│ │ └── hyperframes.py # Hyperframes CLI wrapper
├── db/
│ ├── session.py
│ └── url.py
├── scripts/ # validate.sh, format.sh, entrypoint.sh, ...
├── docs/
│ └── SPEC.md # Canonical specification
├── compose.yaml
├── Dockerfile
├── pyproject.toml
└── requirements.txtRunning
docker compose up -d --buildConnect via the AgentOS web UI at http://localhost:8000 or the CLI
(python -m vibe_video).
Setup Flow
- Clone repo.
- Configure
.env:ANTHROPIC_API_KEY(required)PARALLEL_API_KEY(optional; enables Researcher)GITHUB_ACCESS_TOKEN(optional; enables private repo clone)
docker compose up -d --build(builds the image — first build takes a few minutes because it installs Node + Chromium + Hyperframes).- Open the AgentOS web UI, or run
python -m vibe_videoin a container shell.
Local Development
./scripts/venv_setup.sh && source .venv/bin/activate
docker compose up -d vibe-video-db
python -m vibe_video # CLI modeLocal rendering requires Node 22, FFmpeg, and a Chromium binary on PATH.
On macOS: brew install node ffmpeg chromium.
Commands
./scripts/venv_setup.sh && source .venv/bin/activate
./scripts/format.sh # Format code
./scripts/validate.sh # Lint + type check
python -m vibe_video # CLI modeEnvironment Variables
| Variable | Required | Description |
ANTHROPIC_API_KEY | Yes | Anthropic API key (leader + all agents) |
DB_* | No | Postgres config (defaults to localhost) |
PARALLEL_API_KEY | No | Enables Researcher — web search via Parallel |
GITHUB_ACCESS_TOKEN | No | Enables CodeExplorer to clone private repos |
REPOS_DIR | No | Ephemeral clone scratch (default: /repos named volume in Docker; ~/.cache/vibe-video/repos locally) |
RENDERS_DIR | No | Render workspace + MP4 outputs (default: ./renders — bind-mounted in Docker, same path locally; gitignored) |
MAX_RENDER_RETRIES | No | Animator's render retry budget (default: 3) |
HYPERFRAMES_BIN | No | Override for npx hyperframes |
JWT_VERIFICATION_KEY | Prod | RBAC public key from os.agno.com |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

