◉ ANNIKA ·
connecting…
◉ YOU'RE ABOUT TO JOIN ANNIKA

Annika can see and hear you when enabled — better conversation, better show.

◉
THANKS FOR TALKING WITH ANNIKA
This air has wrapped.
connecting…
CUEPILOT
Platform How it works Security Docs Green Room SIGN IN

ENTERPRISE AI BROADCAST OPERATIONS

Run your AI talent like a
broadcast control room.

CuePilot puts a vision mixer, a Claude-powered director, and a wall of pre-cut gesture carts behind your Tavus avatar — so she leans in, laughs, and gets up for coffee exactly on cue, live on a real video call. Your audience signs itself up. Your crew keeps the veto.

▶ OPEN THE CONSOLE TRY THE GREEN ROOM

Multi-tenant · role-based crews · self-serve audiences · demo mode is always free

The caller's live Set beside the engineer's control room — the same broadcast from both sides ● ANNIKA · LIVE SHOWCALL ENGAGED ⚡ cue micro.smile_warm → armed
One real broadcast, both sides: what the caller sees, and the control room conducting it.
RUNS ON TAVUS · CLAUDE · SUPABASE · CLOUDFLARE · HIGGSFIELD · VERCEL
2shuman veto window on every automated cue
3 tierssnap cues → AI director → engineer override
60–90sbrand-new gesture packages cut mid-show
100%org isolation — row-level security on every table
The Gallery: program bus with live tally, autopilot queue, Director feed, cart wall PGM · VT micro.hand_talk CART WALL · 9/9 READY AUTOPILOT · 2s standby

THE GALLERY · MISSION CONTROL

A broadcast gallery in one browser tab

Program bus with live tally, an autopilot queue with a 2-second standby ring, the Director's reasoning streaming beside the feed, and a cart wall ready to roll.

  • Silence means the cue rolls; touching anything drops you to manual — the machine never outranks the engineer.
  • The Director (Claude) re-phases the show and stages gestures for the next two minutes, showing its work line by line.
  • The Scene Tweaker cuts brand-new gesture packages in Higgsfield mid-show, in 60–90 seconds.
Front of House: replica casting rack, persona editor, API vault, Green Room link GREEN ROOM LINK · one click to share API VAULT · saved server-side

FRONT OF HOUSE · CASTING

Cast the whole show before anyone goes on air

Pick a replica face from the rack, tune the persona's system prompt and pipeline layers, and save straight back to Tavus.

  • Provider keys enter once and live server-side in the vault — read-only to the crew, replaceable only by the super admin.
  • A readiness stepper walks keys → face cast → cart wall → idle loop → launch, so nothing goes live half-configured.
  • Your org's Green Room link sits front and center, ready to hand to an audience.
What the caller sees: Annika live on the Set with mute and leave controls ● ANNIKA · LIVE on air with Annika

THE SET · SELF-SERVE AUDIENCES

Your audience goes live without a single engineer

This is everything an end user ever sees: the show. One org-bound Green Room link gets them here on their own.

  • Accounts created through your link belong to your org — one organization per end user, enforced in the database.
  • Snap cues and the Director run server-side, conducting the cart wall with nobody in the control room.
  • Every session surfaces as a LIVE card on Broadcast Ops, where any operator can watch or take over.

EVERYTHING A CONTROL ROOM NEEDS

Program bus & tally

A canvas vision mixer crossfades gesture carts over the live Tavus feed. Red, blue, amber, magenta — the border always tells you what's on air.

Autopilot with a human veto

Cues arm with a 2-second standby ring. Do nothing and they roll; touch anything and you're in manual control. The machine never outranks the engineer.

The Director

A Claude-powered planner reads the conversation as it happens, stages the right gesture, and shows you its reasoning line by line.

Snap Cues

Keyword → gesture rules that fire instantly. “Let me show you” lifts her toward the screen before the sentence ends. Editable live, no redeploy.

Cart Wall & Edit Bay

A library of pre-rendered, prop-aware gesture clips — and a Scene Tweaker that cuts brand-new packages in Higgsfield mid-show.

Annika's Notebook

Persona memory rebuilt after every air — last conversation, director's notes, recurring people — and injected into the next one.

HOW A SHOW HAPPENS

1

Cast in Front of House

Save your provider keys once, pick a replica face and persona, write tonight's context, set your snap cues — and share your org's Green Room link.

2

Go live — with or without a crew

Engineers supervise from the Gallery; audience sessions run themselves, conducted server-side by snap cues and the Director, visible as LIVE cards on Broadcast Ops.

3

The caller sees only the show

A link or QR code lands them on the Set. They see one thing: your persona, alive, gesturing on cue — no console, no seams.

BUILT FOR THE ENTERPRISE

Tenant isolation by default

Every table sits behind Postgres row-level security; every mutation goes through an audited RPC surface granted to signed-in users only. One org can never see another's shows, crews, or audiences.

Role-based crews

Org admins manage everything; broadcast operators run shows and watch audiences without invite or delete powers; end users touch only their own sessions. Enforced in the interface and again in the database.

Single-use, expiring invites

Crew invitations are minted for one role, one redemption, seven days — revocable at any moment, with full status history on the Users page.

Capability tokens on air

Callers never need accounts on live shows: the Set authenticates with a per-session air token, so a link or a QR code is exactly as much access as you handed out.

Put your avatar on the air.

Spin up an org, invite your crew, and share one link with your audience — tonight.

▶ OPEN THE CONSOLE TALK TO ANNIKA
CUEPILOT · Annika Control Room · © 2026 Nine Films Studio
Docs Console Green Room Privacy Terms
CUEPILOT
Docs Terms SIGN IN

Privacy Policy

Effective date: July 11, 2026 · CuePilot is operated by Nine Films Studio ("we", "us").

1. What CuePilot is

CuePilot is a broadcast control platform for AI video talent. Organizations use it to run live video sessions between their audience ("end users") and AI-driven avatar hosts. This policy explains what we collect, why, and the choices you have.

2. Information we collect

Account data. Your email address and a display name. If you sign in with Google, we receive your email and basic profile from Google — never your Google password.

Organization data. Org names, crew membership and roles, invitations, and end-user rosters (email, session count, last-seen time).

Session data. When you talk with an AI host, the conversation is transcribed and processed in real time to drive the show — transcripts, cue and scene events, show phase, and technical timing logs are stored with the session. The host may also keep a short written memory (for example "last conversation" notes) so it can pick up where you left off.

Camera and microphone. Used only while you are on a live Set and only after you press JOIN; the lobby preview stays on your device. CuePilot does not store your audio or video streams — live media is carried by our conferencing providers (Tavus and Daily).

Technical data. Standard logs (IP address, browser type, timestamps) and local storage used to keep you signed in and remember preferences such as your organization's Green Room.

3. How we use it

To run the service: authenticate you, operate live sessions, cue the avatar, show operators the state of their broadcasts, remember context between shows, send account email (confirmations, resets, invitations), secure the platform, and improve reliability. We do not sell your personal information, and we do not use your conversations to train our own AI models.

4. Who can see your session

Transcripts and session status are visible to the production crew of the organization that runs your show — that is how they conduct and supervise broadcasts. Your account details are visible to that organization's admins. One organization can never see another organization's data; every record is isolated per tenant at the database level.

5. Service providers (subprocessors)

We rely on: Supabase (database, authentication, realtime), Vercel (hosting), Cloudflare (media storage), Tavus and Daily (avatar conversations and WebRTC media), Anthropic (the AI director and host reasoning), Higgsfield (gesture clip generation), Cartesia and sync.so (voice lines), Resend (email delivery), and Google (optional sign-in). Each receives only what it needs to perform its function.

6. Retention & deletion

Session records are kept so organizations can review their broadcasts; account data is kept while your account is active. To delete your account or your session data, contact us or ask the organization that invited you; we honor verified deletion requests within 30 days unless we must keep specific records for legal reasons.

7. Security

All traffic is encrypted in transit. Data access is enforced with row-level security per organization, audited server-side procedures, and single-use expiring invitations. Live Sets authenticate with per-session capability tokens rather than shared passwords.

8. Your rights

Depending on where you live, you may have rights to access, correct, export, or delete your personal information, and to object to certain processing. Write to us and we will respond within the legally required time.

9. Children

CuePilot is not directed to children under 13 (or the higher minimum age of your region), and we do not knowingly collect their data.

10. Changes & contact

We will post any changes here and update the effective date. Questions or requests: privacy@cuepilot.studio.

‹ Back to home · Terms of Service · Docs

CUEPILOT
Docs Privacy SIGN IN

Terms of Service

Effective date: July 11, 2026 · These terms are an agreement between you and Nine Films Studio ("we", "us"), the operator of CuePilot.

1. The service

CuePilot provides tools for casting, directing, and broadcasting AI-driven avatar hosts on live video calls, including control-room consoles for production crews and self-serve Green Rooms for audiences. By creating an account or joining a session you accept these terms and our Privacy Policy.

2. Accounts & organizations

Accounts are personal — keep your credentials safe and tell us about any unauthorized use. Organizations are administered by their own admins, who control crew roles, end-user access, and may disable accounts within their org. End-user accounts belong to one organization. We may reclaim inactive account identifiers or suspend accounts that break these terms.

3. AI-generated content

Avatar hosts are AI systems. Their words and gestures are generated in real time and may be inaccurate, incomplete, or inappropriate despite our safeguards — they are entertainment and communication tools, not professional advice. Organizations are responsible for the personas, prompts, and contexts they put on air and for disclosing AI participation to their audiences where the law requires it.

4. Acceptable use

You agree not to: break the law; impersonate real people without authorization or deceive audiences about who or what they are talking to; harass, exploit, or harm others (especially minors); upload malicious code or probe the platform's security; scrape or resell the service; interfere with other tenants; or use the avatars to produce unlawful content. We may suspend access that endangers the platform or other users.

5. Your content & our platform

You keep ownership of the content you provide — prompts, contexts, personas, and your conversations. You grant us the limited license needed to operate the service (transcribing, storing, and processing that content to run your broadcasts). CuePilot itself — software, design, and branding — belongs to Nine Films Studio.

6. Third-party services & fees

Organizations connect their own provider accounts (for example Tavus for avatar conversations, Anthropic for direction, Higgsfield for clip generation). Usage of those providers is billed by them under their terms; you are responsible for the keys you store and the usage your sessions consume, including sessions started by your end users.

7. Availability & disclaimers

The service is provided "as is" and "as available", without warranties of any kind, express or implied. Live broadcasting depends on third-party providers and networks; we do not guarantee uninterrupted or error-free operation.

8. Limitation of liability

To the maximum extent permitted by law, Nine Films Studio will not be liable for indirect, incidental, special, consequential, or punitive damages, or lost profits, data, or goodwill. Our total liability for any claim relating to the service is limited to the greater of USD 100 or the amount you paid us for the service in the twelve months before the claim.

9. Indemnity

If you are an organization, you will defend and indemnify us against claims arising from the shows you run, the content you put on air, and your breach of these terms.

10. Termination

You may stop using the service at any time. We may suspend or terminate access for breach of these terms, legal necessity, or discontinuation of the service, with notice where practicable. Sections 5, 8, and 9 survive termination.

11. Changes, law & contact

We may update these terms; material changes will be announced in the app or by email, and continued use means acceptance. These terms are governed by the laws of the jurisdiction in which Nine Films Studio is established, without regard to conflict-of-law rules. Questions: legal@cuepilot.studio.

‹ Back to home · Privacy Policy · Docs

◉ CUEPILOT · CONSOLE

Control room sign-in

You've been invited to join an organization — sign in or create an account to accept.
or

Forgot password?

Set a new password

Joining a call as a guest? Enter the Green Room →

‹ Back to home · Docs

◉ CUEPILOT · NEW CONTROL ROOM

One last step — every console belongs to an organization.

There's no separate org password: the organization attaches to the account you're signed in with. You'll keep signing in with your own email and password.

CREATE YOUR ORGANIZATION

You'll be its admin and can invite engineers from your profile page.

— or —

JOIN WITH AN INVITE CODE

‹ Back to home · Docs

◉ CUEPILOT · GREEN ROOM

Guest sign-in — talk with Annika

or

You're in the green room

A
Annika

Live AI host · real-time broadcast

Sign out

Control room engineer? Console sign-in →

‹ Back to home · How it works

◉ CUEPILOT · DOCS
Guest guide Green Room SIGN IN
Getting started — sign in Overview & vocabulary The caller's guide (the Set) Front of House — before the air The Gallery — on air Casting the Set to a caller Ending an air & memory Organizations, roles & invites Your org's Green Room link Platform admin (/admin) Users (/app/team) Broadcast ops (/app/broadcasts) Guest sessions (Green Room) How it works — the two planes The trigger system Session lifecycle & memory Security & tenancy model Runbook & troubleshooting Navigation map Privacy Policy ↗ Terms of Service ↗

Getting started — where to sign in

Control room engineers

Sign in at /login with your work email. First time? Use CREATE ACCOUNT, then either create your organization (you become its admin) or paste the invite code your admin sent you. You land in Front of House, signed in and ready to cast. Your session persists across visits; use Forgot password? on the sign-in card to reset by email, and SIGN OUT in any top bar to leave.

Admins invite the rest of the crew from PROFILE → ORGANIZATION → GENERATE INVITE LINK — each link is one use, and can grant the engineer or admin role.

Guests / callers

Guests never see the console. They sign in at /greenroom (any email works — CREATE ACCOUNT is self-serve), then press ▶ START A SESSION WITH ANNIKA. If they arrived through your org's Green Room link, CuePilot starts a full live broadcast with your house persona — Annika answers in real time and the broadcast automation (snap cues + the Director) kicks off on its own; the session appears immediately as a LIVE card on your Broadcast Ops dashboard. Without an org link it falls back to a free demo. Callers invited to a live air don't need any account — the engineer sends them a Set link or QR code from the Gallery instead.

CuePilot Documentation

CuePilot is a TV-style control room for a life-like AI avatar. While a caller talks with Annika over a live video feed, the system hot-swaps silent, pre-rendered gesture clips over the feed on a canvas Program bus — supervised by an engineer, driven by keyword rules and an AI planner.

Vocabulary

GalleryThe engineer's live console — the vision-mixer view.
The SetThe caller-facing page at /air/<session>?t=<token>.
FOHFront of House — pre-air setup: keys, casting, persona, snap cues, notebook, launch.
Cart WallThe library of pre-rendered gesture clips (“carts”).
The DirectorThe Claude-based planner that stages and fires cues (Tier-2).
Snap CuesKeyword→clip rules (Tier-1), live within ~30 s of editing.
AutopilotAuto-rolls an armed cue after a 2-second standby window.
Annika's NotebookPersona memory, rebuilt after every air.
Edit BayHiggsfield — where new gesture clips are cut.

The caller's guide — the Set

Getting in. The engineer sends a link or QR code. Opening it lands the caller in a greenroom lobby: type an optional name, press ENABLE CAMERA & MIC to check the self-preview, then ▶ JOIN. If camera or mic is blocked they can still join and listen. In demo airs the camera step is hidden and the button reads ▶ START.

On air. Annika appears full-frame with a LIVE badge, the caller's own camera in a small PiP bottom-right, and two controls: MUTE and LEAVE. Gestures — a shrug, a lean-in, going for coffee — play over the live feed automatically. If the caller speaks mid-gesture, CuePilot cuts back to live within a beat.

The wrap card. When the air ends, the caller sees “THANKS FOR TALKING WITH ANNIKA” with the reason: You left the call · The control room wrapped this air · Annika left the set · This air has already wrapped. The first reason shown is the one that sticks.

Front of House — before the air

Work top to bottom; the readiness stepper (KEYS → FACE CAST → CART WALL → IDLE LOOP → LAUNCH) tracks progress and each chip scrolls to its panel.

API keys. Paste provider keys once — Tavus (talent), Anthropic (the Director), Higgsfield (Edit Bay), Cartesia + sync.so (ADR), webhook secret, optional R2 storage. Keys are stored server-side; Tavus/Anthropic/Cartesia are validated live on save. Only the super admin can edit keys.

Casting. With a Tavus key saved, the replica rack lights up — click a face to cast it as Camera 1 talent. Pick a persona and edit its system prompt, context, LLM and voice; SAVE TO TAVUS patches it in place.

Snap cues. Add phrase → gesture rules with a cooldown. Keep phrases lowercase and specific (“let me show” beats “show”). Rules go live within ~30 seconds.

Notebook. Annika's memory — LAST AIR, DIRECTOR'S NOTES, RECURRING PEOPLE, STANDING CONTEXT — rebuilt after every air. The INJECT MEMORY AT LAUNCH toggle controls whether it's folded into the next conversation.

Launch. Optionally write tonight's conversational context, then either ▶ LAUNCH SESSION (creates a real, billed Tavus conversation) or ENTER DEMO GALLERY (same console against the idle loop — guaranteed free, even with real keys saved).

The Gallery — on air

The PGM monitor is the center of the room; its border is the tally light: red LIVE, blue VT (cart rolling), amber TRANSITION, magenta INTERRUPT.

Pilot bar. CUEPILOT ENGAGED (autopilot) rolls cached carts automatically; any manual action flips to MANUAL CONTROL and cues surface as suggestions instead. Click the toggle to re-engage. CUT TO LIVE is the big red switch: kills the current cart, interrupts Annika, returns to the live feed.

Autopilot queue. Armed cues appear with a filling 2-second ring — do nothing and they roll, or CANCEL. WARM shelf: carts the Director stages persist until rolled or dismissed. Cart Wall: every cart with status and a manual ROLL. Scene Tweaker: cut a new gesture package in the Edit Bay mid-show (CUT PACKAGE), or add a Cartesia voice line (+ ADR LINE).

The Director panel streams the planner's reasoning and show phase. The air feed is the live transcript; cue hits are outlined. In demo airs a “simulate an utterance” box under the monitor exercises the whole trigger → planner → roll pipeline.

Casting the Set to a caller

When a session has an air token, the SET strip appears under the monitor: COPY LINK or QR. Once the caller's device connects, the heartbeat dot turns green and “DECK AT THE SET” appears — from then on your mixer is a mirror: the caller's device plays the carts and your ROLL / CUT / mode commands relay downstream.

Ending an air & memory

Press END AIR and confirm. The Set shows the wrap card, tally goes to PGM · WRAP, and the memory worker rebuilds Annika's Notebook — check it in FOH a few moments later.

Organizations, roles & invites

CuePilot is multi-tenant. The first engineer to sign in creates an organization and becomes its admin; everyone else joins with an invite. From Profile → Organization an admin can generate invite links (engineer or admin role) — send the link, the invitee signs up, and they land in your control room. Your profile (display name, title) is saved to your account and follows you across sessions.

Your org's Green Room link & guest persona

Every organization has a shareable Green Room link — it sits front and center on the console home, the Broadcast Ops dashboard, and the USERS page (visible to admins and broadcast operators alike), and also under PROFILE → ORGANIZATION → GREEN ROOM. It looks like /greenroom/<code> — a dedicated sign-up URL for your organization. Anyone who opens it sees your org's name on the Green Room card, can sign up or sign in self-serve, and can launch sessions on demand — no invite needed, and they never gain access to your console. Accounts created through your link are bound to your organization: the binding lives on the account itself (one org per end-user account), so your end users stay yours even if they later open the Green Room from another device or a bare link — and another org's link cannot claim them.

Sessions launched through your link use your org's guest persona (default pdf3d8082032). Any engineer or admin in the org can change it: paste a Tavus persona id into the field next to the link and press SAVE PERSONA. The change applies to every subsequent guest launch.

Managing your end users. Everyone who signs in through your link and launches a session appears in PROFILE → ORGANIZATION → END USERS — email, display name, session count, and last-seen time. The roster is visible to every member of your org.

Platform admin — /admin

The global super admin (admin@showcall.app) has a platform dashboard at /admin covering every organization on the deployment: owner, creation date, admins and engineers (with emails and roles), the full end-user roster, the org's guest login path, and its guest persona. Members can be removed from an org here (the org owner can't be). All of it is enforced server-side — the page renders nothing for non-platform accounts, and the underlying queries refuse them too. A PLATFORM button appears in the Profile top bar only for the super admin.

Guest sessions — the Green Room

End users don't touch the console. They sign in at /greenroom (ideally via your org's shareable link, above) and press START A SESSION WITH ANNIKA — CuePilot starts a live broadcast with your org's persona and drops them straight onto the Set at their own /air/… link. No engineer needs to be present: Tier-1 snap cues and the Director run server-side and conduct the cart wall automatically, and the session shows up LIVE on Broadcast Ops where any operator can watch or step in. Engineers casting a live (billed) air still send callers a Set link or QR from the Gallery. The guest-facing guide lives at /docs/guest.

How it works — the two planes

CuePilot runs a broadcast on two planes. The control plane is your browser: the Gallery, the Director, the databases. The playout plane is wherever the picture is actually composited — your machine until a caller connects, then their device. Why: video that has to look seamless should be assembled on the screen that displays it. Shipping cut commands (tiny JSON over a realtime channel) is instant and lossless; shipping composited video across networks is neither.

The Program bus is a canvas vision mixer. The live Tavus feed (Camera 1, a WebRTC track via Daily) draws to the canvas every frame; when a cart rolls, its video element alpha-crossfades over the live feed in about a quarter second, plays, and crossfades back. Carts are silent by design — Annika's voice keeps coming from the live track underneath, which is why speech never stutters during a gesture. Away-gestures (coffee run) additionally duck and low-pass her audio so the room sounds like she stepped away.

Continuity comes from anchors and props. Every cart starts and ends on a fixed frame — home_pose or empty_chair — so any legal sequence of carts is seamless. Carts declare what prop state they need and produce (none / coffee_mug): the scene state machine refuses a coffee-fetch when the mug is already out, and knows the only legal exit from an empty chair is a return clip.

When the caller's deck is live, your Gallery becomes a mirror: the Set sends a heartbeat every 10 seconds and scene reports on every state change; your monitor re-renders from those reports, and your ROLL / CUT / mode toggles relay downstream as broadcast commands. The green dot and “DECK AT THE SET” banner tell you which plane is playing out.

The trigger system — two tiers plus a veto

Tier 1 — Snap Cues. Keyword rules stored in the database and evaluated server-side the moment an utterance arrives. Sub-second, deterministic, cooldown-limited. Use them for reliable verbal tells: “let me show you” → screen.lean_look. Edits go live within ~30 seconds because the Set refreshes its rule-driven carts on a timer — no redeploy.

Tier 2 — the Director. A Claude model (claude-sonnet-4-6) that receives the rolling transcript, current scene state, prop state, show phase, and the cart inventory, and decides what to prep (warm the cache), stage (put on the WARM shelf), or fire (arm for autopilot). Its reasoning streams into the left rail so you can audit every call it makes. Use it for judgment: pacing, tone, when a coffee-break lands as charm rather than rudeness.

The veto. A fired cue arms with a 2-second ring before rolling. Those 2 seconds are the human override window: CANCEL kills the cue and drops the room to MANUAL CONTROL, where everything the machines want becomes a suggestion chip instead. CUT TO LIVE is the hard override at any moment — kills the cart, interrupts Annika mid-sentence, returns to the live feed. Re-engage autopilot with one click on the pilot toggle. The design rule throughout: the machine proposes, the engineer disposes.

Interruption handling is automatic on both planes: when the caller starts speaking mid-gesture, the state machine flags INTERRUPTED and force-cuts to live within ~0.8 s — unless Annika is “away”, in which case the return-with-coffee cart plays first if it's cached, because an empty chair snapping to a seated Annika would break the illusion.

Session lifecycle & memory

Launch. create-session authenticates you, reads the key vault, ensures your persona record, and seeds the Cart Wall on first run (master clip catalog if imported, synthetic placeholders otherwise). Unless the launch is a demo, it then creates the Tavus conversation (optionally injecting Annika's Notebook, marker-bounded and capped at 6,000 characters) and mints a random 16-byte air token — the capability that admits exactly one Set to exactly one session.

On air. Utterances flow in from two directions — the Gallery observing the Tavus event stream, and the Set posting through its token-authenticated uplink (with an outbox that retries, so flaky caller networks don't drop transcript). Every utterance is matched against Snap Cues and folded into the Director's context. Triggers, cart changes, and planner runs stream back to the Gallery over realtime subscriptions.

Wrap. END AIR (or ◀ FOH, or the caller leaving) marks the session ended and queues the memory worker, which distills the transcript into the Notebook: LAST AIR, DIRECTOR'S NOTES, RECURRING PEOPLE (with weighted contact memory), STANDING CONTEXT, plus a one-line recap. Next launch, that memory is injected into her conversational context — which is how Annika remembers your regulars. The injection is non-destructive and delimiter-bounded so it can never bleed into or overwrite her persona prompt.

Security & tenancy model

Tenancy. Organizations own the human side: membership, roles, invites, the guest link, the guest persona. Every table is under row-level security; org rows are visible only to members, and all writes go through audited database functions that re-check membership server-side — the browser is never trusted.

Capabilities, not cookies, for callers. The Set never authenticates a caller — the air token in the link is the authorization, scoped to one session, useless after wrap. That's why live callers need no account and why an old link politely says the air has wrapped.

Invites are single-use random codes minted only by org admins; guest links are deliberately public (that's their job) and expose only the org's name and guest persona through a read-only lookup. Provider keys live server-side in the vault, are editable only by the global super admin, masked in the UI, and validated live against each provider on save. Demo cost safety is enforced twice: the demo button sends an explicit flag, and the server refuses to create a billed Tavus conversation whenever that flag is present — regardless of what keys are saved.

Runbook — checklists & troubleshooting

Pre-air checklist

Readiness stepper all green (KEYS validated ✓, FACE CAST selected, CART WALL ready-count > 0, IDLE LOOP imported) → write tonight's conversational context → decide memory injection → ▶ LAUNCH. For rehearsal, ENTER DEMO GALLERY and drive the pipeline with the simulate-an-utterance box.

On-air standard practice

Watch the tally, not the transcript. Keep autopilot engaged until it earns distrust; one CANCEL puts you in manual. Cast the Set link early so the caller's deck preloads carts. If a cart shows PRELOADING on the wall, it isn't cached at the Set yet — don't force it.

Symptoms → causes

“gateway: invalid token” on the Set — link mangled or from a previous session; re-copy from the SET strip. “cart not playable yet” — still preloading or its media URL is unreachable; check the wall status and the clip's storage URL. Join failed on the Set — Tavus conversation expired or maxed out; end and relaunch. Casting rack empty — TAVUS_API_KEY missing or invalid; SAVE KEYS revalidates live. Director silent — no ANTHROPIC_API_KEY, or the session is manual-phase; check the keys panel first, then the edge-function logs in Supabase. Notebook empty after a wrap — memory worker needs the Anthropic key too; recaps appear a few moments after END AIR, not instantly. Password-reset email points at the wrong host — Supabase Auth → URL Configuration → Site URL must be the production domain.

Escalation

Edge-function logs live in the Supabase dashboard per function (create-session, ingest-utterance, clip-planner, memory-worker). Vercel build/runtime logs cover the client. When in doubt: end the air cleanly, relaunch — sessions are cheap, trust is not.

Users — team & end-user management (/app/team)

The USERS area gives org admins full control and broadcast operators a live view — team members, invitations, and Green Room end users in one place, with the org's shareable Green Room link pinned at the top. Team members: every admin and operator with email, role, and status. Admins can change roles (operator ↔ admin), deactivate / reactivate members (a deactivated member keeps their account but loses all org access instantly), and remove them outright — the org owner is protected from all three. Invitations are single-use links that expire after 7 days, minted for a specific role; the list shows each invite's status (pending, used, expired, revoked), who redeemed it, and lets admins copy a pending link again or revoke it. End users: the guest roster with session counts and last-seen times; admins can disable a guest's access to the org's Green Room (and re-enable it) — a disabled guest is refused at launch.

Broadcast operations — /app/broadcasts

The live board for everyone in the control room. Each end user in your org appears as a card: name, email, status pill, and session details. LIVE (red) means an unfinished session with a fresh deck heartbeat — the card shows when they went on air, the show phase, seconds since the last heartbeat, and an OPEN BROADCAST button that opens their Set. STANDBY means not currently connected — the card shows their session history instead. The board auto-refreshes every 10 seconds, counts LIVE and STANDBY in the header, sorts LIVE cards first, and supports name/email search plus a status filter. Visible to admins and operators; guests can never see it.

Navigation map

Every page, and every way off it:

/ (marketing)Docs · Guest guide · Green Room · SIGN IN / OPEN CONSOLE (auth-aware) · footer links.
/loginLogo → home · ‹ Back to home · Docs · Green Room link · Forgot password. After sign-in → /app.
Onboarding cardCreate org / join code → /app · SIGN OUT · ‹ Back to home · Docs.
/app (FOH)DOCS · PROFILE · SIGN OUT · ▶ LAUNCH / ENTER DEMO → Gallery.
Gallery◀ FOH (confirms, ends the air, returns to Front of House) · PROFILE · DOCS · SIGN OUT · END AIR.
/app/profileBACK TO CONSOLE · DOCS · SIGN OUT · PLATFORM (super admin only).
/app/teamBROADCASTS · CONSOLE · PROFILE · SIGN OUT. Admins manage; operators view.
/app/broadcastsUSERS · CONSOLE · PROFILE · SIGN OUT · OPEN BROADCAST on live cards.
/adminCONSOLE · PROFILE · DOCS · SIGN OUT. Super admin only; others see an access notice.
/docs & /docs/guestLogo → home · Guest guide / master docs cross-links · Green Room · SIGN IN / OPEN CONSOLE (auth-aware).
/greenroomLogo → home · ‹ Back to home · How it works (/docs/guest) · Console sign-in · START → the Set.
The Set (/air/…)Deliberately sealed: JOIN/START, MUTE, LEAVE only. Callers shouldn't wander mid-air.
◉ CUEPILOT · GUEST GUIDE
Green Room TALK TO ANNIKA
What is Annika? Getting in On the Set Talking with her — tips Leaving & the wrap card Your camera, mic & words Troubleshooting FAQ Privacy Policy ↗ Terms of Service ↗

What is Annika?

Annika is a live AI host — a photoreal, talking, listening presence on a video call. She sees you (if your camera is on), hears you, answers in real time, and behaves like someone on a television set: she gestures, leans in to look at things, occasionally gets up for a coffee and comes back. Behind the scenes a production system times those gestures to the conversation; on live shows, a human control room may be supervising too, exactly like a broadcast gallery behind a news anchor.

Two kinds of sessions exist. Green Room sessions are the ones you start yourself through your organization's link — real live conversations with your organization's host persona. Live shows are productions an organization runs with you as the invited caller. (Opening the Green Room without an organization link gives a limited demo instead.)

Getting in

There are two ways onto the Set:

With a Green Room link. If someone sent you a link like /greenroom/<code> (it carries their organization's name), open it, sign in — or press CREATE ACCOUNT with any email — and hit ▶ START A SESSION WITH ANNIKA. That's it: your own Set opens and Annika is waiting. Your account becomes part of that organization's green room — it's remembered on any device, and every session you start runs under their setup. One organization per account.

Invited to a live show. If a control room sent you a direct Set link or QR code, you don't need an account at all — the link opens your stage directly.

On the Set

You land in a small lobby first: type a name if you like, and on live shows press ENABLE CAMERA & MIC to check your self-preview, then ▶ JOIN (or ▶ START on demo sessions). If your camera is blocked you can still join and listen.

On air, Annika fills the stage with your own camera in a small window at the bottom-right. She gestures, leans in to look at things, sometimes steps away for coffee — that's normal, it's her show. Talk naturally; if you speak while she's mid-gesture the picture returns to her right away. Your controls: MUTE and LEAVE.

Talking with her — tips

Just talk. No push-to-talk, no wake word — it's a phone call with a face. Natural pauses are fine; she waits.

Interrupt freely. If she's mid-gesture or mid-sentence and you start speaking, she stops and comes back to you — that's built in.

She can see. On live shows with your camera on, you can hold something up or point at your screen and talk about it.

She may remember. On live shows, hosts often carry notes between sessions — returning guests may find she remembers the last conversation. Say your name in the lobby field and she'll greet you with it.

Leaving, and the wrap card

Press LEAVE (and confirm) whenever you're done. The thank-you card tells you how the session ended: you left, the control room wrapped the show, Annika left the set, or the link was for a show that already ended. Whichever message appears first is the true one — it won't be overwritten.

Your camera, mic & words

Plain talk about what's shared: your camera and microphone are used only while you're on a live Set, and only after you press JOIN — the lobby preview is local until then. MUTE stops your audio instantly. On live shows, the conversation is transcribed and visible to the production team running the show (that's how they cue Annika), and the host may keep notes so she can remember you next time. Green Room sessions started through your organization's link are live conversations and work the same way; only the no-org demo skips the camera entirely.

Troubleshooting

No sound? Tap the stage once — browsers need a tap before playing audio. Camera blocked? Join anyway and listen; to be seen, allow camera access in your browser's site settings (the lock icon by the address bar) and refresh. Frozen picture? Refresh the page — your link readmits you while the air is live. “Missing air token” or “already wrapped”? The link is incomplete or the show is over — ask for a fresh one, or start your own session from the Green Room. Forgot your Green Room password? Sign-in problems for guests are self-serve: create a new account with another email, or ask the org that invited you.

FAQ

Is Annika a real person? No — she's an AI host with a photoreal face and voice, produced live like a TV show.

Does it cost me anything? No. Green Room sessions are free, and live shows are paid for by the organization that invited you.

Why did she get up and walk away? That's a produced gesture — she'll be back in a few seconds, usually with coffee. Keep talking; she still hears you.

Can I use my phone? Yes — the Set is mobile-first; QR invitations are designed exactly for that.

Why does the card say “this air has already wrapped”? Set links are single-show passes. When the show ends, the link retires. Ask for a new one or visit the Green Room.

It says my access is disabled. The organization whose green room you joined has paused your access — contact them to be re-enabled. Your account itself still works.

◉

CUEPILOT · USERS

GREEN ROOM LINK loading…

TEAM MEMBERS

Loading…

INVITATIONS single-use · expire after 7 days · admin only

Loading…

END USERS green room sign-ups · admins can disable access

Loading…

◉

CUEPILOT · BROADCAST OPS

—
auto-refreshes every 10s · LIVE sorts first
GREEN ROOM LINK loading…

Loading…

◉

CUEPILOT · PLATFORM

ALL ORGANIZATIONS global super admin only

Loading…

◉

CUEPILOT · PROFILE

ACCOUNT

ORGANIZATION

Loading…

GREEN ROOM · SHAREABLE GUEST LINK

Anyone with this link can sign up and self-launch sessions with your org's guest persona. Send it to your audience.

END USERS · GREEN ROOM SIGN-UPS

Loading…

DOCS & HELP

Operator documentation for every panel in FOH and the Gallery.

◉

CUEPILOT · FRONT OF HOUSE

CASTING
Checking the runway…
GREEN ROOM LINK loading…

CASTING · REPLICA FACES Tavus replicas · Camera 1 talent

Loading replicas…

PERSONA system prompt · context · pipeline layers

LLM
TTS
—
STT —
PERCEPTION —

API KEYS · MASTER CONTROL enter once — saved server-side in the vault

Loading key status…

SNAP CUES · TIER-1 phrase → instant cart · live within 30s

Loading rules…

ANNIKA'S NOTEBOOK · MEMORY rebuilt after every air · injected at launch

Loading memory…

LAUNCH creates the Tavus conversation and puts the gallery on air

◉

CUEPILOT · THE GALLERY

00:00 OPENING BOOT —

AUTOPILOT QUEUE 2s standby window

No armed cues. CuePilot is watching the floor.

THE DIRECTOR claude-sonnet-4-6

    ⬦ DECK AT THE SET — commands relay downstream · your mixer is a mirror
    PGM · LIVE
    STATE IDLE PROP none SRC live CART —
    system rolls cached carts · any manual action takes over
    WARM
    SET
    scan on the caller's phone
    ENG · —

    AIR FEED · UTTERANCES live from the floor

      CART WALL

        SCENE TWEAKER