Install
$ agentstack add skill-elestirelbilinc-sketch-vapagent-vap-media-skill-vapagent-vap-media-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
VAP Media API Skill
Generate images, video, and music through VAP Media API. Edit and enhance media with inpaint, AI edit, upscale, background removal, video trim, and video merge.
This skill is a Media API distribution surface for skill-aware AI assistants. Keep the agent workflow direct and useful: improve prompts, choose the matching VAP Media API endpoint, poll the task or operation, and return the final media URL.
Product Boundary
Use this skill for VAP Media API work only:
- image generation
- video generation
- music generation
- media editing and enhancement
Do not route coding-model requests through this skill. Coding agents and IDE model workflows use the separate VAP Coding Plan API with model ID vap-code.
Access
Use VAP_API_KEY as a Bearer token. This key is product-scoped to VAP Media API access.
If VAP_API_KEY is not set, ask the user to get a Media API key from Developer Hub: https://vapagent.com/developer/?key=media#keys
View Room and Media plans: https://vapagent.com/new-dashboard/?billing=monthly#plans
Generation
Use POST /api/v1/generations for image, video, and music generation.
Create Generation
curl -s -X POST https://api.vapagent.com/api/v1/generations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"image","prompt":"PROMPT","params":{"aspect_ratio":"1:1"}}'
Returns a task id:
{"generation_id":"UUID","task_id":"UUID","status":"pending","kind":"image"}
Poll Generation
curl -s https://api.vapagent.com/api/v1/generations/GENERATION_ID \
-H "Authorization: Bearer $VAP_API_KEY"
When complete, return the media URL from result_url, image_url, video_url, audio_url, or the primary URL inside result.
Generation Types And Params
Image
{
"kind": "image",
"prompt": "A clean product photo of a violet-white AI media emblem on a studio desk",
"params": {
"aspect_ratio": "1:1"
}
}
| Param | Type | Default | Description | | --- | --- | --- | --- | | aspect_ratio | enum | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 9:21 | | width | int | optional | Target width when supported | | height | int | optional | Target height when supported | | negative_prompt | string | optional | What to avoid | | output_format | string | optional | Requested output format when supported | | quantity | int | optional | Number of images when supported |
Video
{
"kind": "video",
"prompt": "Drone shot over misty mountains at sunrise",
"params": {
"duration": 8,
"aspect_ratio": "9:16",
"resolution": "1080p"
}
}
| Param | Type | Default | Description | | --- | --- | --- | --- | | duration | int | 8 | 4, 6, or 8 seconds | | aspect_ratio | enum | 16:9 | 16:9 landscape or 9:16 portrait | | generate_audio | bool | true | Include audio track | | resolution | enum | 720p | 720p or 1080p | | negative_prompt | string | optional | What to avoid | | source_image | string | optional | Input image URL for image-to-video when supported |
Music
{
"kind": "music",
"prompt": "Upbeat lo-fi hip hop beat, warm vinyl crackle, chill atmosphere",
"params": {
"duration": 120,
"instrumental": true,
"audio_format": "mp3"
}
}
| Param | Type | Default | Description | | --- | --- | --- | --- | | duration | int | 120 | 30-480 seconds | | instrumental | bool | false | No vocals | | audio_format | enum | mp3 | mp3 or wav | | loudness_preset | enum | streaming | streaming, apple, or broadcast | | style | string | optional | Genre/style | | title | string | optional | Song title | | custom_mode | bool | false | Enable custom lyrics and style mode |
Operations
Use POST /api/v1/operations for edit and enhancement operations.
Create Operation
curl -s -X POST https://api.vapagent.com/api/v1/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"background_remove","media_url":"https://example.com/photo.png"}'
Poll Operation
curl -s https://api.vapagent.com/api/v1/operations/OPERATION_ID \
-H "Authorization: Bearer $VAP_API_KEY"
When complete, return the media URL from result_url, image_url, video_url, or the primary URL inside result.
Available Operations
| Operation | Required Params | Description | | --- | --- | --- | | inpaint | media_url, prompt | AI editing with optional mask_url | | ai_edit | media_url, prompt | AI-powered image editing with optional additional_images | | background_remove | media_url | Remove background | | upscale | media_url | Enhance resolution with options.scale: 2 or 4 | | video_trim | media_url, options.start_time, options.end_time | Trim video | | video_merge | media_urls array, min 2 | Merge video clips |
Assistant Instructions
When a user asks to create, generate, or make an image, video, or music:
- Improve the prompt with useful style, lighting, composition, mood, or production details.
- Require
VAP_API_KEY; if it is missing, send the user to Developer Hub for a Media API key. - Submit
POST /api/v1/generationswith top-levelkind, top-levelprompt, and optionalparams. - Set aspect ratio based on the content need:
- portrait/social ->
9:16 - YouTube/web/widescreen ->
16:9 - square feed asset ->
1:1
- Poll
GET /api/v1/generations/{id}until completed or failed. - Return the final media URL to the user with concise status.
When a user asks to edit, enhance, or modify an existing image or video:
- Identify the operation:
inpaint,ai_edit,upscale,background_remove,video_trim, orvideo_merge. - Get the media URL from a previous generation or user-provided URL.
- Submit
POST /api/v1/operations. - Poll
GET /api/v1/operations/{id}until completed or failed. - Return the output URL.
Do not expose internal provider details as the product identity. The visible product is VAP Media API.
Examples
Image
curl -s -X POST https://api.vapagent.com/api/v1/generations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"image","prompt":"A fluffy orange tabby cat on a sunlit windowsill, soft bokeh, golden hour light, photorealistic","params":{"aspect_ratio":"16:9"}}'
curl -s https://api.vapagent.com/api/v1/generations/GENERATION_ID \
-H "Authorization: Bearer $VAP_API_KEY"
Video
curl -s -X POST https://api.vapagent.com/api/v1/generations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"video","prompt":"Drone shot over misty mountains at sunrise","params":{"duration":8,"aspect_ratio":"9:16","resolution":"1080p"}}'
Music
curl -s -X POST https://api.vapagent.com/api/v1/generations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"kind":"music","prompt":"Upbeat lo-fi hip hop beat, warm vinyl crackle, chill vibes","params":{"duration":120,"instrumental":true,"audio_format":"wav","loudness_preset":"streaming"}}'
AI Edit
curl -s -X POST https://api.vapagent.com/api/v1/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"ai_edit","media_url":"https://example.com/photo.jpg","prompt":"Change the background to a sunset beach"}'
Upscale
curl -s -X POST https://api.vapagent.com/api/v1/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"upscale","media_url":"https://example.com/photo.jpg","options":{"scale":4}}'
Background Remove
curl -s -X POST https://api.vapagent.com/api/v1/operations \
-H "Authorization: Bearer $VAP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"background_remove","media_url":"https://example.com/photo.jpg"}'
Prompt Tips
- Style: photograph, cinematic, 3D render, watercolor, flat illustration
- Lighting: golden hour, neon lights, soft diffused light, dramatic shadows
- Composition: close-up, aerial view, wide angle, centered subject
- Mood: serene, energetic, mysterious, premium, playful
Links
- Developer Hub: https://vapagent.com/developer/
- Media API key: https://vapagent.com/developer/?key=media#keys
- Room and Media plans: https://vapagent.com/new-dashboard/?billing=monthly#plans
- VAP AI: https://vapagent.com/
- GitHub: https://github.com/vapagentmedia/vap-media-skill
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: elestirelbilinc-sketch
- Source: elestirelbilinc-sketch/vapagent-vap-media-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.