agentsclimarketplace

Lipnardo

Skill AgriciDaniel/lipnardo/skills/lipnardo

HeyGen avatar video generation skill for Claude Code. Batch, templates, translation, photo avatars, TTS. Stdlib-only Python.

Install
npx -y skills add AgriciDaniel/lipnardo --skill lipnardo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 16 stars16 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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".

SKILL.md

9.1 KB, as published. Nobody here has run it

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

CommandWhat it does
/lipnardoInteractive -- 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 listList 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 listList available avatars
/lipnardo avatar voicesList available voices
/lipnardo assets upload <file>Upload asset to HeyGen
/lipnardo assets listList uploaded assets
/lipnardo creditsCheck API balance
/lipnardo credits estimateEstimate cost before generation
/lipnardo download <video_id>Download video before URL expires
/lipnardo setupValidate 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.py

API 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 60

Show 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.json

Studio 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 60
  1. Confirm with user before proceeding.

  2. Run batch:

python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --input data.csv --mode agent
  1. Monitor progress -- the script outputs JSON progress to stderr.

  2. Resume interrupted batches:

python3 ${CLAUDE_SKILL_DIR}/scripts/batch_generate.py --resume manifest.json

CSV 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. Generate with variables:
python3 ${CLAUDE_SKILL_DIR}/scripts/template_video.py generate \
  --template-id ID --variables '{"name":"John","company":"Acme"}'
  1. Batch from CSV:
python3 ${CLAUDE_SKILL_DIR}/scripts/template_video.py generate \
  --template-id ID --input prospects.csv

Photo Avatar Pipeline

Full pipeline from photo to talking-head video:

  1. Create avatar from photo:
python3 ${CLAUDE_SKILL_DIR}/scripts/photo_avatar.py create \
  --photo /path/to/headshot.jpg --name "My Avatar"
  1. Training takes minutes to hours -- script waits automatically.
  2. Generate video with trained avatar:
python3 ${CLAUDE_SKILL_DIR}/scripts/photo_avatar.py generate \
  --avatar-id AVATAR_ID --script "Hello, welcome to our company!"

Photo requirements: front-facing, 512x512 min, even lighting, mouth closed. Photo Avatar IV costs $0.05/sec with a 3-minute max. Read references/avatar-types.md.

Translation Pipeline

python3 ${CLAUDE_SKILL_DIR}/scripts/translate_video.py \
  --video-id VIDEO_ID --target-lang es --mode fast
  • Fast/speed mode: speed-optimized via v3 API, $0.0333/sec
  • Quality/precision mode: precision lip-sync via v3 API, $0.0667/sec
  • 175+ languages supported

TTS Pipeline

python3 ${CLAUDE_SKILL_DIR}/scripts/tts.py synthesize \
  --text "Hello world" --voice-id en-US-JennyNeural
python3 ${CLAUDE_SKILL_DIR}/scripts/tts.py list-voices --language en

Asset Management

python3 ${CLAUDE_SKILL_DIR}/scripts/asset_manager.py upload --file image.png
python3 ${CLAUDE_SKILL_DIR}/scripts/asset_manager.py list --type image

Error Handling

ErrorCauseAction
401 UnauthorizedInvalid API keyRun /lipnardo setup, re-check key
429 Rate LimitedToo many requestsScript auto-retries with backoff
Concurrent limit3 videos already processingWait for completion
Generation failedContent policy or avatar issueTry different avatar/script
URL expiredDownload URL > 7 days oldRe-download via /lipnardo download
Insufficient creditsAPI balance depletedTop up at app.heygen.com

Read references/error-codes.md for full error taxonomy and retry strategies.

Cost Tracking

ALWAYS estimate cost before generating. ALWAYS log cost after successful generation.

python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py balance
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py estimate --feature avatar3 --duration 60
python3 ${CLAUDE_SKILL_DIR}/scripts/credit_check.py summary

Read references/credit-costs.md for full pricing table.

Response Format

After every successful generation, report to the user:

  • Path: where the video file was saved
  • Duration: video length in seconds
  • Size: file size
  • Cost: estimated cost based on feature type and duration
  • Video ID: for later translation, download, or reference

API Constraints

  • 3 concurrent videos max (batch script respects this automatically)
  • 30 minutes max per video (Enterprise for longer)
  • 1080p default resolution (4K Enterprise only)
  • Photo Avatar IV: 3 minutes max duration
  • Download URLs: expire after 7 days -- download promptly
  • 50 scenes max per Studio API request

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.