Applies to the next caller — no restart. Leave a field on “Default” to fall through to the environment config.
Admin credentials unlock library search, on-air announcements, the back-to-air mention, and mirroring each persona's voice from the station. Stored server-side, never shown back.
The password protects this
panel, the keys and the test buttons. The call card and embed stay
public — they're guarded by the usage limits instead. Stored as a
salted hash, never plaintext. Locked out? Set
CALLIN_ADMIN_KEY in the environment as a recovery
override; restarting the app clears IP bans.
Stored server-side in
data/secrets.json and never sent back to this page — only
whether each is set and its last four characters. Leave a field blank
to keep the current value.
Runs one real completion on your key — costs a fraction of a cent on hosted providers, free on Ollama.
Synthesizes one real line — a fraction of a cent on cloud TTS, free on a local backend.
Segments put audio on air on a caller’s say-so, so they’re off by default. Track skipping, sound effects and direct queueing are never available to callers, regardless of settings — use “Test station + tools” to see the exact list.
Every call costs model time and airtime, so these stop runaway use — one open tab could otherwise dial in a loop. Defaults are generous; set any to 0 to turn it off. Callers see a friendly “lines are busy” message, never an error code.
Applied to every spoken line on its way to the voice, so it holds regardless of which model or provider is in use — and regardless of whether the prompt was obeyed.
Off by default — being asked your name just to request a song is friction. A name the caller volunteers is still used to credit the request on air either way.
The station refuses song requests when nobody is listening — and a caller on the line isn’t pulling the stream, so they don’t count. This tunes their browser in for the duration of the call so requests are accepted. Volume 0 keeps it silent behind the DJ.
What the DJ is told about the station before the call. Each item costs time-to-first-token on every turn, not just at the start — so more context means a slightly slower reply. Set a count to 0 to leave it out.
The music library is not preloaded — the DJ searches it on demand with a tool, so it always reflects what you actually have. That needs the station admin credentials.
Small steers layered on top of the persona — not a replacement for it. The DJ keeps its own voice and applies these lightly. Leave blank and the persona alone decides.
After the caller hangs up, the DJ can mention the call on air — “just had someone on about…”. It’s one passing line between tracks, not a recap, and the station re-voices it in the persona. Needs the station admin credentials.
Leave a URL blank to use the built-in synthesized tone — no audio file needed. Point at your own file to replace it.
Live reference — reflects the permissions you've enabled above. Anything greyed out is currently off.
Drops an iframe into the target div.
allow="microphone" is set for you — without it the mic silently
fails inside a frame.