Generate cinematic video content using Google Veo 3.1 via Vertex AI. Optimized for website hero backgrounds, marketing materials, and ambient looping visuals.
A seamless looping abstract background for website hero sections.
Click to download video
A 4-shot promotional video assembled from individually generated clips using /veo-multi-shot.
Click to download video
/plugin marketplace add kdowswell/veo-tools
/plugin install veo-tools# Clone the repository
git clone https://github.com/kdowswell/veo-tools.git
# Copy skills to Claude Code (global)
cp -r veo-tools/skills/* ~/.claude/skills/
# Or project-specific
cp -r veo-tools/skills/* /path/to/your/project/.claude/skills/| Skill | Command | Description |
|---|---|---|
veo |
/veo |
Generate AI videos with cinematic prompt engineering |
veo-setup |
/veo-setup |
Configure Google Cloud project and authentication |
video-loop |
/video-loop |
Create seamless infinite loops from any video |
The /veo skill follows a 6-phase workflow designed to prevent bad prompts from reaching expensive API calls:
User Request → UNDERSTAND → CRAFT → VALIDATE → PRESENT → GENERATE → ITERATE
Claude gathers context before crafting any prompt:
- Use case (hero background, marketing, social, product)
- Mood and visual direction
- Technical requirements
- What must NOT appear
If your request is vague, Claude will ask clarifying questions first.
Claude builds the prompt using the 5-Element Formula:
[Cinematography] + [Subject] + [Action] + [Context] + [Style & Ambiance]
Every prompt is checked against quality criteria:
- Single camera movement (no stacking)
- No text/UI requests (Veo can't render text)
- No conflicting descriptors
- Loop flags present (for hero backgrounds)
- Material specificity included
Claude presents the prompt with validation status and waits for your approval before generating:
READY FOR REVIEW:
Prompt: [crafted prompt]
Settings: 16:9, 4s, 720p
Validation: PASSED
Shall I generate this video? (Cost: ~$0.50, Time: 2-4 minutes)
Only after approval, generation begins.
If results don't match expectations, Claude guides targeted improvements rather than starting over.
- Google Cloud account with billing enabled
- gcloud CLI installed
- Claude Code installed
Use the veo-setup skill to configure everything:
Set up Google Cloud for Veo video generation
Claude will walk you through:
- Creating or selecting a GCP project
- Enabling Vertex AI API
- Creating service account with correct permissions
- Generating credentials file
- Configuring environment variables
- Verifying the complete setup
Once configured, use the veo skill:
Generate a hero background video for a tech startup landing page
Create a looping ambient video of abstract particles for my SaaS website
Make a 4-second seamless loop of morning mist over a lake
Use the video-loop skill to convert any video into a seamless infinite loop:
Create a seamless loop from hero-background.mp4
If you prefer to configure manually, follow these steps:
New project:
gcloud projects create YOUR_PROJECT_ID --name="Veo Video Generation"
gcloud config set project YOUR_PROJECT_IDExisting project:
gcloud config set project YOUR_PROJECT_IDgcloud services enable aiplatform.googleapis.com# Create service account
gcloud iam service-accounts create veo-generator \
--display-name="Veo Video Generator"
# Grant Vertex AI User role
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:veo-generator@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
# Create and download key file
gcloud iam service-accounts keys create ~/veo-service-account.json \
--iam-account=veo-generator@YOUR_PROJECT_ID.iam.gserviceaccount.comAdd to your shell profile (~/.zshrc or ~/.bashrc):
# Required
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/veo-service-account.json"
# Optional (defaults to us-central1)
export GOOGLE_CLOUD_LOCATION="us-central1"Reload your shell:
source ~/.zshrc # or source ~/.bashrcgcloud auth application-default login# Check environment variables
echo $GOOGLE_CLOUD_PROJECT
echo $GOOGLE_APPLICATION_CREDENTIALS
# Verify credentials file exists
ls -la $GOOGLE_APPLICATION_CREDENTIALS
# Test authentication
gcloud auth application-default print-access-tokenFor programmatic use without Claude:
cd skills/veo/scripts
npx ts-node veo-generate.ts \
--prompt "Slow dolly through floating data particles, seamless loop, locked camera, ethereal blue palette" \
--duration 4 \
--resolution 720p \
--output ./hero-background.mp4| Option | Values | Default | Description |
|---|---|---|---|
--prompt, -p |
string | required | Cinematic prompt |
--output, -o |
path | ./veo-output.mp4 | Output file path |
--aspect-ratio |
16:9, 9:16 | 16:9 | Video aspect ratio |
--duration |
4, 6, 8 | 8 | Duration in seconds (API limit) |
--resolution |
720p, 1080p | 720p | Video resolution |
--audio |
flag | false | Enable audio generation |
--model |
see below | quality | Model variant |
--seed |
integer | random | For reproducibility |
--samples |
1-4 | 1 | Number of variations |
Models:
veo-3.1-generate-001- Higher quality (default)veo-3.1-fast-generate-001- Faster generation
| Variable | Required | Default | Description |
|---|---|---|---|
GOOGLE_CLOUD_PROJECT |
Yes | - | Your GCP project ID |
GOOGLE_APPLICATION_CREDENTIALS |
Yes | - | Path to service account JSON |
GOOGLE_CLOUD_LOCATION |
No | us-central1 | GCP region for Vertex AI |
Ensure the service account has the correct role:
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:veo-generator@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"gcloud services enable aiplatform.googleapis.comgcloud auth application-default loginls -la $GOOGLE_APPLICATION_CREDENTIALSVeo generation typically takes 2-4 minutes. If timing out:
- Check your network connection
- Try the fast model:
--model veo-3.1-fast-generate-001 - Reduce duration:
--duration 4
veo-tools/
├── .claude-plugin/
│ ├── marketplace.json # Plugin marketplace metadata
│ └── plugin.json # Plugin configuration
├── skills/
│ ├── veo/ # Video generation skill
│ │ ├── SKILL.md # 6-phase workflow + prompt engineering
│ │ ├── scripts/
│ │ │ └── veo-generate.ts # Generation script
│ │ ├── validation/
│ │ │ └── prompt-checklist.md # Quality validation rules
│ │ ├── references/
│ │ │ └── cinematography-lexicon.md
│ │ └── examples/
│ │ └── hero-prompts.md # Annotated example prompts
│ ├── veo-setup/ # Setup skill
│ │ └── SKILL.md # GCP configuration guide
│ └── video-loop/ # Loop creation skill
│ ├── SKILL.md # Usage instructions
│ └── scripts/
│ └── create-loop.sh # FFmpeg loop script
├── README.md
└── LICENSE
MIT