Documentation

Cueing Tevyr from QLab

QLab is the standard cueing app for theater, live performance, and event production. With QLab's Network Cue, your stage manager can drive Tevyr from the same cue list that fires lights, sound, and video — one GO button advances everything in lockstep.

What's QLab?

QLab is the cue-running software that powers most modern theater productions. The stage manager presses GO on each cue and QLab fires lights, sound, video, and (now) Tevyr. Get it from figure53.com/qlab.

What you can do

Anything Tevyr can do from the controller — start a session, pause a timer, send a message, trigger a blackout — QLab can do from a cue. The pattern is always the same: a Network Cue fires a URL, Tevyr responds, the show advances.

One GO button, every system

Press GO on QLab cue 47 → lights change, sound plays, Tevyr advances to the next session. No second operator clicking the timer manually. No drift between systems.

Pre-programmed show flow

Build the entire show in QLab once. Each cue knows exactly which Tevyr action to trigger. Run the same show two nights in a row with identical timing every time.

Mid-show flexibility

Need to skip ahead, hold for an audience reaction, or kill the timer for an unscripted moment? Add a one-off Network Cue to any QLab list — fires once, doesn't change the show.

No new operator role

Your stage manager already runs QLab. Adding Tevyr cues doesn't require hiring a Tevyr operator — the existing workflow absorbs it.

Prerequisites

  • Tevyr Premium or Enterprise plan — the API is gated to these tiers
  • A Tevyr API key for the room you want to cue (one-time setup, see below)
  • QLab 4 or later with the Network license tier (Network Cues are not in the free tier)
  • The computer running QLab must be able to reach https://api.tevyr.com — works over the venue Wi-Fi, hotel internet, or even a tethered phone

One-time setup

1. Get your Tevyr API key

  1. Open the Controller for your event
  2. Click the event menu (top-left dropdown)
  3. Select API
  4. Click Generate API Key
  5. Copy the key immediately — it won't be shown again. Treat it like a password.

You'll also see your room ID on this screen — note it down. Every Tevyr API call needs both.

Tip

API keys expire after 30 days for security. If your show runs longer, regenerate before opening night and update the QLab cues — a 5-minute task.

2. Add a Network Cue in QLab

  1. In your QLab workspace, go to File → Settings → Network
  2. Confirm Network Cues is enabled
  3. Back in the cue list, press N (or use Cue Menu → Network) to insert a new Network Cue
  4. In the inspector panel on the right, set:
    • Type: OSC → switch to HTTP (or "Plain text" depending on QLab version)
    • Method: GET
    • Address (URL): the Tevyr endpoint for the action you want (recipes below)

That's it — press GO on this cue and Tevyr will respond.

Recipes

Replace YOUR_ROOM_ID and YOUR_API_KEY in every URL with your actual values from step 1. URLs work as-is when pasted into a QLab Network Cue's Address field.

Recipe 1 — Advance to the next session

Use this for almost every cue in a typical show: when the previous segment ends, the next one starts.

https://api.tevyr.com/v1/timer/next?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

When to use it: Pair with a QLab cue that fades the previous lighting state and starts the next one — by the time the audience notices the transition, Tevyr is already running the next session.

Recipe 2 — Pause / resume the active timer

https://api.tevyr.com/v1/timer/start_stop?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

When to use it: Audience reaction holds, unscripted Q&A, technical pauses. start_stop toggles — fire it once to pause, fire it again to resume. Pair with a QLab fade-down lighting state for a clean hold.

Recipe 3 — Reset the active timer

https://api.tevyr.com/v1/timer/reset?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

When to use it: Speaker requests a do-over, or a technical issue means the segment needs to restart. Resets the active session's timer to its full duration.

Recipe 4 — Send a flash message to the speaker

Tevyr's flash message is a full-screen overlay that grabs the speaker's attention without interrupting the timer. Useful for "wrap up" or "cue the band" cues.

https://api.tevyr.com/v1/message/flash?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY&content=Wrap+up&color=red

When to use it: Hard-out cues. Pair with the QLab cue that starts the closing music — by the time the music fades up, the speaker has already seen the wrap signal.

Tip

URL-encode your message text. Spaces become + or %20, and special characters need escaping. Most text editors have a "URL encode" function. Or paste the URL into a browser first — it'll auto-encode as you type.

Recipe 5 — Trigger a blackout (panic button)

For the moment when something goes wrong and you need every Tevyr screen dark immediately:

https://api.tevyr.com/v1/display/enable_blackout?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

To clear it:

https://api.tevyr.com/v1/display/disable_blackout?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

When to use it: Unexpected speaker walks off, technical issue, fire alarm. Bind both URLs to QLab keyboard shortcuts (e.g., B to blackout, Shift+B to clear) for instant reach.

Recipe 6 — Toggle the on-air indicator

The on-air red light tells crew "we're live now." Useful when crossing into broadcast/recording moments.

https://api.tevyr.com/v1/display/enable_on_air?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

To clear:

https://api.tevyr.com/v1/display/disable_on_air?room_id=YOUR_ROOM_ID&api_key=YOUR_API_KEY

When to use it: Pair the enable cue with the QLab cue that starts your stream/recording — backstage knows the camera is hot the moment the cue fires.

Common cue patterns

Here's how a typical 90-minute keynote might be wired in QLab:

QLab cueTevyr actionNetwork Cue URL
Pre-show: house lights downEnable on-air/v1/display/enable_on_air
Speaker 1 walk-onStart timer (next session)/v1/timer/next
Speaker 1 wrap warningFlash message: Wrap up/v1/message/flash?content=Wrap+up&color=amber
Speaker 1 hard outPause timer/v1/timer/stop
Transition to Speaker 2Advance session/v1/timer/next
Q&A breakSend message: Q&A is open/v1/message/create?content=...&type=staff
Show endDisable on-air/v1/display/disable_on_air

Troubleshooting

"Cue fired but Tevyr didn't respond"

  • Check the URL has https:// — QLab will silently fail on http:// because Tevyr requires HTTPS.
  • Check your API key hasn't expired — keys are 30-day. Regenerate from the controller's API panel.
  • Check the room ID matches — the room ID is per-event, not per-account. Cueing event A from event B's room ID will fail authentication.
  • Try the URL in a browser first — paste it into Chrome, see if you get a JSON response. If it works in a browser but not in QLab, it's a QLab network setting.

"Cue fires but with a 1-2 second delay"

  • Network latency is the usual cause — venue Wi-Fi is often slow. Test from QLab's machine to https://tevyr.com via the Network tab in QLab's preferences.
  • For frame-accurate cueing, fire the QLab cue 1-2 seconds before the visible action. Most live productions do this anyway because lighting fades and audio fades take time too.

"Authentication errors when I copy a URL"

  • API keys are case-sensitive. Make sure no whitespace was added when copying.
  • The query parameter is api_key (with underscore), not apikey or apiKey.

"How do I send the same cue list to two Tevyr events?"

You can't — each Network Cue targets one URL. The cleanest pattern is to clone the QLab workspace, swap in the second event's room_id and api_key, and run the second copy on a separate machine (or in a separate QLab workspace on the same machine).

What about native OSC?

QLab's classic Network Cues use OSC over UDP. Tevyr currently supports the HTTP variant only — but for QLab's purposes the difference is invisible. Both fire on GO, both reach Tevyr, both feel identical to the stage manager.

If you have a complex MIDI Show Control or pure-OSC theater rig that can't speak HTTP, see the Companion guide — Companion accepts OSC/MIDI input and translates to Tevyr API calls.

  • API reference — every endpoint Tevyr exposes
  • Webhooks — go the other direction (Tevyr fires events into QLab via Companion), or push QLab cues into Tevyr macros via a catch-hook webhook
  • Macros — wrap your Network Cue's target action in a Tevyr macro to add Slack pings, Notion logs, or lighting cues alongside the timer action
  • Bitfocus Companion — for MIDI/OSC inputs that need protocol translation
  • Use case: Broadcasting — how broadcast teams build their show flow