wavespeed skill
Generate and edit AI-powered media including images, videos, audio, and 3D assets using MCP tools or a CLI.
- GitHub stars
- 26
- Files
- 1
- Last commit
- Nov 10, 2026
- License
- MIT
- Allowed tools
- —
What does the wavespeed skill do?
wavespeed generates and edit AI-powered media including images, videos, audio, and 3D assets using MCP tools or a CLI.
Summary generated from the skill's SKILL.md.
About the wavespeed skill
Creating and modifying AI-generated media like images, videos, audio, and 3D assets is possible through WaveSpeed. Developers can use the WaveSpeed MCP tools when connected to a hosted environment or the wavespeed CLI for local file management and batch processing. The system provides specialized shortcuts for common tasks such as generating images from prompts, editing existing videos, or extending video clips. For more specialized needs like upscaling or generating music, the generic run command allows access to any model in the live catalog.
When working via the hosted MCP server, users must provide public URLs because the server cannot access local files. Conversely, the CLI handles local files easily using the @./path syntax. The platform includes tools to estimate costs before running a task, check remaining credit balances, and inspect model schemas to ensure correct inputs. Users can select specific models like seedream-5-pro for images or kling-4.0 for video, or rely on defaults provided by the system.
What an agent can do with it
- 1Generate marketing visualsCreate new images or videos from text prompts to build promotional content.
- 2Modify existing mediaEdit, restyle, or combine multiple images into a single composition.
- 3Extend video sequencesTake an existing video clip and generate additional footage to make it longer.
- 4Estimate production costsCalculate the price of a video generation task before submitting the request.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the wavespeed skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the wavespeed skill in Claude Code
~/.claude/skills/wavespeed/SKILL.md
$ npx degit WaveSpeedAI/wavespeed-cli/skills ~/.claude/skills/wavespeedInstall the wavespeed skill in Claude Code (project)
.claude/skills/wavespeed/SKILL.md
$ npx degit WaveSpeedAI/wavespeed-cli/skills .claude/skills/wavespeedInstall the wavespeed skill in Codex
~/.agents/skills/wavespeed/SKILL.md
$ npx degit WaveSpeedAI/wavespeed-cli/skills ~/.agents/skills/wavespeedInstall the wavespeed skill in Gemini CLI
~/.gemini/skills/wavespeed/SKILL.md
$ npx degit WaveSpeedAI/wavespeed-cli/skills ~/.gemini/skills/wavespeedInstall the wavespeed skill in Claude.ai
npx degit WaveSpeedAI/wavespeed-cli/skills wavespeed && zip -r wavespeed.zip wavespeed # claude.ai → Customize → Skills → + → Create skill → Upload a skill → wavespeed.zip
SKILL.md
View on GitHubWaveSpeed
WaveSpeed runs every model on its platform. There are two ways in, and they do the same things:
- MCP tools (
generate_image,generate_video, …): use them when the WaveSpeed MCP server is connected. The hosted server cannot read local files: pass public URLs, or use the CLI for files on disk. - The
wavespeedCLI: use it when it is installed, for local files (@./path), batches and scripts.
For plain image and video work, use the shortcuts. For anything else (audio, 3D, upscaling, a specific endpoint, exact parameters), use the generic run.
Images and videos: the shortcuts
| Task | CLI | MCP tool |
|---|---|---|
| Image from a prompt (optionally with reference pictures) | wavespeed generate image "<prompt>" [--image @./ref.jpg] |
generate_image |
| Edit, restyle, combine images | wavespeed edit image "<prompt>" --image @./photo.jpg |
edit_image |
| Video from a prompt, a first/last frame, or references | wavespeed generate video "<prompt>" [--first-frame …] [--ref-image …] |
generate_video |
| Edit a video | wavespeed edit video "<prompt>" --video @./clip.mp4 |
edit_video |
| Continue a video | wavespeed extend video "<prompt>" --video @./clip.mp4 |
extend_video |
They use the same models as the WaveSpeed /chat page and pick the endpoint (text, image, reference, edit) from the inputs you give. In the prompt, refer to media as @image 1, @video 1, @audio 1, in the order given ("put the product in @image 1 into the kitchen in @image 2").
- Price first for videos: CLI
--estimate --json, MCPestimate_only: true. It returns the endpoint, the exact request and the price, and submits nothing. - Models: pass
-m/modelonly when the user names one; a named model is never switched. Without it the default is used, or another model only when the default cannot take the inputs. - Options:
--aspect-ratio,--resolution,--duration(CLI) or the same fields (MCP). Set them only when the user asks; values are snapped to what the model supports, and every change is reported. - CLI: add
--jsonto read the result,--downloadto save files.
Default models
| Default | Alternatives (-m / model) |
|
|---|---|---|
| Image | seedream-5-5 (Seedream 5.5) |
seedream-5-pro, gpt-image-2.6 (GPT Image 2.6, the model behind ChatGPT Images 2.6; strong at text and photorealism), gpt-image-2.5, nano-banana-2.1, nano-banana-pro, nano-banana-2, gpt-image-2 |
| Video | seedance-2.5 (Seedance 2.5) |
seedance-2.5-turbo, kling-4.0, wan-3.0, wan-3.0-prime, minimax-h3 (cheap and fast, native stereo audio; defaults to 768p, its counterpart of 720p), older Seedance 2.0 tiers |
Video resolution is 720p unless the user asks for another (MiniMax H3: 768p). Offer 480p for a cheaper draft.
Everything else: the generic run
Every model on the platform is one wavespeed run <model-id> (MCP: run_model). The model id is always explicit.
# 1. FIND a model in the live catalog (MCP: list_models)
wavespeed models "upscale"
wavespeed models --type text-to-audio --popular
# 2. INSPECT its inputs (MCP: get_model_schema)
wavespeed run <model-id> -h
# 3. RUN it, with --json so you can read the result (MCP: run_model)
wavespeed run <model-id> -p "..." -i key=value --json
run --json returns { id, model, prompt, outputs: [url, ...], saved: [path, ...], elapsed_ms, raw }. Keep id: it is the handle for wavespeed show <id> (MCP: get_prediction) if anything is interrupted. Use the URL when the user wants a link; add --download when they need the file on disk.
# Local files: @path uploads the file and passes its URL
wavespeed run <model-id> -i image=@./photo.jpg --json
wavespeed run <model-id> -i images='["@./a.jpg","@./b.jpg"]' --json
# Or upload separately when you need the URL itself (MCP: upload_file / create_upload)
URL=$(wavespeed upload ./photo.jpg --json | jq -r .url)
# Save outputs with a template
wavespeed run <model-id> -p "..." --download "./out/{index}.{ext}"
The generic run never changes the user's prompt or inputs. The single exception is explicit: an @path value uploads that file and substitutes its hosted URL. Bare paths are never uploaded.
Project config and aliases
If wavespeed.json exists (created by wavespeed init):
defaultModelletswavespeed run -p "…"(no model arg) work.- Aliases are named shortcuts that bundle model + default inputs. Run
wavespeed aliasesto see them;wavespeed run <alias> -hshows the resolved schema. CLI-i k=voverrides alias defaults.
Auth
- CLI:
wavespeed statusshows whether the user is signed in. If not, ask them to runwavespeed login(opens https://wavespeed.ai/accesskey). - MCP: if the tools ask for authorization, the user approves the connection once (in Claude Code:
/mcp, pickwavespeed). - Never ask the user to paste an API key into the chat.
Cost and credits
wavespeed price <id> -i k=v --json(MCP:get_price) estimates a run without generating or charging. The shortcuts have--estimate/estimate_only.wavespeed balance(MCP:get_balance) shows the remaining credit;wavespeed usageandwavespeed billingsshow what was spent.- If a run fails with
Insufficient credits(or says a top-up is required), the balance is too low: do not retry. Tell the user and give them https://wavespeed.ai/top-up. You cannot pay for them.
Pitfalls
- Don't invent model IDs. Confirm with
wavespeed modelsorwavespeed schema <id>(MCP:list_models,get_model_schema) before a generic run. - Local files: use
@./file.jpg. Bare paths are NOT uploaded and the model will reject them. The hosted MCP server cannot read local files at all. wavespeed deleterequires--yeswhen run non-interactively (that includes you).- A run that fails with a gateway or network error (502/503/504, connection reset, timeout) does NOT mean the task failed, and the submit request is never retried automatically on those errors (only an HTTP 429 rate limit, which the API returns before any task exists, is retried), so re-running can create a duplicate paid task. Do not re-run immediately. If the error contains a task id (
task_id/ prediction id), keep checking it withwavespeed show <id> --json(MCP:get_prediction) until its status is terminal (completed,failed,cancelled,timeout,deleted). If no id was returned, check recent predictions withwavespeed history --json(MCP:list_predictions; add the model; default window is the last 24h) and re-run once only if none matches. A client-side wait timeout or an interrupted run does not mean the task failed: tasks can run for a long time, so do not give up after a fixed time.
Files in this skill
1wavespeed skill questions
How do I install the wavespeed skill in Claude Code?
Run npx degit WaveSpeedAI/wavespeed-cli/skills ~/.claude/skills/wavespeed. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the wavespeed skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
How can I use local files with the WaveSpeed MCP tools?
The hosted MCP server cannot read local files directly. You must pass public URLs or use the WaveSpeed CLI with the '@./path' syntax to upload files from your disk.
How do I estimate the cost of a video generation before running it?
You can use the CLI command '--estimate --json' or set 'estimate_only: true' in the MCP tool to get the endpoint, request details, and price without submitting the task.
What should I do if a run fails with a network error like 502 or 504?
Do not re-run the task immediately as it might create a duplicate paid task. If a task ID was returned, check its status using 'wavespeed show <id>'. If no ID was returned, check your recent history.
How do I upload a local file to get a URL for use in other tools?
You can use the 'wavespeed upload' command to upload a file and retrieve its hosted URL.