Skip to content

keryx music gen

Description

Compose a music bed. Two modes:

  • Standalone: writes a single bed to an mp3 (--out, default bed.mp3).
  • Take mode: --takes N --workspace <slug> generates N candidate beds into the workspace, for review with music pick.

The prompt comes from --prompt, or falls back to the resolved reel theme's music prompt. It replaces the theme's rather than adding to it: a bed described as warm and sparse and then as urgent is a contradiction, where a cover's style and its subject are not. In workspace mode the prompt is recorded on the reel (music/prompt.txt), so a re-roll does not need it typed again and the studio shows it next time the reel is opened.

The prompt is the only creative control — the provider takes a description and a length and nothing else. The length is not yours to pick in workspace mode: the bed is sized to the whole reel, summing VO clip durations plus the storyboard dur of any card without narration, so the music covers the reel rather than a fixed cap. --length accepts a Go duration (e.g. 35s); the default is 35s.

Usage

keryx music gen [flags]

Flags

Flag Description Default Required
--prompt bed description for this reel; replaces the theme's, empty uses the theme
--length bed length (e.g. 35s) 35s
--out output mp3 path bed.mp3
--theme reel theme for music defaults
--workspace reel workspace slug (take mode)
--takes number of candidate beds to generate 0
--dry-run estimate what this would cost and generate nothing false
--force bypass the content cache and regenerate (R-GEN-8) — this spends, where a cached result would not false

Costing a run before making it

--dry-run prices the run and generates nothing — no provider call, no files, no spend. The estimate is an upper bound: an unchanged request is served from the content cache without spending (R-GLOBAL-9), so a real run may cost nothing. When the estimate crosses spend.confirm_above.*, the dry run says so.

--output json gives the same figures structured, which is how an assistant driving keryx over MCP asks what something costs before committing to it.