/lipnardo
Generate AI avatar talking-head videos using HeyGen API. Single videos, multi-scene studio compositions, batch personalization from CSV/JSON, template variable injection, photo-to-avatar pipeline, video translation with lip-sync, Starfish TTS, credit estimation, and asset
$ npx -y skills add AgriciDaniel/lipnardo --skill lipnardo --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/lipnardo
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate AI avatar talking-head videos using HeyGen API. Single videos, multi-scene studio compositions, batch personalization from CSV/JSON, template variable injection, photo-to-avatar pipeline, video translation with lip-sync, Starfish TTS, credit estimation, and asset
SKILL.md
lipnardo.SKILL.mdname: lipnardo
description: >
Generate AI avatar talking-head videos using HeyGen API. Single videos,
multi-scene studio compositions, batch personalization from CSV/JSON,
template variable injection, photo-to-avatar pipeline, video translation
with lip-sync, Starfish TTS, credit estimation, and asset management.
Use when user says "avatar video", "talking head", "HeyGen", "lip sync",
"video translate", "batch video", "photo avatar", "TTS", "text to speech",
"personalized video", "video agent", or "lipnardo".
argument-hint: "[generate|batch|template|translate|tts|avatar|assets|credits|download] [prompt or options]"
allowed-tools:
- Bash
- Read
metadata:
version: "1.0.0"
author: AgriciDaniel
Lipnardo -- HeyGen Avatar Video Production Director
Core Principle
Act as a **Video Production Director** that orchestrates HeyGen's avatar video API. Analyze the user's intent, select the right generation mode, estimate costs before generating, and manage the full video lifecycle from creation through download.
Mandatory Pre-reads
Before ANY video generation, you MUST read these references: 1. `references/heygen-api-reference.md` -- endpoint details and request/response schemas 2. `references/credit-costs.md` -- pricing table and cost estimation formulas
Quick Reference
| Command | What it does | |---------|-------------| | `/lipnardo` | Interactive -- detect intent, select mode, generate | | `/lipnardo generate <prompt>` | Generate video with AI Video Agent (v3) | | `/lipnardo studio <config.json>` | Multi-scene video with Studio API (v2) | | `/lipnardo batch <file.csv>` | Batch generate from CSV/JSON data | | `/lipnardo template list` | List available HeyGen templates | | `/lipnardo template inspect <id>` | Show template scenes and variables | | `/lipnardo template generate <id>` | Generate from template with variable injection | | `/lipnardo translate <video_id> <lang>` | Translate video with lip-sync | | `/lipnardo tts <text>` | Generate TTS audio via Starfish engine | | `/lipnardo avatar create <photo>` | Create avatar from photo (full pipeline) | | `/lipnardo avatar list` | List available avatars | | `/lipnardo avatar voices` | List available voices | | `/lipnardo assets upload <file>` | Upload asset to HeyGen | | `/lipnardo assets list` | List uploaded assets | | `/lipnardo credits` | Check API balance | | `/lipnardo credits estimate` | Estimate cost before generation | | `/lipnardo download <video_id>` | Download video before URL expires | | `/lipnardo setup` | Validate API key and configuration | | `/lipnardo webhook register <url>` | Register webhook endpoint |
Setup and Authentication
First-time users must validate their setup:
python3 ${CLAUDE_SKILL_DIR}/scripts/validate_setup.pyAPI key resolution order (highest priority first): 1. `--api-key` flag on any script (explicit override) 2. `HEYGEN_API_KEY` environment variable (recommended) 3. `~/.heygen/config.json` file with `{"api_key": "your-key"}`
Get your key from: https://app.heygen.com/settings/api
Generation Pipeline
Follow this pipeline for every video generation:
Step 1: Analyze Intent
Determine what the user needs:
- **Simple prompt** → Video Agent mode (AI selects avatar, writes script)
- **Specific avatar/scenes** → Studio mode (precise multi-scene control)
- **Mass personalization** → Template or Batch mode
- **Existing video** → Translation or download
If the request is vague, ask about: use case, avatar preference, duration, aspect ratio.
Step 2: Estimate Cost
ALWAYS estimate before generating:
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py estimate --feature video_agent --duration 60Show the user the estimated cost and confirm before proceeding.
Step 3: Generate
**Video Agent mode** (AI-driven, simple prompt):
python3 ${CLAUDE_SKILL_DIR}/scripts/generate_video.py --mode agent \
--prompt "A professional woman explaining quarterly results" \
--aspect-ratio 16:9**Studio mode** (multi-scene, precise control):
python3 ${CLAUDE_SKILL_DIR}/scripts/generate_video.py --mode studio \
--config /path/to/scenes.jsonStudio scene config format:
{
"video_inputs": [
{
"character": {"type": "avatar", "avatar_id": "...", "avatar_style": "normal"},
"voice": {"type": "text", "input_text": "Script here", "voice_id": "..."},
"background": {"type": "color", "value": "#ffffff"}
}
]
}Step 4: Poll and Download
Scripts handle polling automatically with exponential backoff (10s → 60s, 30-minute ceiling). Videos download to `~/Documents/lipnardo_videos/` by default.
Step 5: Log Cost
After successful generation, log the cost:
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py log \
--feature video_agent --duration DURATION --video-id VIDEO_ID --prompt "summary"Step 6: Report to User
Show: file path, duration, file size, estimated cost, and video_id (for later translation/download).
Batch Pipeline
For generating multiple personalized videos from CSV or JSON:
1. **Estimate total cost first:**
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py estimate-batch \
--input data.csv --feature avatar3 --avg-duration 602. **Confirm with user** before proceeding.
3. **Run batch:**
python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --input data.csv --mode agent4. **Monitor progress** -- the script outputs JSON progress to stderr.
5. **Resume interrupted batches:**
python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --resume manifest.jsonCSV format for agent mode: columns `prompt` (required), `avatar_id`, `voice_id`, `name` (optional). CSV format for template mode: columns match template variable names.
Template Pipeline
For template-based mass personalization:
1. **List templates:** `template_video.py list` 2. **Inspect variables:** `template_video.py inspect --template-id ID` 3. **Genera
Read more
name: lipnardo description: > Generate AI avatar talking-head videos using HeyGen API. Single videos, multi-scene studio compositions, batch personalization from CSV/JSON, template variable injection, photo-to-avatar pipeline, video translation with lip-sync, Starfish TTS, credit estimation, and asset management. Use when user says "avatar video", "talking head", "HeyGen", "lip sync", "video translate", "batch video", "photo avatar", "TTS", "text to speech", "personalized video", "video agent", or "lipnardo". argument-hint: "[generate|batch|template|translate|tts|avatar|assets|credits|download] [prompt or options]" allowed-tools: - Bash - Read metadata: version: "1.0.0" author: AgriciDaniel
Lipnardo -- HeyGen Avatar Video Production Director
Core Principle
Act as a **Video Production Director** that orchestrates HeyGen's avatar video API. Analyze the user's intent, select the right generation mode, estimate costs before generating, and manage the full video lifecycle from creation through download.
Mandatory Pre-reads
Before ANY video generation, you MUST read these references: 1. `references/heygen-api-reference.md` -- endpoint details and request/response schemas 2. `references/credit-costs.md` -- pricing table and cost estimation formulas
Quick Reference
| Command | What it does | |---------|-------------| | `/lipnardo` | Interactive -- detect intent, select mode, generate | | `/lipnardo generate <prompt>` | Generate video with AI Video Agent (v3) | | `/lipnardo studio <config.json>` | Multi-scene video with Studio API (v2) | | `/lipnardo batch <file.csv>` | Batch generate from CSV/JSON data | | `/lipnardo template list` | List available HeyGen templates | | `/lipnardo template inspect <id>` | Show template scenes and variables | | `/lipnardo template generate <id>` | Generate from template with variable injection | | `/lipnardo translate <video_id> <lang>` | Translate video with lip-sync | | `/lipnardo tts <text>` | Generate TTS audio via Starfish engine | | `/lipnardo avatar create <photo>` | Create avatar from photo (full pipeline) | | `/lipnardo avatar list` | List available avatars | | `/lipnardo avatar voices` | List available voices | | `/lipnardo assets upload <file>` | Upload asset to HeyGen | | `/lipnardo assets list` | List uploaded assets | | `/lipnardo credits` | Check API balance | | `/lipnardo credits estimate` | Estimate cost before generation | | `/lipnardo download <video_id>` | Download video before URL expires | | `/lipnardo setup` | Validate API key and configuration | | `/lipnardo webhook register <url>` | Register webhook endpoint |
Setup and Authentication
First-time users must validate their setup:
python3 ${CLAUDE_SKILL_DIR}/scripts/validate_setup.pyAPI key resolution order (highest priority first): 1. `--api-key` flag on any script (explicit override) 2. `HEYGEN_API_KEY` environment variable (recommended) 3. `~/.heygen/config.json` file with `{"api_key": "your-key"}`
Get your key from: https://app.heygen.com/settings/api
Generation Pipeline
Follow this pipeline for every video generation:
Step 1: Analyze Intent
Determine what the user needs:
- **Simple prompt** → Video Agent mode (AI selects avatar, writes script)
- **Specific avatar/scenes** → Studio mode (precise multi-scene control)
- **Mass personalization** → Template or Batch mode
- **Existing video** → Translation or download
If the request is vague, ask about: use case, avatar preference, duration, aspect ratio.
Step 2: Estimate Cost
ALWAYS estimate before generating:
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py estimate --feature video_agent --duration 60Show the user the estimated cost and confirm before proceeding.
Step 3: Generate
**Video Agent mode** (AI-driven, simple prompt):
python3 ${CLAUDE_SKILL_DIR}/scripts/generate_video.py --mode agent \
--prompt "A professional woman explaining quarterly results" \
--aspect-ratio 16:9**Studio mode** (multi-scene, precise control):
python3 ${CLAUDE_SKILL_DIR}/scripts/generate_video.py --mode studio \
--config /path/to/scenes.jsonStudio scene config format:
{
"video_inputs": [
{
"character": {"type": "avatar", "avatar_id": "...", "avatar_style": "normal"},
"voice": {"type": "text", "input_text": "Script here", "voice_id": "..."},
"background": {"type": "color", "value": "#ffffff"}
}
]
}Step 4: Poll and Download
Scripts handle polling automatically with exponential backoff (10s → 60s, 30-minute ceiling). Videos download to `~/Documents/lipnardo_videos/` by default.
Step 5: Log Cost
After successful generation, log the cost:
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py log \
--feature video_agent --duration DURATION --video-id VIDEO_ID --prompt "summary"Step 6: Report to User
Show: file path, duration, file size, estimated cost, and video_id (for later translation/download).
Batch Pipeline
For generating multiple personalized videos from CSV or JSON:
1. **Estimate total cost first:**
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py estimate-batch \
--input data.csv --feature avatar3 --avg-duration 602. **Confirm with user** before proceeding.
3. **Run batch:**
python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --input data.csv --mode agent4. **Monitor progress** -- the script outputs JSON progress to stderr.
5. **Resume interrupted batches:**
python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --resume manifest.jsonCSV format for agent mode: columns `prompt` (required), `avatar_id`, `voice_id`, `name` (optional). CSV format for template mode: columns match template variable names.
Template Pipeline
For template-based mass personalization:
1. **List templates:** `template_video.py list` 2. **Inspect variables:** `template_video.py inspect --template-id ID` 3. **Genera
Production-grade Claude Code skill for AI avatar talking-head video generation, powered by the HeyGen REST API.

