Install
$ agentstack add skill-wesleysimplicio-wavespeedai-skills-codex ✓ 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
WaveSpeedAI skill
Unified inference gateway. Async-by-default with polling. One API key for both media and LLM workloads.
When to invoke
- User asks to generate AI media (image / video / audio / avatar).
- User mentions a
wavespeed-ai/*model uuid orvendor/modelLLM id. - User wants to upload a local file as input for image-to-X / video-to-X.
- User wants to list models or check WaveSpeed balance.
- User wants to call Claude / GPT / Gemini / Llama through the WaveSpeed LLM proxy.
Prereqs
export WAVESPEED_API_KEY="ws_..." # https://wavespeed.ai/accesskey
CLI: ~/.local/bin/wavespeed-cli (uses ~/.local/share/wavespeed-skill/venv).
Subcommands
run — submit a media job, poll, return JSON
wavespeed-cli run wavespeed-ai/z-image/turbo '{"prompt":"Cat"}'
wavespeed-cli run wavespeed-ai/flux-dev '{"prompt":"...","output_format":"png"}' --timeout 600
wavespeed-cli run wavespeed-ai/seedance-v2 '{"image":"","prompt":"dolly in"}' --sync
Output URLs at .outputs[].
submit / result / cancel
wavespeed-cli submit wavespeed-ai/veo-3 '{"prompt":"..."}' --webhook-url https://app/cb
wavespeed-cli result --wait
wavespeed-cli cancel
upload — upload a local asset, print hosted URL
URL=$(wavespeed-cli upload ./input.png)
wavespeed-cli run wavespeed-ai/seedance-v2 \
"$(jq -nc --arg u "$URL" '{image:$u, prompt:"camera pan"}')"
models / balance
wavespeed-cli models --names-only
wavespeed-cli models --filter video
wavespeed-cli balance
llm — OpenAI-compatible chat completion
wavespeed-cli llm anthropic/claude-opus-4.6 "Hello"
wavespeed-cli llm openai/gpt-5.2-pro "..." --system "Be terse."
wavespeed-cli llm google/gemini-3-flash-preview "..." --json-mode --raw
wavespeed-cli llm deepseek/deepseek-v4 "..." --stream
Base URL: https://llm.wavespeed.ai/v1.
verify-webhook
WAVESPEED_WEBHOOK_SECRET=ws_secret \
wavespeed-cli verify-webhook "$RAW_BODY" "$X_WEBHOOK_SIGNATURE"
Python (scripting)
import wavespeed
out = wavespeed.run("wavespeed-ai/z-image/turbo", {"prompt": "Cat"})
print(out["outputs"][0])
from wavespeed import Client
client = Client(api_key="...", max_retries=3, max_connection_retries=5, retry_interval=1.0)
out = client.run(model, payload, timeout=600, poll_interval=1.0, enable_sync_mode=False)
url = wavespeed.upload("/path/to/image.png")
Run with the dedicated venv:
~/.local/share/wavespeed-skill/venv/bin/python myscript.py
Or ad-hoc:
uv run --with wavespeed python myscript.py
Frequently-used model uuids
| Family | uuid | |---|---| | Text→Image fast | wavespeed-ai/z-image/turbo | | Text→Image quality | wavespeed-ai/flux-dev, wavespeed-ai/flux-pro, wavespeed-ai/qwen-image-2 | | Text→Image w/ LoRA | wavespeed-ai/flux-dev-lora | | Image→Video | wavespeed-ai/seedance-v2, wavespeed-ai/kling-v2.1, wavespeed-ai/luma-dream-machine | | Text→Video | wavespeed-ai/veo-3, wavespeed-ai/veo-3-fast, wavespeed-ai/wan-2.7 | | Identity portrait | wavespeed-ai/higgsfield-soul-id | | Audio | wavespeed-ai/ace-step | | LLM | anthropic/claude-opus-4.6, openai/gpt-5.2-pro, google/gemini-3-flash-preview, deepseek/deepseek-v4, meta-llama/llama-4-70b |
Live catalog: wavespeed-cli models --names-only.
REST primitives (when SDK is overkill)
# Submit
curl -X POST "https://api.wavespeed.ai/api/v3/" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" -H "Content-Type: application/json" \
-d '{...payload...}'
# Poll
curl "https://api.wavespeed.ai/api/v3/predictions//result" \
-H "Authorization: Bearer $WAVESPEED_API_KEY"
Errors: 401 bad key, 429 rate limit, 400 payload mismatch, 402 insufficient balance.
Cost / latency knobs
--timeout 600image,--timeout 1800video. Default36000is too long for interactive flows.--poll-interval 0.5for fast image loops; default1.0is fine for video.--syncskips polling — only for sub-30s models.
Refs
- Docs: https://wavespeed.ai/docs
- SDK: https://github.com/WaveSpeedAI/wavespeed-python
- Models: https://wavespeed.ai/models
- API key: https://wavespeed.ai/accesskey
- Skill repo: https://github.com/wesleysimplicio/WaveSpeedAI-Skills
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: wesleysimplicio
- Source: wesleysimplicio/WaveSpeedAI-Skills
- License: MIT
- Homepage: https://wavespeed.ai
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.