Render a scripted video project into mp4 clips with the Google Veo 3.1 API.

MITAuto-check: notesMedia & Creative

Install Veo Generator

skills CLI
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill veo-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install BlackBeltTechnology/pi-agent-dashboard veo-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/video-production/.pi/skills/veo-generator .claude/skills/veo-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
veo-generator
GitHub stars
315
Token cost
~1.9k tokens
SKILL.md length
853 words
Files
2
Skills in repo
70
Repo updated
First seen
Licence
MIT

At a glance

Render a scripted video project into mp4 clips with the Google Veo 3.1 API.

  • Works in 5 steps: Dry-run / validate the package (no key… → Plan the render (resolves key + model +… → Render (calls Veo, polls, downloads to… → …
  • Tasks that involve AI video generation
  • SKILL.md covers Prerequisites, API key — per project or global, Procedure and Optional: other providers via…, plus 1 more section
  • Needs GEMINI_API_KEY and VEO_API_KEY

What it does

Veo Generator is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Render a scripted video project into mp4 clips with the Google Veo 3.1 API. Reads a project's shot package (shots/.md), one clip per camera cut, reusing each shot's prompt and sketch — world anchor only with --with-reference, seed unless --no-seed. Use on "render the Veo video for <project", "generate the videos from the shot scripts", "make the clips with Veo".

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Media & Creative, covering AI video generation. It works with Google Veo and Google Gemini. The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.

When your agent uses it

  • Tasks that involve AI video generation

Example prompts

  • “s shot package (shots/.md), one clip per camera cut, reusing each shot”
  • “render the Veo video for <project”
  • “generate the videos from the shot scripts”
  • “/veo-generator”

Requirements

  • A credential in GEMINI_API_KEY
  • A credential in VEO_API_KEY

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Dry-run / validate the package (no key spent)
  2. Plan the render (resolves key + model + outputs, still no API call)
  3. Render (calls Veo, polls, downloads to video_production/renders/)
  4. (Optional) regenerate storyboard sketches (the first-frame images) via
  5. Assemble in post — cut the renders/*.mp4 in timecode order, lay the

What it can do on your machine

Read from SKILL.md and the folder at commit 7a2d171. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • aistudio.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GEMINI_API_KEY
    • VEO_API_KEY
    • GOOGLE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Veo Generator loads about 1.9k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 853 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:16
    .env                      <- (optional) per-project API key lives here
  • NoteMentions a .env fileSKILL.md:49
    | 3 | **`<Project>/.env`** or `…/video_production/.env` | **per-project key** |
  • NoteMentions a .env fileSKILL.md:50
    | 4 | this package's `.env` | global fallback |

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from BlackBeltTechnology/pi-agent-dashboard at commit 7a2d171, republished under its MIT licence (© BlackBeltTechnology). 853 words, ~1,931 tokens.

Download SKILL.mdSave it as .claude/skills/veo-generator/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
veo-generator
description
Render a scripted video project into mp4 clips with the Google Veo 3.1 API. Reads a project's shot package (shots/*.md), one clip per camera cut, reusing each shot's prompt and sketch — world anchor only with `--with-reference`, seed unless `--no-seed`. Use on "render the Veo video for <project>", "generate the videos from the shot scripts", "make the clips with Veo".

Veo Generator

Turns an already-scripted shot package into actual video. The prompting is done by the veo-showreel-production-kit skill (STYLE BIBLE → per-shot shots/*.md); this skill is the render step that calls the Veo 3.1 API and downloads mp4s.

It expects the layout the production kit emits:

<Project>/
  .env                      <- (optional) per-project API key lives here
  video_production/
    shots/shot_*.md         <- source of truth: prompt, negative, seed, aspect, refs
    storyboard/*.png        <- first-frame sketches + 00_world_anchor.png
    renders/                <- mp4 output (created here)

Each shots/shot_NN.md already contains everything the renderer needs: the ▶ Full Veo prompt block, the ⛔ Negative prompt block, and a Reproduction & consistency line with the seed, aspect ratio, resolution, reference image(s) and first-frame image. The renderer parses those — it never re-invents the prompt.

Prerequisites

  • The pi-veo CLI (this package). Runs as TypeScript via pi's jiti loader — no build step.
  • ffmpeg — only needed for --chain (seamless A→B last-frame handoff). Declared in pi.tools and resolved via the tool registry; absent → non-chain videos still generate.
  • An API key (see below). Get one at https://aistudio.google.com/apikey. Declared as an env probe (GEMINI_API_KEY) in pi.tools. The registry recognizes GEMINI_API_KEY only — the CLI's VEO_API_KEY / GOOGLE_API_KEY aliases still work at run time but are NOT tracked in Settings → Tools.

API key — per project or global

Resolution order, first non-empty wins:

#SourceUse
1--api-key <KEY> flagone-off
2VEO_API_KEY / GEMINI_API_KEY / GOOGLE_API_KEY env varmachine-wide
3<Project>/.env or …/video_production/.envper-project key
4this package's .envglobal fallback

Copy .env.example and set VEO_API_KEY=…. Never commit real keys.

Procedure

  1. Dry-run / validate the package (no key spent):

    bash
    pi-veo parse <Project>

    Confirms every shot has a parseable prompt, shows seed/aspect/resolution, the first-frame sketch, the reference image and seamless→next chaining. Add --json for machine output, --shots 01 03A for a subset.

  2. Plan the render (resolves key + model + outputs, still no API call):

    bash
    pi-veo plan <Project>
  3. Render (calls Veo, polls, downloads to video_production/renders/):

    bash
    pi-veo render <Project>
    • Test a single shot first: --shots 01
    • Cheaper/faster preview pass: --model fast --resolution 720p
    • Seamless A→B handoff (sequential, uses ffmpeg last frame): --chain
    • Render several independent shots at once: --parallel 4
    • Also attach the world-anchor as a reference image: --with-reference
    • Re-render existing clips: --force Already-rendered shot_NN.mp4 files are skipped unless --force, so the command is safe to re-run / resume.
  4. (Optional) regenerate storyboard sketches (the first-frame images) via nano-banana, if they're missing or you changed sketch_prompts.json:

    bash
    pi-veo storyboard <Project>
  5. Assemble in post — cut the renders/*.mp4 in timecode order, lay the official voiceover + music, bake captions, drop the logo into the reserved space of the final shot. (Veo only makes ambient SFX — speech is forbidden in the AUDIO LOCK on purpose.) With sidecars (film.json + timeline.json) automate it: pi-veo export timeline <Project> --clips video_production/renders → call video_compose on the printed spec → pi-veo mux <Project> --picture <final_video.mp4> → video_production/master/master.mp4.

Show full SKILL.md (442 more words)Show less

Optional: other providers via pi-video-gen

Needs sidecars (film.json, shots/shot_NN.json) — see the production kit. @amaster.ai/pi-video-gen is a user-level pi extension, never a dependency of this package: pi install npm:@amaster.ai/pi-video-gen (verified 0.1.18; 0.1.x formats may change). Coupling is file-format only.

  1. Run every pi-veo export from the pi session cwd, without cd — pi-video-gen resolves frames and its outputDir (default .video-gen) against that cwd. If outputDir is configured differently, pass --out <that dir>.
  2. Call video_capabilities, copy the model's duration range and aspect ratios into --durations <min>-<max> / --aspect 16:9,9:16 (not parsed automatically).
  3. pi-veo export render <Project> [--durations 4-15] [--aspect 16:9] → call video_render with the printed render-input.json. SEAMLESS shots become lastFramePath = next shot's sketch; --no-last-frame for models without first+last frame (e.g. kling-3.0-turbo).
  4. Resume = call video_render again on the SAME spec. Never re-export — a new job re-bills every shot. Export refuses while a previous spec exists (.pi-veo/exports.json); --new-job only for a genuinely revised film.
  5. Picture edit: pi-veo export timeline <Project> --clips .video-gen/<job>/shots (or video_production/renders) → video_compose → pi-veo mux.

Trade-offs: no seed, no local reference images, resolution = the model default (OpenRouter Veo is 720p / 16:9) — keep pi-veo render (Veo direct) for 4K/seed quality passes; use pi-video-gen for Seedance / Kling / MiniMax. Run /video-gen doctor and one cheap clip first. pi-veo mux needs ffmpeg + ffprobe; --burn needs ffmpeg's subtitles filter (libass), soft captions are the default.

Notes & pitfalls

  • Veo clips are ≤8s. The shot package is already split into ≤8s units; don't merge them. Long beats are A/B pairs.
  • Model IDs: standard → veo-3.1-generate-preview, fast → veo-3.1-fast-generate-preview. Pass a full id to --model to use another.
  • Resolution 4k is Veo 3.1 preview only and is slower + pricier; use --resolution 1080p (or 720p for cheap previews) to override the shot files.
  • Parallel rendering: by default shots render one-at-a-time. --parallel N keeps up to N Veo operations in flight; the real ceiling is your Veo API quota. --chain forces sequential (B needs A's rendered last frame).
  • first-frame vs reference: by default the shot's own storyboard sketch is the image-to-video first frame. --with-reference additionally sends the world-anchor as an asset reference; if the model rejects that combo the renderer automatically retries without it.
  • Cost: every render call spends credits. Always parse → plan → render one shot → then the batch.
  • Gemini Developer API quirks (AI Studio key): the Developer API rejects seed and enhance_prompt. Use --no-seed (and leave enhance_prompt off — it's opt-in via --enhance-prompt, Vertex only). Reproducibility then relies on the first-frame sketches + STYLE LOCK, not the seed.
  • Vertex env trap: if GOOGLE_GENAI_USE_VERTEXAI=true / GOOGLE_CLOUD_PROJECT are exported, the client routes to Vertex and fails. Unset them to force the Developer API.
  • Logs: each run appends to renders/render_log.jsonl (status, seed, model, resolution, output path, seconds) for auditing.

© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in packages/video-production/.pi/skills/veo-generator of BlackBeltTechnology/pi-agent-dashboard.

  • SKILL.md
  • .env.example

Open the folder on GitHubat commit 7a2d171

Compare with similar skills

Veo Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Veo Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Veo Generator this skillBlackBeltTechnology/pi-agent-dashboard315—~1.9kAutomated safety check: NotesMIT
AI Media GeneratorHao0321/ai-media-generator260—~5.6kAutomated safety check: PassMIT
Arcads External APIkrusemediallc/arcads-claude-code1.6k—~8.7kAutomated safety check: NotesMIT
Fal AI Mediaaffaan-m/ECC276k4 repos~1.9kAutomated safety check: PassMIT
Fal AI Mediaaffaan-m/ECC276k2 repos~1.2kAutomated safety check: PassMIT
Fal AI Mediaaffaan-m/ECC276k—~1.4kAutomated safety check: PassMIT

Similar skills

  • AI Media Generator

    Hao0321/ai-media-generator

    為使用者產生高品質的 AI 生圖、生影片、生音樂提示詞,並在需要時透過瀏覽器自動化實際送到目標平台。涵蓋 OiiOii、Kling 3.0/O-series、Seedance 2.0/2.5、Suno v5.5、Seedream 5.0/4.0、Vidu Q3、Midjourney V8.1、Flux 1.1 Pro / Kontext、Runway Gen-4.5 /…

    260 GitHub stars~5.6k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Arcads External API

    krusemediallc/arcads-claude-code

    Creates and retrieves AI video and image-related assets via the Arcads external API (Seedance 2.0, Sora 2, Veo 3.1, Kling, Grok Video, Nano Banana, b-roll, scene, script/actor flows).

    1.6k GitHub stars~8.7k tokensUpdated 17 days ago
    Media & CreativeAuto-check: notes
  • Fal AI Media

    affaan-m/ECC

    Unified media generation via fal.ai MCP — image, video, and audio.

    276k GitHub starsUsed in 4 repos~1.9k tokens
    Media & CreativeAuto-check passed
  • Fal AI Media

    affaan-m/ECC

    通过 fal.ai MCP 实现统一的媒体生成——图像、视频和音频。涵盖文本到图像(Nano Banana)、文本/图像到视频(Seedance、Kling、Veo 3)、文本到语音(CSM-1B),以及视频到音频(ThinkSound)。当用户想要使用 AI 生成图像、视频或音频时使用。

    276k GitHub starsUsed in 2 repos~1.2k tokens
    Media & CreativeAuto-check passed
  • Fal AI Media

    affaan-m/ECC

    fal.ai MCPによる統合メディア生成(画像、動画、音声)。テキストから画像(Nano Banana)、テキスト/画像から動画(Seedance、Kling、Veo 3)、テキストから音声(CSM-1B)、動画から音声(ThinkSound)をカバーします。ユーザーがAIで画像、動画、音声を生成したい場合に使用します。

    276k GitHub stars~1.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Higgsfield Models

    OSideMedia/higgsfield-ai-prompt-skill

    A skill your agent uses when the user asks which model to use, wants to compare models, or needs guidance on selecting between Kling, Wan (incl.

    713 GitHub stars~7k tokensUpdated 13 days ago
    Media & CreativeAuto-check passed

More from BlackBeltTechnology/pi-agent-dashboard

All 70 skills in this repo
  • Browser

    BlackBeltTechnology/pi-agent-dashboard

    Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • CI Troubleshoot

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…

    315 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Debug Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.

    315 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Implement

    BlackBeltTechnology/pi-agent-dashboard

    Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.

    315 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Pi Dashboard

    BlackBeltTechnology/pi-agent-dashboard

    Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.

    315 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Session To Guideline

    BlackBeltTechnology/pi-agent-dashboard

    Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…

    315 GitHub stars~3.2k tokensUpdated today
    Auto-check passed

Questions about Veo Generator

What does Veo Generator do?

Render a scripted video project into mp4 clips with the Google Veo 3.1 API. Veo Generator is an agent skill from BlackBeltTechnology/pi-agent-dashboard.1 API.

When should I use Veo Generator?

Veo Generator fits situations like: tasks that involve AI video generation.

How do I install Veo Generator in Claude Code?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill veo-generator -a claude-code`. Or copy the skill folder (packages/video-production/.pi/skills/veo-generator in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/veo-generator in your project. Claude Code loads it when a task matches its description.

How do I install Veo Generator in Codex?

Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill veo-generator -a codex`. Or copy the skill folder (packages/video-production/.pi/skills/veo-generator in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/veo-generator in your project. Codex loads it when a task matches its description.

Can I use Veo Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill veo-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/veo-generator, .gemini/skills/veo-generator, .github/skills/veo-generator and .opencode/skills/veo-generator in your project.

What does Veo Generator need to run?

Going by SKILL.md and its folder, Veo Generator needs credentials named GEMINI_API_KEY, VEO_API_KEY and GOOGLE_API_KEY. Our summary lists: A credential in GEMINI_API_KEY; A credential in VEO_API_KEY.

Does Veo Generator access the network?

SKILL.md names 1 domain. As links in the text: aistudio.google.com. This is read from the text; nothing was executed.

Is Veo Generator safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Veo Generator use?

Veo Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Veo Generator use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Veo Generator?

Skills that share tags, products or a category with Veo Generator: AI Media Generator (Hao0321/ai-media-generator, 260 stars), Arcads External API (krusemediallc/arcads-claude-code, 1.6k stars), Fal AI Media (affaan-m/ECC, 276k stars) and Fal AI Media (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Veo Generator?

BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 315 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 10, 2026.

Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.