generate-media
Generate or edit images, generate videos, turn text into speech, and transcribe audio, with any OpenRouter model through the `ormedia` CLI.
Skill by khang859
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/khang859-generate-media
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/generate-media
What's inside
- Skill name
generate-media- Description
- Generate or edit images, generate videos, turn text into speech, and transcribe audio, with any OpenRouter model through the `ormedia` CLI. Use when the user asks to create, draw, render, design, edit, or restyle an image, logo, icon, illustration, or mockup, to make, animate, or generate a video or clip, or to make a voice-over, a narration, text to speech, a transcript of an audio or video file, or a dub or a translation of a video.
- License
- MIT
- Instructions
- 134 lines in SKILL.md · view on GitHub
Files (19)
- SKILL.md
- image-flux.md · prompts/
- image-google-nano-banana.md · prompts/
- image-openai-gpt-image.md · prompts/
- image-other-models.md · prompts/
- image-qwen.md · prompts/
- image-recraft.md · prompts/
- image-seedream.md · prompts/
- speech-dubbing.md · prompts/
- speech-fish-audio.md · prompts/
- video-directing.md · prompts/
- video-flux.md · prompts/
- video-google-veo.md · prompts/
- video-hailuo.md · prompts/
- video-kling.md · prompts/
- video-other-models.md · prompts/
- video-runway.md · prompts/
- video-seedance.md · prompts/
- video-wan.md · prompts/
SKILL.md (first lines)
# Generate media with OpenRouter The `ormedia` command is on your PATH. It saves each result to a file and prints the path. Run `ormedia --help` for every option. ## Sign in Run `ormedia status` when a command says there is no API key. If the user is not signed in, run `ormedia login` with a Bash timeout of 300000 ms. It opens the browser, the user approves, and the key is stored on disk. Never ask the user to paste an API key into the chat. ## Images ```bash ormedia image --prompt "A weathered lighthouse at dusk, oil painting, thick brushwork" --aspect-ratio 16:9 --out assets/ ormedia image --prompt "Change only the sky to a sunset. Keep the building the same." --image ./photo.png ``` - `--image` takes a local path or a URL, and repeats for several references. - `--out` takes a file name or a folder. An existing file is never overwritten. - After the command returns, read the saved file to check the result before you report it. - Inside Fleet the image opens in a Fleet tab on its own. Pass `--no-open` to stop that, or `--open` to force it when the user turned it off. ## Videos Video costs real money per second, so do these steps in order: 1. Run `ormedia models video --search <name>` to see the durations, resolutions, and prices the model takes. 2. Tell the user the model, the duration, and the estimated price, and get a yes before you start. 3. Run the command in the background, because a video takes from 30 seconds to several minutes. ```bash ormedia video --prompt "Slow dolly shot through a neon-lit alley in the rain" --duration 4 --resolution 720p --out clips/ ormedia video --prompt "The boat sails away" --first-frame ./boat.png --duration 6 ``` The command prints `Video job <id> started` first. If the command stops before the video is saved, the job still runs on OpenRouter. Get it with `ormedia job <id> --wait`. Do not submit the same video again, because that pays twice. ## Speech ```bash ormedia speech --text "[warm] Welcome back. Here is what is new this week." --voice <id> --out audio/ ormedia speech --text-file script.txt --voice-sample ./me.wav --voice-sample-text "The exact words in me.wav." ``` - The default model is Fish Audio S2.1 Pro. The result is an MP3 file. - `--voice` takes a voice id of the model. `ormedia models speech --search <name>` lists the voices of a model that has a fixed list. - `--voice-sample` copies the voice in a recording. Use it only when the user owns that voice or has the right to use it. - `--instructions` and `--speed` work only on the models that take them. Fish Audio takes the style as cues in the text. - Speech is priced per character and returns in seconds, so run it in the foreground. - You cannot hear the result. Check its length with `ffprobe`, then ask the user to listen. ## Transcripts ```bash ormedia transcribe ./interview.mp3 ormedia transcribe ./clip.mp4 --timestamps segment --language en ``` - The command takes an audio file, a video file, or a URL, and prints the words to stdout. - `--timestamps segment` prints one line per segment, with its start and end time in seconds. - `--json` prints the full reply, with the time of each word when you pass `--timestamps word`. - The price is per second of audio. The command prints the cost to stderr. To put a voice on a video, or to translate the voice of a video, read [prompts/speech-dubbing.md](prompts/speech-dubbing.md). ## Choosing a model Use the default model unless the user names one or the task needs something the default lacks. The default is the user's own choice when they saved one, so do not pass `--model` just to repeat it. `ormedia models image`, `ormedia models video`, `ormedia models speech`, and `ormedia models transcribe` list every model with the options it accepts. Send only options the chosen model lists. The API rejects an unsupported value and names the valid ones, so read the error and retry once. ## Settings ```bash ormedia config ormedia config set image-model <id> ormedia config unset image-model ``` - `ormedia config` shows each setting and where its value comes from. - The settings are `image-model`, `video-model`, `speech-model`, `transcribe-model`, `out`, `open`, `timeout`, and `update-check`. - A flag on the command line wins over a saved setting. - Change a setting only when the user asks for a lasting change. For one result, use the flag. ## Updates A command can end with a line that says a newer `ormedia` is out. Tell the user about it one time, with the update command from that line. Do not run the update yourself unless the user asks. ## Writing the prompt - Write plain descriptive sentences in this order: scene, subject, key details, style, lighting, camera. - Name the finished artifact, for example "an editorial product photograph" or "a flat vector app icon". - Put literal text in quotes and state its font, weight, colour, and place. - For an edit, say what changes and list what must stay the same. - For a video, describe one continuous shot: the subject, its motion, and the camera move. - Skip quality tags such as "4k, masterpiece". They do nothing on current models. Those rules work on every model. Each model family also has its own syntax, so read the guide for the model before you write the prompt. `ormedia config` shows the model in use when you pass no `--model`. | Model id starts with | Guide | |---|---| | `google/gemini-` | [prompts/image-google-nano-banana.md](prompts/image-google-nano-banana.md) | | `openai/` | [prompts/image-openai-gpt-image.md](prompts/image-openai-gpt-image.md) | | `black-forest-labs/flux` (image) | [prompts/image-flux.md](prompts/image-flux.md) | | `bytedance-seed/seedream` | [prompts/image-seedream.md](prompts/image-seedream.md) | | `recraft/` | [prompts/image-recraft.md](prompts/image-recraft.md) | | `qwen/` | [prompts/image-qwen.md](prompts/image-qwen.md) |
From khang859/openrouter-media, MIT.
More from khang859/openrouter-media
- 0.553score
login
khang859
Sign in to OpenRouter with the browser, so `ormedia` can generate images and videos.
SkillAFreshness: AClaude Code +9 - 0.553score
logout
khang859
Sign out of OpenRouter by deleting the API key that `ormedia login` stored.
SkillAFreshness: AClaude Code +9 - 0.553score
models
khang859
List the OpenRouter image, video, speech, or transcribe models, with the options and the price of each one.
SkillAFreshness: AClaude Code +9 - 0.553score
status
khang859
Show which OpenRouter key `ormedia` uses and how much it has spent.
SkillAFreshness: AClaude Code +9 - 0.553score
config
khang859
Show or change the `ormedia` settings, such as the default image, video, and speech models.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 10, 2026 (18 days ago)
- Last release
- Oct 10, 2026 (18 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/khang859/openrouter-media
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from khang859
- 0.553score
login
khang859
Sign in to OpenRouter with the browser, so `ormedia` can generate images and videos.
SkillAFreshness: AClaude Code +9 - 0.553score
logout
khang859
Sign out of OpenRouter by deleting the API key that `ormedia login` stored.
SkillAFreshness: AClaude Code +9 - 0.553score
models
khang859
List the OpenRouter image, video, speech, or transcribe models, with the options and the price of each one.
SkillAFreshness: AClaude Code +9 - 0.553score
status
khang859
Show which OpenRouter key `ormedia` uses and how much it has spent.
SkillAFreshness: AClaude Code +9 - 0.553score
config
khang859
Show or change the `ormedia` settings, such as the default image, video, and speech models.
SkillAFreshness: AClaude Code +9
Cite this page
generate-media skill. Agent Mart. https://agentmart.dev/skills/khang859-generate-media (last updated 2026-10-24)