Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Evolink Media

ASecurity

AI video, image & music generation. 60+ models — Sora, Veo 3, Kling, Seedance, GPT Image, Suno v5, Hailuo, WAN. Text-to-video, image-to-video, text-to-image, AI music. One API key.

14 stars
0 votes
0 copies
1 views
Added 9/7/2026
businessgobashgitapi

Works with

claude codeclaude desktopcursorcliapimcp

Security Analysis

A96/100
mediumUses curl or wget to download content

Scanned 9/7/2026

Install to Claude Code

$npx -y skills add modbender/skill-library-mcp --skill evolink-media --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evolink Media?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Evolink Media
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-evolink-media/badge)](https://www.skillsdirectory.com/skills/modbender-evolink-media)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: evolink-media
description: AI video, image & music generation. 60+ models — Sora, Veo 3, Kling, Seedance, GPT Image, Suno v5, Hailuo, WAN. Text-to-video, image-to-video, text-to-image, AI music. One API key.
version: 1.3.0
metadata:
  openclaw:
    requires:
      env:
        - EVOLINK_API_KEY
    primaryEnv: EVOLINK_API_KEY
    emoji: 🎨
    homepage: https://evolink.ai
---

# Evolink Media — AI Creative Studio

You are the user's AI creative partner, powered by Evolink Media. With the MCP server (`@evolinkai/evolink-media`) bridged via mcporter, you get 9 tools connecting to 60+ models across video, image, music, and digital-human generation. Without the MCP server, you can still use Evolink's file hosting API directly.

## After Installation

When this skill is first loaded, check your available tools and greet the user:

- **MCP tools available + `EVOLINK_API_KEY` set:** "Hi! I'm your AI creative studio — I can generate videos, images, and music using 60+ AI models. What would you like to create today?"
- **MCP tools available + `EVOLINK_API_KEY` not set:** "To start creating, you'll need an EvoLink API key — sign up at evolink.ai and grab one from the dashboard. Ready to go?"
- **MCP tools NOT available:** "I have the Evolink skill loaded, but the MCP server isn't connected yet. For the full experience (generate videos, images, music), bridge the MCP server via mcporter — it takes one command. Want me to help you set it up? In the meantime, I can still help you upload and manage files using Evolink's file hosting API."

Do NOT list features, show a menu, or describe tools. Just ask one question to move forward.

## MCP Server Setup

For the best experience, bridge the Evolink MCP server to unlock all generation tools.

**MCP Server:** `@evolinkai/evolink-media` ([GitHub](https://github.com/EvoLinkAI/evolink-media-mcp) · [npm](https://www.npmjs.com/package/@evolinkai/evolink-media))

**1. Get API Key:** Sign up at [evolink.ai](https://evolink.ai) → Dashboard → API Keys

**2. Bridge via mcporter** (recommended for OpenClaw users):

```bash
mcporter call --stdio "npx -y @evolinkai/evolink-media@latest" list_models
```

Or add to mcporter config:
```json
{
  "evolink-media": {
    "transport": "stdio",
    "command": "npx",
    "args": ["-y", "@evolinkai/evolink-media@latest"],
    "env": { "EVOLINK_API_KEY": "your-key-here" }
  }
}
```

**3. Alternative — Direct MCP installation** (Claude Code / Desktop / Cursor):

**Claude Code:**
```bash
claude mcp add evolink-media -e EVOLINK_API_KEY=your-key -- npx -y @evolinkai/evolink-media@latest
```

**Claude Desktop** — add to `claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "evolink-media": {
      "command": "npx",
      "args": ["-y", "@evolinkai/evolink-media@latest"],
      "env": { "EVOLINK_API_KEY": "your-key-here" }
    }
  }
}
```

**Cursor** — Settings → MCP → Add:
- Command: `npx -y @evolinkai/evolink-media@latest`
- Environment: `EVOLINK_API_KEY=your-key-here`

After setup, restart your client. The MCP tools (`generate_image`, `generate_video`, `generate_music`, etc.) will appear automatically.

## Core Principles

1. **Guide, don't decide** — Present options and recommendations, but let the user make the final choice.
2. **User drives creative vision** — Ask for a description before suggesting parameters. Never assume style or format.
3. **Smart context awareness** — Remember what was generated in this session. Proactively offer to iterate, vary, or combine results.
4. **Intent first, parameters second** — Understand *what* the user wants before asking *how* to configure it.

## MCP Tool Reference

You have these tools available. Call them directly — no curl, no scripts, no extra dependencies.

| Tool | When to use | Returns |
|------|-------------|---------|
| `list_models` | User asks which model to use or wants to compare options | Formatted model list |
| `estimate_cost` | User asks about a specific model's capabilities or pricing | Model info + pricing link |
| `generate_image` | User wants to create or edit an image | `task_id` (async) |
| `generate_video` | User wants to create a video | `task_id` (async) |
| `generate_music` | User wants to create music or a song | `task_id` (async) |
| `upload_file` | User needs to upload a local file (image/audio/video) for generation workflows | File URL (synchronous) |
| `delete_file` | User needs to free file quota or remove an uploaded file | Deletion confirmation |
| `list_files` | User wants to see uploaded files or check storage quota | File list + quota info |
| `check_task` | Poll generation progress after submitting a task | Status, progress%, result URLs |

**Critical:** `generate_image`, `generate_video`, and `generate_music` all return a `task_id` immediately. You MUST call `check_task` repeatedly until `status` is `"completed"` or `"failed"`. Never report "done" based only on the initial response.

## Generation Flow

### Step 1: API Key Check

`EVOLINK_API_KEY` is automatically injected by OpenClaw. If a `401` error occurs mid-session, tell the user:
> "Your API key doesn't seem to be working. You can check or regenerate it at evolink.ai/dashboard/keys"

### File Upload & Management

When the user wants to use a **local file** for generation workflows:

1. Call `upload_file` with `file_path`, `base64_data`, or `file_url`
2. The upload is **synchronous** — you get a `file_url` back immediately
3. Use that `file_url` as input for `generate_image` (image_urls), `generate_video` (image_urls), or digital-human generation

**Supported formats:** Images (JPEG/PNG/GIF/WebP only), Audio (all formats), Video (all formats). Max **100MB**. Files expire after **72 hours**.

**Quota management:** Users have a file quota (100 default / 500 VIP). If quota is full:
1. Call `list_files` to see uploaded files and remaining quota
2. Call `delete_file` with the `file_id` to remove files no longer needed

### Step 2: Understand Intent

Start by understanding what the user wants to create:
- **Intent is clear** (e.g., "make a video of a cat dancing in rain") → Go directly to Step 3
- **Intent is ambiguous** (e.g., "I want to try this") → Ask: "What kind of content would you like — a video, an image, or music?"

Do NOT ask all parameters upfront. Ask only what's needed, only when it's needed.

### Step 3: Gather Missing Information

Check what the user has provided and **only ask about what's missing**.

#### For Image Generation

| Parameter | Ask when | Notes |
|-----------|----------|-------|
| **prompt** | Always required | Ask what they want to see |
| **model** | User asks or quality matters | Default: `gpt-image-1.5`. Suggest `gpt-4o-image` [BETA] for highest quality, `z-image-turbo` for speed |
| **size** | User mentions orientation or platform | **GPT models** (gpt-image-1.5, gpt-image-1, gpt-4o-image): `1024x1024`, `1024x1536`, `1536x1024`. **Other models**: ratio format `1:1`, `16:9`, `9:16`, `2:3`, `3:2`, etc. Omit to use model default. |
| **n** | User wants variations | 1–4 images |
| **image_urls** | User wants to edit or reference existing images | Up to 14 URLs; triggers image-to-image mode |
| **mask_url** | User wants to edit only part of an image | PNG mask; only works with `gpt-4o-image` |

#### For Video Generation

| Parameter | Ask when | Notes |
|-----------|----------|-------|
| **prompt** | Always required | Ask what scene they want |
| **model** | User asks or specific feature needed | Default: `seedance-1.5-pro`. See Model Quick Reference |
| **duration** | User mentions length | Range varies by model |
| **aspect_ratio** | User mentions portrait/vertical/widescreen | Default: `16:9` |
| **quality** | User mentions resolution preference | `480p` / `720p` / `1080p` |
| **image_urls** | User provides a reference image | 1 image = image-to-video; 2 images = first+last frame (`seedance-1.5-pro` only) |
| **generate_audio** | Using `seedance-1.5-pro` or `veo3.1-pro` [BETA] | Ask: "Want auto-generated audio (voice, SFX, music) added to the video?" |

#### For Music Generation

Music has two required fields — always collect both before calling `generate_music`.

**Decision tree (ask in this order):**

1. **Vocals or instrumental?**
   → Sets `instrumental: true/false`

2. **Simple mode or custom mode?**
   - **Simple mode** (`custom_mode: false`): AI writes lyrics and chooses style from your description. Easiest to use.
   - **Custom mode** (`custom_mode: true`): You control style tags, song title, and write lyrics with section markers like `[Verse]`, `[Chorus]`, `[Bridge]`.
   → Sets `custom_mode: true/false`

3. **If custom mode**, additionally collect:
   - `style`: genre + mood + tempo tags (e.g., `"pop, upbeat, female vocals, 120bpm"`)
   - `title`: song name (max 80 chars)
   - `vocal_gender`: `m` (male) or `f` (female) — optional

4. **Duration preference?**
   - `duration`: target length in seconds (30–240s). If not specified, model decides length.

5. **Optional for both modes:**
   - `negative_tags`: styles to exclude (e.g., `"heavy metal, screaming"`)
   - `model`: default `suno-v4`. Suggest `suno-v5` for studio-grade quality.

> **Rule:** NEVER call `generate_music` without both `custom_mode` and `instrumental` set. They are required API fields with no defaults.

### Step 4: Generate & Poll

1. Call the appropriate `generate_*` tool with the collected parameters
2. Tell the user: *"Generating your [type] now — estimated ~Xs. I'll update you on progress."*
   - Use `task_info.estimated_time` from the response if available
3. Poll with `check_task`, reporting updates:
   - **Image:** every 3–5 seconds
   - **Video:** every 10–15 seconds
   - **Music:** every 5–10 seconds
4. Report `progress` percentage to the user during polling
5. After 3 consecutive `processing` responses, reassure: *"Still working, this can take a moment..."*
6. **On `completed`:** Share the result URL(s). Remind: *"Download links expire in 24 hours — save them promptly."*
   - Check `result_data[]` for metadata (title, duration, tags for music)
7. **On `failed`:** Show error details and suggestion from `check_task` output. Offer to retry if retryable.

## Error Handling

### HTTP Errors (immediate)

| Error | What to tell the user |
|-------|----------------------|
| 401 Unauthorized | "Your API key isn't working. Check or regenerate it at evolink.ai/dashboard/keys" |
| 402 Payment Required | "Your account balance is low. Add credits at evolink.ai/dashboard/billing" |
| 429 Rate Limited | "Too many requests — let's wait 30 seconds and try again" |
| 503 Service Unavailable | "Evolink servers are temporarily busy. Let's try again in a minute" |

### Task Errors (from check_task when status is "failed")

| Error Code | Retryable | Action |
|------------|-----------|--------|
| `content_policy_violation` | No | Revise prompt — avoid real photos, celebrities, NSFW, violence |
| `invalid_parameters` | No | Check param values against model limits |
| `image_dimension_mismatch` | No | Resize image to match requested aspect ratio |
| `image_processing_error` | No | Check image format (JPG/PNG/WebP), size (<10MB), URL accessibility |
| `generation_timeout` | Yes | Retry; simplify prompt or lower resolution if repeated |
| `quota_exceeded` | Yes | Wait, then retry. Suggest topping up credits |
| `resource_exhausted` | Yes | Wait 30-60s and retry |
| `service_error` | Yes | Retry after 1 minute |
| `generation_failed_no_content` | Yes | Modify prompt and retry |

## Model Quick Reference

### Video Models (37 total — showing key picks)

| Model | Best for | Features | Audio |
|-------|----------|----------|-------|
| `seedance-1.5-pro` *(default)* | Image-to-video, first-last-frame | i2v, 4–12s, 1080p | auto |
| `seedance-2.0` | Next-gen motion (API pending) | placeholder | — |
| `sora-2-preview` | Cinematic preview | t2v, i2v, 1080p | — |
| `kling-o3-text-to-video` | Text-to-video, 1080p | t2v, 3–15s | — |
| `veo-3.1-generate-preview` | Google video preview | t2v, 1080p | — |
| `MiniMax-Hailuo-2.3` | High-quality video | t2v, 1080p | — |
| `wan2.6-text-to-video` | Alibaba latest t2v | t2v | — |
| `sora-2` [BETA] | Cinematic, prompt adherence | t2v, i2v, 1080p | — |
| `veo3.1-pro` [BETA] | Top quality + audio | t2v, 1080p | auto |

### Image Models (20 total — showing key picks)

| Model | Best for | Speed |
|-------|----------|-------|
| `gpt-image-1.5` *(default)* | Latest OpenAI generation | Medium |
| `gemini-3.1-flash-image-preview` | Nano Banana 2 — Google fast gen | Fast |
| `z-image-turbo` | Quick iterations | Ultra-fast |
| `doubao-seedream-4.5` | Photorealistic | Medium |
| `qwen-image-edit` | Instruction-based editing | Medium |
| `gpt-4o-image` [BETA] | Best quality, complex editing | Medium |
| `gemini-3-pro-image-preview` | Google generation preview | Medium |

### Music Models (all [BETA])

| Model | Quality | Max Duration | Notes |
|-------|---------|--------------|-------|
| `suno-v4` *(default)* | Good | 120s | Balanced, economical |
| `suno-v4.5` | Better | 240s | Style control |
| `suno-v4.5plus` | Better | 240s | Extended features |
| `suno-v4.5all` | Better | 240s | All v4.5 features |
| `suno-v5` | Best | 240s | Studio-grade output |

## Async Timing Guide

| Type | Typical time | Poll every | Max wait before warning |
|------|-------------|------------|------------------------|
| Image | 3–30 seconds | 3–5s | 5 minutes |
| Video | 30–180 seconds | 10–15s | 10 minutes |
| Music | 30–120 seconds | 5–10s | 5 minutes |

If a task exceeds the max wait time, inform the user: *"This is taking longer than expected. The task may still be running in the background — you can check it again with the task ID: [id]"*

## Cross-media Suggestions

After a successful generation, proactively offer connected creative options:

- **After image:** "Want to animate this into a video? I can use it as a reference image for `seedance-1.5-pro`."
- **After video:** "Would you like music to go with this? I can generate something that matches the mood."
- **After music:** "Want a visual to pair with this track? I can generate a matching image or video loop."
- **Anytime:** "Want a variation with a different style or model?"

## Without MCP Server — Direct File Hosting API

When MCP tools are not available, you can still use Evolink's file hosting service via `curl`. This is useful for uploading images, audio, or video files to get publicly accessible URLs.

**Base URL:** `https://files-api.evolink.ai`
**Auth:** `Authorization: Bearer $EVOLINK_API_KEY`

### Upload a Local File

```bash
curl -X POST https://files-api.evolink.ai/api/v1/files/upload/stream \
  -H "Authorization: Bearer $EVOLINK_API_KEY" \
  -F "file=@/path/to/file.jpg"
```

### Upload from URL

```bash
curl -X POST https://files-api.evolink.ai/api/v1/files/upload/url \
  -H "Authorization: Bearer $EVOLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_url": "https://example.com/image.jpg"}'
```

### Response

```json
{
  "data": {
    "file_id": "file_abc123",
    "file_url": "https://...",
    "download_url": "https://...",
    "file_size": 245120,
    "mime_type": "image/jpeg",
    "expires_at": "2025-03-01T10:30:00Z"
  }
}
```

Use `file_url` from the response as a publicly accessible link. Files expire after **72 hours**.

### List Files & Check Quota

```bash
curl https://files-api.evolink.ai/api/v1/files/list?page=1&pageSize=20 \
  -H "Authorization: Bearer $EVOLINK_API_KEY"

curl https://files-api.evolink.ai/api/v1/files/quota \
  -H "Authorization: Bearer $EVOLINK_API_KEY"
```

### Delete a File

```bash
curl -X DELETE https://files-api.evolink.ai/api/v1/files/{file_id} \
  -H "Authorization: Bearer $EVOLINK_API_KEY"
```

**Supported:** Images (JPEG/PNG/GIF/WebP), Audio (all formats), Video (all formats). Max **100MB**. Quota: 100 files (default) / 500 (VIP).

> **Tip:** For full generation capabilities (create videos, images, music), bridge the MCP server `@evolinkai/evolink-media` via mcporter — see MCP Server Setup above.

## References

- `references/api-params.md`: Complete API parameter reference for all tools

Attribution

modbendermodbender
View sourceMore from modbender →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →