SKILL.md
VEED Fabric Video Creation
VEED Fabric lets users generate professional talking head videos with AI avatars directly from a conversation. No camera or editing skills required.
Prerequisites
This skill requires the VEED Fabric MCP server to be connected. It provides all the tools referenced below. See platform-specific setup:
Recommended Workflow
Follow this sequence for the best user experience:
- Browse characters — Call
list_charactersto show the avatar carousel. Let the user pick. - Browse voices — Call
list_voiceswith the appropriate locale. Let the user pick. - Ask for a script — If the user hasn't already provided one, ask what the avatar should say.
- Confirm before generating — Call
confirmfabricvideoto show cost estimate and parameters. Wait for user confirmation. - Generate the video — Call
createfabricvideoonly after confirmation. - Check progress — Call
getgenerationstatuswith the returned job ID. Videos typically take 1–2 minutes.
Always let the user make selections interactively rather than choosing defaults for them.
Tool Usage Guide
list_characters
- Returns AI avatar characters with thumbnails
- Optional
genderfilter:"male"or"female" - Displays an interactive carousel widget — let users browse visually
- When the user says "show me characters", call this tool
list_voices
- Requires
localeparameter (e.g.,"en","fr","es","en-GB") - Optional
genderfilter:"Female","Male", or"Neutral" - Displays a voice selector widget with audio previews
- Infer the locale from the user's script language or ask if unclear
- When the user provides a script in a specific language, filter voices to that language
confirmfabricvideo
- Always call this before
createfabricvideo - Shows a confirmation dialog with: script text, selected character, selected voice, credit cost estimate
- Requires
script,voiceId, andcharacterId - Optional:
aspectRatio("landscape","portrait","square"— defaults to landscape) - Optional:
workspaceId(auto-selected if user has only one workspace) - Do not skip this step — users should always see the cost before generating
createfabricvideo
- Generates the actual video — consumes credits
- Same parameters as
confirmfabricvideo - Only call after the user has confirmed via
confirmfabricvideo - Returns a
jobIdfor tracking progress
getgenerationstatus
- Poll with the
jobIdfromcreatefabricvideo - Status values:
queued→processing→completedorerror - When complete, displays an inline video player
- If the user asks "is my video ready?", call this tool
getcreditbalance
- Shows available vs total AI Playground credits
- Optional
workspaceIdparameter - Useful when the user asks about credits or before a long video
list_workspaces
- Lists workspaces the user has access to
- No parameters required
- Only needed when the user has multiple workspaces and wants to choose one
UI Widgets
VEED Fabric provides rich interactive widgets that display automatically when tools are called:
- Characters Carousel — visual browsing of avatars (from
list_characters) - Voice Selection — voice list with audio previews (from
list_voices) - Video Confirmation — cost breakdown and confirm button (from
confirmfabricvideo) - Video Result — progress indicator and video player (from
getgenerationstatus)
These widgets give users a much better experience than plain text. Prefer calling the tools that trigger them.
Common User Requests
| User says | What to do |
|---|---|
| "Make me a video" / "Create a video about..." | Full workflow: characters → voices → confirm → create → status |
| "Show me characters" / "What avatars are available?" | Call list_characters |
| "What voices do you have?" | Ask for language preference, then call list_voices |
| "How many credits do I have?" | Call getcreditbalance |
| "Is my video ready?" / "Check my video" | Call getgenerationstatus with the job ID |
| "Make a video in French/Spanish/etc." | Use the same workflow but filter list_voices by the appropriate locale |
Error Handling
- Insufficient credits — If
confirmfabricvideoshows the user doesn't have enough credits, inform them and suggest a shorter script or checking their plan. - Generation fails — If
getgenerationstatusreturnserror, let the user know and offer to retry. - No voices for locale — If
list_voicesreturns empty, suggest trying a broader locale (e.g.,"en"instead of"en-AU").