Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pollinations.ai API for AI generation - text, images, videos, audio, and analysis. Use when user requests AI-powered generation (text completion, images, videos, audio, vision/analysis, transcription) or mentions Pollinations. Supports 25+ models (OpenAI, Claude, Gemini, Flux, Veo, etc.) with OpenAI-compatible chat endpoint and specialized generation endpoints.
.claude/skills/sundial-org-pollinations/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 98% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 150% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -4% | 0% |
Unified AI platform for text, images, videos, and audio generation with 25+ models.
Get free or paid keys at https://enter.pollinations.ai
sk_): Server-side, no rate limits (recommended)Store key in environment variable:
bashexport POLLINATIONS_API_KEY="sk_your_key_here"
Simple text generation:
bashcurl "https://gen.pollinations.ai/text/Hello%20world"
Chat completions (OpenAI-compatible):
bashcurl -X POST https://gen.pollinations.ai/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $POLLINATIONS_API_KEY" \ -d '{ "model": "openai", "messages": [{"role": "user", "content": "Hello"}] }'
Use script: scripts/chat.sh for easy chat completions
bashcurl "https://gen.pollinations.ai/image/A%20sunset%20over%20mountains?model=flux&width=1024&height=1024"
Use script: scripts/image.sh for image generation
bashcurl -X POST https://gen.pollinations.ai/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "openai-audio", "messages": [ {"role": "system", "content": "You are a text reader. Read the user text exactly without responding, adding conversation, or changing anything."}, {"role": "user", "content": "Say: Hello world"} ], "modalities": ["text", "audio"], "audio": {"voice": "nova", "format": "mp3"} }'
Use script: scripts/tts.sh for text-to-speech
https://gen.pollinations.ai/v1/chat/completionshttps://gen.pollinations.ai/text/{prompt}https://gen.pollinations.ai/image/{prompt}?{params}https://gen.pollinations.ai/image/{prompt}?{params} (generates video)Models: OpenAI, Claude, Gemini, Mistral, DeepSeek, Grok, Qwen Coder, Perplexity, and 20+ more
Common models: openai, claude, gemini, mistral, deepseek, qwen, gpt-4, o1, o3
Parameters:
model (string): Model name/IDmessages (array): Chat messages with roles (system/user/assistant)temperature (number): 0-2, default 1max_tokens (number): Max response lengthtop_p (number): Nucleus sampling, default 1seed (number): Reproducibility (-1 for random)jsonMode (boolean): Force JSON responsereasoning_effort (string): For o1/o3/R1 (high/medium/low/minimal/none)thinking_budget (number): Tokens for reasoning (thinking models)Vision support: Include image_url in message content for multi-modal:
json{ "role": "user", "content": [ {"type": "text", "text": "Describe this image"}, {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}} ] }
Models: flux (default), turbo, gptimage, kontext, seedream, nanobanana, nanobanana-pro
Parameters:
model (string): Model selectionwidth/height (number): 16-2048px, default 1024seed (number): Reproducibilitynegative_prompt (string): What to avoidnologo (boolean): Remove watermarkprivate (boolean): Private generationsafe (boolean): Enable NSFW filterenhance (boolean): AI prompt enhancementquality (string): low/medium/high/hd (gptimage)transparent (boolean): Transparent background (gptimage)count (number): 1-4 images (premium)image (string): Input image URL (image-to-image)Format: Returns binary image data (determined by Content-Type header)
Use same image endpoint with image parameter:
https://gen.pollinations.ai/image/make%20it%20blue?image={source_url}Models: veo (4-8s), seedance (2-10s)
Parameters:
model (string): veo or seedancewidth/height (number): Dimensionsduration (number): Seconds (veo: 4/6/8, seedance: 2-10)aspectRatio (string): 16:9 or 9:16audio (boolean): Enable audio (veo only)image (string): Input image URL (frame interpolation: image0]=first, image1]=last)negative_prompt (string): What to avoidseed (number): Reproducibilityprivate/safe (boolean): Privacy/safety optionsFormat: Returns binary video data
Models: openai-audio
Voices: alloy, echo, fable, onyx, nova, shimmer, coral, verse, ballad, ash, sage, amuch, dan
Formats: mp3, wav, flac, opus, pcm16
Parameters:
model: openai-audiomodalities: "text", "audio"]audio.voice: Voice selectionaudio.format: Output formatNote: Use "Say:" prefix in user message for direct text reading
Use chat completions endpoint with vision/audio-capable models:
Use chat completions with vision models:
image_url in message contentUse chat completions with video-capable models:
scripts/chat.shInteractive chat completions with model selection and options.
Usage:
bashscripts/chat.sh "your message here" scripts/chat.sh "your message" --model claude --temp 0.7
scripts/image.shGenerate images from text prompts.
Usage:
bashscripts/image.sh "a sunset over mountains" scripts/image.sh "a sunset" --model flux --width 1024 --height 1024 --seed 123
scripts/tts.shConvert text to speech.
Usage:
bashscripts/tts.sh "Hello world" scripts/tts.sh "Hello world" --voice nova --format mp3 --output hello.mp3
seed parameter for consistent outputsenhance=true for AI-improved promptsimage[0]=first&image[1]=last for veoFull docs: https://enter.pollinations.ai/api/docs
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,848 | 2,061 | -65% | 1 | 1 | 0% | 1,324 | 2,335 | +76% | 0 | 0 | — |
case-02 | fail→pass | 6,201 | 5,543 | -11% | 1 | 1 | 0% | 1,320 | 2,610 | +98% | 0 | 0 | — |
case-03 | fail→pass | 5,767 | 4,050 | -30% | 1 | 1 | 0% | 1,129 | 2,821 | +150% | 0 | 0 | — |
case-04 | pass→pass | 10,353 | 6,719 | -35% | 1 | 1 | 0% | 2,021 | 3,443 | +70% | 0 | 0 | — |
case-05 | pass→pass | 7,015 | 5,220 | -26% | 1 | 1 | 0% | 1,330 | 2,986 | +125% | 0 | 0 | — |
case-06 | pass→pass | 4,993 | 4,796 | -4% | 1 | 1 | 0% | 994 | 2,983 | +200% | 0 | 0 | — |
case-07 | fail→pass | 4,084 | 2,505 | -39% | 1 | 1 | 0% | 732 | 2,401 | +228% | 0 | 0 | — |
case-08 | fail→pass | 14,855 | 2,394 | -84% | 1 | 1 | 0% | 2,454 | 2,362 | -4% | 0 | 0 | — |
case-09 | fail→pass | 5,899 | 2,513 | -57% | 1 | 1 | 0% | 1,054 | 2,400 | +128% | 0 | 0 | — |
case-10 | fail→pass | 8,076 | 5,312 | -34% | 1 | 1 | 0% | 1,442 | 3,020 | +109% | 0 | 0 | — |
case-11 | fail→pass | 7,809 | 4,359 | -44% | 1 | 1 | 0% | 1,130 | 2,939 | +160% | 0 | 0 | — |
case-12 | fail→pass | 9,003 | 3,215 | -64% | 1 | 1 | 0% | 1,639 | 2,605 | +59% | 0 | 0 | — |
case-13 | fail→pass | 10,606 | 3,730 | -65% | 1 | 1 | 0% | 2,068 | 2,659 | +29% | 0 | 0 | — |
case-14 | fail→pass | 5,577 | 3,246 | -42% | 1 | 1 | 0% | 990 | 2,562 | +159% | 0 | 0 | — |
case-15 | pass→pass | 2,654 | 2,111 | -20% | 1 | 1 | 0% | 395 | 2,361 | +498% | 0 | 0 | — |
case-16 | fail→pass | 6,257 | 3,313 | -47% | 1 | 1 | 0% | 1,298 | 2,593 | +100% | 0 | 0 | — |
case-17 | pass→pass | 3,930 | 2,791 | -29% | 1 | 1 | 0% | 735 | 2,547 | +247% | 0 | 0 | — |
case-18 | fail→pass | 10,147 | 3,710 | -63% | 1 | 1 | 0% | 1,712 | 2,667 | +56% | 0 | 0 | — |
case-19 | pass→pass | 4,119 | 3,343 | -19% | 1 | 1 | 0% | 704 | 2,666 | +279% | 0 | 0 | — |
case-20 | pass→pass | 9,075 | 3,516 | -61% | 1 | 1 | 0% | 1,832 | 2,572 | +40% | 0 | 0 | — |
case-21 | fail→pass | 8,848 | 2,848 | -68% | 1 | 1 | 0% | 1,678 | 2,495 | +49% | 0 | 0 | — |
case-22 | fail→pass | 10,075 | 3,445 | -66% | 1 | 1 | 0% | 1,543 | 2,476 | +60% | 0 | 0 | — |
case-23 | fail→pass | 8,412 | 1,744 | -79% | 1 | 1 | 0% | 1,409 | 2,226 | +58% | 0 | 0 | — |
case-24 | pass→pass | 10,191 | 4,632 | -55% | 1 | 1 | 0% | 1,689 | 2,776 | +64% | 0 | 0 | — |
case-25 | pass→pass | 6,553 | 1,881 | -71% | 1 | 1 | 0% | 962 | 2,334 | +143% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.