
lyria
Generate and validate music with Google Lyria 3 through the Gemini Interactions API. Use before calling OpenMontage googlemusic, designing Lyria 3 Clip or Pro prompts, using image-to-music or custom lyrics, choosing between Lyria 3 and Lyria RealTime, diagnosing Google music-generation failures, or preparing exact-duration music for a video.
- Installs
- 774
- Last 24h
- +12
- Trending rank
- #7922
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/calesthio/openmontage --skill lyria- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads lyria automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Google Lyria 3
Use Lyria 3 as a single-turn music generator. Keep it distinct from Lyria RealTime, which is an experimental WebSocket model for continuously steered instrumental performance.
Read references/api-and-prompting.md when choosing a model, designing vocals or custom lyrics, using image inputs, debugging the response, or checking current limits and pricing.
Required Workflow
- Confirm the intended role: underscore, loop, instrumental cue, or full song.
- Confirm vocals, language, target duration, musical structure, and delivery format.
- Announce the provider, exact model, estimated per-request cost, and whether the call is exploratory or final.
- Write one structured prompt using the contract below.
- Make one approved generation call. Treat a retry as another potentially billable stochastic generation.
- Preserve the returned provider source unchanged.
- Probe the actual file and listen before recording duration, format, or approval metadata.
- Derive a separate production master when the edit requires an exact duration.
Choose The Model Deliberately
| Need | Model | Contract |
|---|---|---|
| Prompt iteration, preview, loop, exact 30-second source | lyria-3-clip-preview | Always generates a 30-second MP3; currently $0.04/request |
| Full song, vocals, longer structure, image-conditioned score | lyria-3-pro-preview | Prompt-influenced duration up to roughly three minutes; currently $0.08/request |
| Live, continuously steered instrumental performance | lyria-realtime-exp | Separate WebSocket workflow; do not route through google_music |
The current OpenMontage google_music adapter is locked to lyria-3-pro-preview. It does not expose Clip, WAV response selection, multiple images, or RealTime controls. Surface that limitation rather than implying those options are available through the adapter.
Do not change models silently. For a 30-second video, either obtain approval for Pro plus exact-duration mastering or use Clip through an explicitly supported path.
Build The Prompt
Specify, in this order:
- Purpose and duration — what the music supports and the requested length.
- Genre and era — use musical vocabulary, not a living artist imitation.
- Tempo and harmony — BPM or tempo range, meter, key or tonal center.
- Instrumentation and texture — name lead, rhythm, bass, and ambient layers.
- Structure — timestamped sections or
[Intro],[Verse],[Chorus],[Bridge],[Outro]. - Dynamics and synchronization — entrances, rests, builds, hits, and holds tied to edit times.
- Vocal policy — instrumental-only constraints, a vocal profile, or clearly separated custom lyrics.
- Mix and ending — density, foreground/background role, headroom character, and final decay.
- Exclusions — unwanted vocals, instruments, gestures, clichés, abrupt endings, or copyrighted material.
For video underscore, use timestamp windows that cover the full requested duration. Ask for one primary change per window and identify the exact synchronization moment.
For instrumental-only output, say all of the following when they matter:
Instrumental only. No lead or backing vocals, speech, choir, humming,
vocal chops, spoken samples, lyrical fragments, or recognizable quotations.
For custom lyrics, put performance direction before a separate Lyrics: block and use section labels. Prompt in the language the singer should use.
Direct Vocals Deliberately
When vocals are requested, define these before writing the prompt:
- Vocal role — solo lead, duet, call-and-response, backing ensemble, or vocal texture.
- Language and script — name the sung language and keep the custom lyrics in one intentional script; do not silently transliterate or code-switch.
- Singer profile — voice type or range, timbre, intensity, diction, ornamentation, and emotional distance. Do not imitate a named artist.
- Section behavior — state where the lead enters, where harmonies or echoes appear, and which sections remain instrumental.
- Lyric contract — separate directions from a
Lyrics:block, use[Verse],[Chorus],[Bridge], and[Outro], and reserve parentheses for intentional backing-vocal echoes.
Treat the returned vocal as untrusted until auditioned. Check lyric adherence, language drift, pronunciation, intelligibility, unwanted backing vocals, vocal/instrument balance, and whether the performance follows the requested emotional arc. A technically valid file with poor diction or altered lyrics is not an approved vocal result.
Treat Duration As Untrusted Until Probed
Lyria 3 Pro duration is controlled through prompt instructions and timestamps, not an exact API parameter. The OpenMontage adapter appends a target-duration instruction, but its returned duration_seconds field is the request, not a media probe.
Always inspect the generated file:
ffprobe -v error -show_entries \
format=duration,format_name,bit_rate:stream=codec_name,sample_rate,channels \
-of json output.mp3
If exact duration is required:
- keep the provider source untouched;
- record requested and measured durations separately;
- derive a new master by trimming at a musically sensible boundary and applying a short fade;
- do not stretch, loop, or regenerate without the approved production plan;
- record the derivation and probe the master again.
Authenticate And Diagnose Safely
The Gemini API commonly uses GEMINI_API_KEY. OpenMontage also supports GOOGLE_API_KEY and Vertex service-account credentials.
- Use one known credential path per run.
- Never print keys or edit credential files while debugging.
- Do not assume a rejected first key will fall through to a second configured key.
- In the current OpenMontage resolver,
GOOGLE_API_KEYtakes precedence overGEMINI_API_KEYwhen both are non-empty. - Treat
403,API_KEY_SERVICE_BLOCKED, and project/service restrictions as authentication or Google-project configuration failures, not prompt-quality failures. - Do not spend retries on permission failures. Resolve the credential/project path first.
- Retry only transient rate-limit or timeout failures within the approved retry and budget policy.
Parse And Record The Result
Prefer interaction.output_audio. For interleaved responses, traverse model_output steps and select the audio block; capture output text separately if lyrics or a structure description are relevant.
Record:
- provider and exact model;
- original prompt and any image provenance;
- requested duration and probed duration;
- actual codec, sample rate, channels, and file path;
- cost per call and total attempts;
- whether vocals were requested and whether any were detected by listening;
- the provider source and any separately derived production master.
Quality Checklist
- The prompt states purpose, tempo, instruments, structure, dynamics, vocal policy, and ending.
- Timestamp windows cover the intended runtime without contradictions.
- No artist impersonation or copyrighted lyrics are requested.
- The output file exists, is non-empty, decodes, and contains an audio stream.
- Actual duration and technical properties come from a probe, not request metadata.
- Instrumental output is checked for accidental vocal material.
- The opening, synchronization moments, transitions, and ending are auditioned.
- The untouched source is preserved and any production master has explicit provenance.
- SynthID watermarking and preview-model instability are acknowledged where provenance matters.
FAQ
What does the lyria skill do?
Generate and validate music with Google Lyria 3 through the Gemini Interactions API. Use before calling OpenMontage googlemusic, designing Lyria 3 Clip or Pro prompts, using image-to-music or custom lyrics, choosing between Lyria 3 and Lyria RealTime, diagnosing Google music-generation failures, or preparing exact-duration music for a video.
How do I install lyria?
Run npx skills add https://github.com/calesthio/openmontage --skill lyria in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/lyria/ (personal) or .claude/skills/lyria/ (project).
Which AI agents can use lyria?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is lyria safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains lyria?
It is published by calesthio in calesthio/openmontage. It has 774 recorded installs.
More from calesthio/openmontage
video-edit
calesthio/openmontage
Edit videos locally using ffmpeg. Trim, concat, resize, speed, overlay, extract audio, compress, and convert. Use when: (1) Trimming or cutting video segments, (2) Concatenating multiple clips, (3) Resizing video for social platforms, (4) Extracting or replacing audio, (5) Compressing video, (6) Converting video formats, (7) Getting video info.
video-understand
calesthio/openmontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription. No API keys needed. Use when: (1) Understanding what a video contains, (2) Transcribing video audio locally, (3) Extracting key frames for visual analysis, (4) Getting video content without API keys.
svg-character-animation
calesthio/openmontage
Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.
ai-video-gen
calesthio/openmontage
Generate AI videos from text prompts using multiple provider gateways. Use when: (1) Generating videos from text descriptions, (2) Creating AI-generated video clips for content production, (3) Image-to-video generation with a reference image, (4) Choosing between video generation providers (VEO, Kling, Sora, Runway, Seedance, MiniMax, Gemini Omni). Supports gateways: HeyGen API, fal.ai API, Kling official direct API, and the Gemini API (Gemini Omni Flash).
video-download
calesthio/openmontage
Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed. Use when: (1) Downloading a video from YouTube or other sites, (2) Extracting audio from a video URL, (3) Downloading subtitles/captions from a video, (4) Getting video metadata without downloading.
remotion
calesthio/openmontage
Toolkit-specific Remotion patterns — custom transitions, shared components, and project conventions. For core Remotion framework knowledge (hooks, animations, rendering, etc.), see the remotion-official skill.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image