Skip to content

Preferences

preferences.json lives in your project root and is the only place for channel-specific choices. Aurora reads it at the start of every command and passes its path to every subagent. If it is missing, she asks you to run /aurora interview.

The file is flat and human-editable; unknown keys are kept. Typical shape:

{
  "channel": "Dev Notes with Lia",
  "language": "en",
  "niche": "web development",
  "audience": "junior and mid developers",
  "tone": "warm, curious, dry humor",
  "persona": {
    "character": "Lia, a retired lighthouse keeper turned developer",
    "story": "Kept a lighthouse for 20 years; now debugs the same way: patience and a good lamp.",
    "personality": "calm, precise, quietly funny",
    "catchphrases": ["keep the lamp lit"],
    "never": ["insult viewers", "promise get-rich-quick results"]
  },
  "voice": { "name": "Lia", "voice_id": "<your ElevenLabs voice id>" },
  "palette": ["#0b1d3a", "#1e6091", "#ffd166"],
  "topics_like": ["debugging", "tooling"],
  "topics_avoid": ["crypto"],
  "research_sources": ["https://news.ycombinator.com", "https://github.com/trending"],
  "free_tier": true,
  "blender": true
}

Other kinds of channel

Same file, different channel. Only the values change:

{ "channel": "Fogão de Lenha", "language": "pt", "niche": "home cooking",
  "audience": "beginners who are afraid of the oven",
  "tone": "warm, patient, a little dramatic about butter",
  "persona": { "character": "Dona Cida, a grandmother who narrates every recipe as a telenovela" },
  "topics_avoid": ["diets", "calorie counting"], "blender": false }
{ "channel": "Footnotes", "language": "en", "niche": "medieval history",
  "audience": "curious adults", "tone": "dry, precise, understated",
  "research_sources": ["https://www.jstor.org", "https://www.britannica.com"],
  "visual_style": "maps, manuscripts, timelines", "blender": false }
{ "channel": "Chispa", "language": "es", "niche": "science for kids 6-9",
  "tone": "playful, short sentences, lots of questions",
  "persona": { "character": "Chispa, a curious spark who lives in a lamp" },
  "mascot": { "closed": "channel/chispa_closed.png", "open": "channel/chispa_open.png" },
  "avoid": ["scary imagery"] }

No persona or mascot is required; leave them out and Aurora narrates as a neutral host.

Keys

Key Meaning
channel, audience, niche, language Who it is for and in what language scripts and subtitles are written.
tone, humor, avoid Voice of the writing; what is funny; what is off limits.
persona Object: character, story, personality, catchphrases, never. The narrator Aurora never breaks.
voice Name or voice_id. If unset, Aurora A/B-tests candidate voices and saves your pick.
visual_style, palette, mascot, fonts Look of the videos. palette themes the web engine.
topics_like, topics_avoid, research_sources Steer theme discovery.
code_depth Technical depth, if the niche has code.
checkpoints, pace, subtitles, music How involved you are; speaking pace; burned-in subtitles or .srt only; music.
thumbnail_style, title_style, cta Packaging defaults; the like/subscribe ask.
joke_bank Gags Aurora rotates (never the same one twice in a row).
labels Words used in descriptions: sources, attributed.
blender false disables 3D hero scenes.
free_tier false never sends work to free models (free endpoints may log prompts).
min_tier 0-2, the lowest cost-ladder tier allowed.
budget_tokens_per_video Warn at 75%, stop at 100%.
notes Free text for anything else.

Tip

Do not edit the skill to fit your channel. Put it here. One install then serves any number of channels, languages and niches.