--- name: media-use description: Agent Media OS for a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, video, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image / video models; produce voiceover, music, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal. When the host app provides its own music or sound-effect tools, use those for music and sound effects; otherwise music is generated by the audio engine (Lyria, or local MusicGen) and recorded with `resolve --from`, while `--type sfx` needs no account (Openverse, then a bundled library). --- **Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](../hyperframes/references/plugin-installation.md) when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below. # media-use The media OS for HyperFrames: resolve · generate · operate · remember — every media type, one skill, zero context noise. First run: verify the local setup with `hyperframes media-use resolve --doctor` (it checks `ffmpeg`, `ffprobe`, Node and the bundled SFX). Every generator is local-first and opt-in; providers, keys and installs: `references/setup-providers.md`. Music and sound effects inside a host app: when the app you run in gives you its own music or sound-effect tools, use those. Otherwise music has no catalog: generate the bed with the audio engine (`audio/references/bgm.md` — Lyria with `GEMINI_API_KEY`, else local MusicGen) and `resolve --type bgm` records it with `--from`. `resolve --type sfx` searches Openverse (CC0 and CC BY only, no account) and falls back to its bundled library offline; credit CC BY sounds as `audio/references/sfx.md` says. Before generating a voiceover, tell the person which engine will run: ElevenLabs when `ELEVENLABS_API_KEY` is set, otherwise local Kokoro (Gemini only when asked for). A missing key is their choice to make, not a silent fallback. ## Resolve — the one verb ```bash hyperframes media-use resolve --type --intent "" --project ``` Returns one line: `resolved → (, )`. All search noise stays on disk. | Type | One-line intent | | ------- | -------------------------------------------------------------------------------- | | `bgm` | background music: no catalog — generate it (audio engine), record with `--from` | | `sfx` | sound effects (Openverse CC0 / CC BY, bundled 21-file library offline) | | `image` | photos, backgrounds (generated: local mflux, codex upsell) | | `icon` | icons, symbols: no catalog — author an SVG, record with `--from` | | `logo` | official brand marks (theSVG → GitHub avatar → favicon; never redrawn) | | `voice` | TTS voiceover (local Kokoro; the audio engine adds ElevenLabs and Gemini) | | `video` | generated clips (local LTX) | | `grade` | measured correction candidate; broad polish/stylization follows Media Treatments | | `lut` | user-provided or explicitly chosen reusable validated `.cube` file | Before resolving fresh, list reusable candidates with `--candidates` and judge fit yourself — reuse rules, all flags, ingest (`--from`), and adopt are in `references/resolve.md`. ## Treat broad visual feedback as media intent When a user explicitly asks to fix, polish, stylize, obscure, emphasize, or reveal photographic media, read `references/media-treatments.md` even if they do not name color grading or an effect. Inspect the real ``/`