Endless Cues v0.1

Standing by · v0.1, first public build on the way

Show control with an open show file.

Endless Cues is an open-source cue-list app for live theatre and events, on macOS, Windows and Linux. QLab’s cue list, a sound designer’s tools, and a show you can open in a text editor.

Free and open source. Nothing to download yet. This is a first pass, not a finished QLab replacement.

running standing by, holding panic, broken The demo show in Show mode, drawn in HTML from the app’s own styles.

01The cue list

GO is sacred.

If you know QLab you know this. One GO button, a playhead, and a list of cues that run in order. Everything around the button exists so that the right thing happens when you press it, and as little as possible happens when you press it by mistake.

Cue types in v0.1

  • ▤Group
  • ♪Audio
  • ◢Fade
  • ■Stop
  • ▶Start
  • ❙❙Pause
  • ⤴Devamp
  • ⤓Load
  • ↪GoTo
  • ◉Arm
  • ◌Disarm
  • ◷Wait
  • ✎Memo
  • ⇄Network
  • ☀Light
  • ⎚Mix
  • ⤳Jump
GO Space
Fires the cue at the playhead and moves the playhead on. A second GO within 0.3 seconds is ignored, and you can change that window.
Standing by
The next cue’s number, name and notes sit beside the button, big enough to read without leaning in.
Waits and continues
Pre-wait and post-wait on any cue. Auto-continue fires the next cue when this one starts; auto-follow fires it when this one finishes.
Groups
A group fires its cues together on one GO. Give it “fade & stop others” and it is a scene change: everything else fades out as the group comes in.
Fades
To a level or by an amount. A fade can stop its target when it gets there.
Arm and disarm
Cut a cue for tonight without deleting it. The GO skips it, and the standby display says so before you press.
Panic Esc
Fades everything out. Press it again and everything stops dead. Pause all, Resume all and Reset are next to it.
Show mode
Locks editing for the performance. Nobody renames cue 14 at the half.
A screenshot of Endless Cues in Edit mode with the demo show running. Above the cue list, a toolbar with one button per cue type. Cue 3, Thunder, is standing by and selected, and the inspector below the waveform shows its number, name, notes, colour and continue mode.
A screenshot of the app in Edit mode: the toolbar of cue types above the list, the inspector below it. The app has three themes; this is the default.

02Sound

A sound designer’s tools.

A show does not run to the second. A change runs long, an actor takes the pause, and the music has to wait without sounding like it is waiting. These tools come from how DJs and Ableton users deal with that. Here they are part of the cue list.

Not yet: microphones and live ducking in the mixer. They are on the roadmap below.

Holds
Mark loop regions on a track. When the scene runs long, hold the track in one. It loops sample-exact until you let go, then plays on as if nothing happened.
Quantised GO
Set a cue to wait for the next beat or the next bar of the music that is playing. You press GO on the line; the cue lands in time.
Jumps
A Jump cue moves a playing track to another place in itself: a cut, a crossfade, or a bar-long blend with a bass swap, the way a DJ would do it.
Voice-band ducks
A fade can dip only the band a voice sits in. The music stays full under the line and the words still read.
Waveform
The playing track with its markers and its loop lane, where you can see what is coming.
Buses and a limiter
Buses with faders and meters, a master, and a safety limiter on the output.

03The show file

A show file you can read.

A show is a folder. In it, show.json is the whole cue list as plain, pretty-printed JSON with its keys in a fixed order, so a diff shows what changed and nothing else. Open it in a text editor. Put it in git. Send it to someone who does not have the app.

Demo.ecshow/show.jsonexcerpt
{
  "format": "endless-cues-show",
  "version": 1,
  "id": "show_e4e57c56",
  "title": "Demo show",
  …
  "lists": [
    {
      "id": "list_e28d4608",
      "name": "Main",
      "cues": [
        …
        {
          "id": "c_28493eb8",
          "notes": "On “…and the sky answered.”",
          "type": "group",
          "number": "3",
          "name": "Thunder (rain ducks under it)",
          "color": "orange",
          "children": [
            …
            {
              "id": "c_6aa41695",
              "type": "fade",
              "name": "Rain dips",
              "target": "c_09dda5b8",
              "db": -10,
              "duration": 0.4,
              "relative": true
            },
            …
          ]
        }
      ]
    }
  ]
}

The folder

MyShow.ecshow/
show.jsonthe show: cues, buses, modules
media/the sound files, referred to by relative path
versions/every version you saved

Versions

Every edit is saved as you make it. Save version makes a named checkpoint. Compare any version with the show as it is now and read the difference cue by cue, field by field. Restore one, and if that was wrong, undo the restore.

04Modules

Switch on what the show needs.

Anything that talks to the outside world is a module, and each show turns on the ones it uses. Three exist today.

OSC control

Listens on UDP port 53000 and answers to QLab’s addresses, so a Bitfocus Companion or Stream Deck setup made for QLab works as it is.

/go  /panic  /cue/{number}/start udp 53000

Lighting desk

Light cues fire cues on ETC Eos-family desks over OSC. The app shows whether the desk is answering, so you find out at the check and not at the top of the show.

/eos/cue/1/2/fire

Web remote

The cue list and a GO button in the browser of any phone or tablet on the show network. There is no app to install.

the show computer port 8137

On the roadmap · not in v0.1

None of this exists yet. It is listed so you can tell whether Endless Cues fits your show today, and so you can tell us what matters most.

  • MIDI and MSC
  • Timecode (LTC, MTC)
  • Video and projection cues
  • Microphones and ducking in the mixer
  • Main and backup machines with lock-step failover
  • Scripting with variables
  • QLab workspace import
  • Real-time collaboration
  • A full timeline view

05The assistant · the paid part

The assistant proposes. You decide.

Describe a change in plain language: “duck the rain under the thunder and bring it back after four seconds.” The assistant never edits the show directly, and it cannot play it. It comes back with a batch of changes. You read the exact diff, then accept or reject.

Accepting
The whole batch is one undo step, and a version is saved either side of it.
What is sent
Your message and an outline of the show. Never audio.
When
Only when you ask. If you never open the assistant, nothing leaves the computer.
What it costs
Pricing to be announced. The assistant is the only part that needs the internet and the only part that is paid. The app is free and open source.
What runs it
Claude.

06Yours

Open, offline, cross-platform.

Open source

The app is free and the code is open. The repository goes public with the first build. The show file is plain JSON, so your show does not depend on this app continuing to exist.

Offline

It runs entirely offline. No account. No telemetry. The booth computer never has to see the internet, and many should not.

Cross-platform

The same app on the machine you already have. Build the show on a laptop and run it on whatever lives in the booth.

macOS · Windows · Linux

QLab is the industry standard, and it is excellent. It is also Mac-only, and a full licence is US$1,399 (November 2026). Endless Cues is for people who need Windows or Linux, want a show file they can read, or do not have that budget.

07Where it came from

Built to run a show.

Endless Cues began as the control app for Endless Forms, a puppetry show at the La MaMa Puppet Festival in New York in November 2026. The production moved off QLab and needed something to run the show from, so the booth got its own cue list.

What held up in that booth is now being opened up for other shows. It is early, and it will be honest about what it cannot do yet.

Standing by

Hear about it when the first build is out.

Write to hello@endlesscues.com and we will tell you when there is something to download. Tell us what you run shows on, if you like. It helps decide what gets built next.