Skip to main content
Mythos

**Show context placeholders** are {{VARIABLE}} tokens you type directly into a Hash show's show_context or host_context field that get substituted with live values before each synthesis run. The current allowlist is small and deliberately stable — three values, no recursion.

📝Hash substitutes these once at the start of every pipeline run, before the synthesis prompts go to the LLM. By the time the model sees your context, {{EPISODE_NUMBER}} has become 301, {{SHOW_NAME}} has become BrianBot Broadcast, and {{DATE}} has become a fully-spelled date string. The model writes the title and transcript around resolved values, the way it would if you had typed the number in by hand.

Available placeholders

  • {{EPISODE_NUMBER}} — the upcoming episode's number, after starting_episode_number is applied. For a brand-new show this is 1; for a show migrated from another platform it can be anything (BrianBot Broadcast continues at 301, etc.).
  • {{SHOW_NAME}} — the show's name field as it appears in show settings.
  • {{DATE}} — the synthesis-run date in en-US full + short format (e.g. Friday, May 4, 2026 at 1:30 PM).

Where you can use them

Inside the Show Context and Host Context fields on a show's settings page. These fields feed into the LLM's system context for the story-selection, digest, and transcript steps. Anywhere you'd normally write a sentence about your show is fair game.

Examples that work:

  • This is BrianBot Broadcast, episode {{EPISODE_NUMBER}}, recorded on {{DATE}}.
  • Welcome to {{SHOW_NAME}} #{{EPISODE_NUMBER}} — your daily AI briefing.
  • Title format: "{{SHOW_NAME}} #{{EPISODE_NUMBER}}: <topic of the day>"

The substitution is single-pass. A placeholder you misspell ({{EPISDOE_NUMBER}}) passes through to the LLM verbatim — Hash does not silently delete it. Inspect prompt logs in the admin Synthesis page if a substitution doesn't look right.

Migrating a show from another platform

The {{EPISODE_NUMBER}} value comes from the show's starting_episode_number field plus how many Hash episodes have already shipped. Set this on creation via the Migrating from another platform? toggle on /shows/new, or edit it later in show settings. Once any episode has been synthesized, the field becomes inert — the next number is always max(existing) + 1. You can't rewrite history by lowering it.

What's not a placeholder

Anything outside the three values above. The pass that resolves these is intentionally small — it doesn't recurse into other user-edited fields, doesn't read user metadata, doesn't pull from MythOS. Add the value you need into your show context directly, or request a new placeholder be added.

The wider Hash prompt cascade (admin-level templates, user-level overrides, show-level overrides, per-step variables like {{MANIFEST}} and {{CONTENT}}) is a separate system used by admins editing the prompts themselves at /admin/prompts. Show creators don't need to know about it; show context is the simple surface.

Subjective

Use placeholders where the value would otherwise be a moving target. {{EPISODE_NUMBER}} is the obvious one — without it the LLM has to invent a number and gets it wrong about half the time. {{DATE}} is useful for time-sensitive framing. {{SHOW_NAME}} is mostly redundant unless you're working in templates that get reused across shows.

Don't try to embed logic inside placeholders. The substitution is a literal string replace. Conditionals, math, and formatting belong in the surrounding prose.

Related

Contexts

Created with 💜 by One Inc | Copyright 2026