Use the genmedia CLI to search, inspect, run, and manage 1200+ fal.ai model endpoints. Agent-first CLI with JSON output for automation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fal-ai-community-skills:genmediaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`genmedia` is the agent-first CLI for fal.ai. It works in a terminal for humans (pretty output) and equally well for agents (structured JSON when piped or with `--json`). All other skills in this repo call `genmedia` for execution, they do not wrap the fal.ai HTTP API directly.
genmedia is the agent-first CLI for fal.ai. It works in a terminal for humans (pretty output) and equally well for agents (structured JSON when piped or with --json). All other skills in this repo call genmedia for execution, they do not wrap the fal.ai HTTP API directly.
For the full command surface (every flag, every option, every example), see references/full-reference.md.
--json when an agent will read the output. Pretty mode is for humans only.genmedia run "<prompt>" (no endpoint, no --prompt needed) classifies the prompt and routes to a sensible default per modality. Only do explicit endpoint discovery when the user names a model, asks for a non-default behavior (specific style, quality tier, parameter), or the smart-route default is wrong for the task.genmedia models "<query>" to discover (auto-filters by inferred modality) and genmedia models --endpoint_id <id> to verify.genmedia schema <endpoint_id> --json shows the exact field names. Smart routing only needs prompt; explicit endpoints with custom params need a schema check first or guessed flags fail with 422.--download, not curl. The CLI handles authentication, naming, and file format detection.--async for long-running generation. Image work usually completes inline; video/audio/3D usually need queue + status polling.| Command | Purpose |
|---|---|
genmedia setup | Configure API key, output mode, auto-update |
genmedia models <query> | Search the catalog (or --category, or --endpoint_id) |
genmedia schema <endpoint_id> | Inspect inputs/outputs (compact or --format openapi) |
genmedia run <endpoint_id> --<param> <value> | Execute a model |
genmedia status <endpoint_id> <request_id> | Poll an async job (with --result, --logs, --cancel, --download) |
genmedia upload <path-or-url> | Upload a local file or remote URL to the fal.ai CDN |
genmedia pricing <endpoint_id> | Check cost per call |
genmedia docs <query> | Search fal.ai documentation |
genmedia init | Install the default skill bundle into .agents/skills/ or .claude/skills/ |
| `genmedia skills <list | install |
genmedia version / genmedia update | Check or apply CLI updates |
The CLI classifies the prompt by modality (image / video / music / tts / 3d) and picks a sensible default endpoint. The output includes a routed block so you can verify which endpoint actually ran.
genmedia run "a cat on the moon" --json
genmedia run "a 5-second clip of a robot dancing" --json
genmedia run "narrate this paragraph in a calm voice" --json
Override anytime with an explicit endpoint id (positional that contains /):
genmedia run fal-ai/flux/pro --prompt "a cat on the moon" --json
genmedia models "<query>" auto-applies --category from the same classifier the smart router uses, so the result list is focused on the right modality. Pass --no-classify to disable, or --category <cat> to override.
genmedia models "background removal product image" --json
genmedia models --category text-to-video --limit 5 --json
genmedia models "video models with character consistency" --no-classify --json
genmedia docs "webhook callbacks" --json
genmedia run fal-ai/flux/dev \
--prompt "a cat on the moon" \
--download "./out/{request_id}_{index}.{ext}" \
--json
SUBMIT=$(genmedia run fal-ai/veo3.1 --prompt "a dog running" --async --json)
REQ=$(echo "$SUBMIT" | jq -r '.request_id')
genmedia status fal-ai/veo3.1 "$REQ" \
--download "./out/{request_id}_{index}.{ext}" \
--json
Smart routing also works for async — the response includes routed and endpoint_id so you know which endpoint to poll on status:
SUBMIT=$(genmedia run "a 30-second video of waves" --async --json)
REQ=$(echo "$SUBMIT" | jq -r '.request_id')
EP=$(echo "$SUBMIT" | jq -r '.endpoint_id')
genmedia status "$EP" "$REQ" --download "./out/" --json
URL=$(genmedia upload ./photo.jpg --json | jq -r '.url')
genmedia run fal-ai/nano-banana-pro/edit \
--image_urls "$URL" \
--prompt "make the sky stormy" \
--download "./out/{request_id}_{index}.{ext}" \
--json
If genmedia is not installed:
curl https://genmedia.sh/install -fsS | bash # Linux / macOS
irm https://genmedia.sh/install.ps1 | iex # Windows PowerShell
genmedia setup --non-interactive --api-key "$FAL_KEY"
For full setup details (output modes, auto-update, .env loading) see full-reference.md.
npx claudepluginhub fal-ai-community/skillsHelps select the best fal.ai endpoint for a given task, organized by modality (text-to-image, video, audio, 3D, etc.). Useful when the user hasn't named a specific model.
Guides fal.ai model selection for image (FLUX, SDXL), video (Kling, LTX, Sora), audio (Whisper, ElevenLabs) generation with quality-speed-cost comparisons, benchmarks, decision trees, and parameters.
Generates images, videos, and audio via fal.ai MCP models including Nano Banana, Seedance, Kling, Veo 3, CSM-1B, and ThinkSound.