generate-media
Use when generating or editing an image or video with an AI model — ads, mockups, style variations, image-to-video.
Skill by lwlee2608
Chalk Labs
Need help deploying generate-media?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/lwlee2608-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: backend, writing, marketing
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
- Use when generating or editing an image or video with an AI model — ads, mockups, style variations, image-to-video. Calls a provider API (OpenRouter today), saves the file outside the repo, and reports what it actually cost.
- License
- MIT
- Instructions
- 40 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openrouter.md · providers/
SKILL.md (first lines)
# Generate Media One generation per invocation through a provider API. The file lands in `$HOME/.cache/generate-media/`. Provider reference — read before the first API call: - OpenRouter (default): [providers/openrouter.md](providers/openrouter.md) ## Rules 1. **Stop if the provider key is missing.** For OpenRouter that is `OPENROUTER_API_KEY` — check `.env` in the project root, then the environment. Never write a key into a tracked file. If missing, point the user at <https://openrouter.ai/settings/keys> and stop. 2. **Look up model IDs from the API. Never guess them.** IDs change and a wrong one wastes a paid round trip. 3. **Pick the cheapest model that meets the need**, unless the user named one. Exceptions worth saying out loud: `openai/gpt-image-2` for legible text inside an image, a `-pro` tier when the user asked for production quality. 4. **Quote the cost before calling, and only quote a figure you can source.** Video runs 10×–50× an image. - Video: use the per-second table in the provider reference. No row there means no published rate — say so and wait. - Image: unquotable before the call (`pricing.image_output` is per output token, not per image). Name the model, say the cost lands after the response, and go ahead — a still is normally a few cents. - Wait for the user when a sourced figure exceeds ~$0.50, or when a video price is unknown. Settle motion on a cheap draft before paying for a real render: `bytedance/seedance-2.0-mini` is ~$0.08 for 6 s at 720p, less at 480p. Price scales with `width × height × duration`, so halving the resolution is the cheapest way to test an idea. 5. **Save to `$OUT_DIR/<slug>.<ext>`, where `OUT_DIR="$HOME/.cache/generate-media"`.** `mkdir -p` it first. Write `$HOME`, never a bare `~` — a quoted tilde does not expand and drops a literal `./~/` directory into the project. Never overwrite — add a numeric suffix. Never leave a result only in the API response. Copy into the project only when the user asks; raw output is 2–3 MB stills and 6 Mbps clips, which should not enter git. 6. **Report the absolute file path and the real cost** from `usage.cost` in the response, never an estimate. ## Check before reporting done - The file just written is non-empty: `test -s "$OUT"` — a failed base64 decode leaves 0 bytes. Check that one path, not the whole directory; it is shared across every project and holds old results. - A video is an actual `.mp4`, not a JSON error body: `file "$OUT"`. ## Common mistakes - **Treating video as synchronous.** `POST /videos` returns `202` with a `polling_url`. Poll ~every 30 s until `completed`, then download. - **Estimating cost from a pricing field.** Read `usage.cost` from the response. - **Piping base64 straight into a file.** Decode it: `jq -r '.data[0].b64_json' resp.json | base64 -d > out.png`. - **Sending a local path as a reference image.** Reference inputs take an HTTP(S) URL or a base64 data URL.
From lwlee2608/agent-skills, MIT.
More from lwlee2608/agent-skills
- 0.587score
build-feature
lwlee2608
Use when implementing a phased feature plan file.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gh-create-pr
lwlee2608
Use when creating/raising/opening/submitting a GitHub PR.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
plan-feature
lwlee2608
Use when planning a feature too big to hold in one session.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
create-skill
lwlee2608
Use when creating a new agent skill.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
review-code
lwlee2608
Use when asked to review a local diff, a GitHub PR, or a whole codebase.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
merge-pr
lwlee2608
Merge a GitHub PR, close linked issues, and delete the branch.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
review-loop
lwlee2608
Use only when the user explicitly asks to review and fix in a loop until clean.
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
whoami
lwlee2608
Use when the user asks for the current session's ID (e.g., "/whoami", "what's your session id", "who are you") so another agent session can find or message…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
retro
lwlee2608
Use when the user asks for a retrospective on an agent session ("/retro", "how did this session go", "what could this session do better"), for the current…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
second-opinion
lwlee2608
Use when the user asks for a second-opinion review from another agent (e.g., "get a second opinion", "review with pi", "review using gpt-6-astra"…
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
linear-issues
lwlee2608
Use when reading, searching, creating, updating, or commenting on Linear issues.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
explain-outcome
lwlee2608
Use when reporting a failed command, test, build, or deploy, an investigation into an error or incident, or the result of a multi-step task.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 17, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/lwlee2608/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lwlee2608
- 0.587score
build-feature
lwlee2608
Use when implementing a phased feature plan file.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
plan-feature
lwlee2608
Use when planning a feature too big to hold in one session.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
gh-create-pr
lwlee2608
Use when creating/raising/opening/submitting a GitHub PR.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
review-code
lwlee2608
Use when asked to review a local diff, a GitHub PR, or a whole codebase.
SkillAFreshness: A★ 1Claude Code +9 - 0.586score
create-skill
lwlee2608
Use when creating a new agent skill.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
merge-pr
lwlee2608
Merge a GitHub PR, close linked issues, and delete the branch.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get generate-media running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
generate-media skill. Agent Mart. https://agentmart.dev/skills/lwlee2608-generate-media (last updated 2026-10-24)