Documentation

Everything you need to know about StageTime.

Getting Started

Installation

Download the latest version from the Downloads page. On macOS, open the DMG and drag StageTime to your Applications folder — choose the Apple Silicon build for M-series Macs and the Intel build for older ones. On Windows, run the installer and follow the prompts. The Windows installer is not yet code-signed, so SmartScreen may show a warning on first run; choose More info ▸ Run anyway.

First Launch

When you open StageTime, you'll see two windows: the Display (the big timer) and the Remote (the control panel). The display is what your speakers see. The remote is what you operate from. If an external monitor is connected, the display goes fullscreen there automatically; otherwise it opens as a window on your main screen.

Quick Start

Set a time using the + buttons on the remote, then press Start (or the space bar). The traffic light turns green and the countdown begins. At the wrap-up threshold it goes yellow. At zero it goes red and, past zero, the digits turn red with a leading minus sign.

Updates

StageTime checks for updates a few seconds after launch and only speaks up when a newer version is available. You can check any time from App ▸ Check for Updates….

Display Window

Overview

The display shows a large countdown alongside a traffic-light circle. Place it fullscreen on a secondary monitor, projector, or confidence monitor facing the stage. Use App ▸ Display On… to pick a monitor; the timer keeps running while the window moves. Plug in an external monitor and the display moves there on its own. Unplug it and the display becomes a window on your main screen. When it's windowed there is no title bar — drag it by the black margin around the timer.

Traffic Light

Green — timer running, plenty of time remaining.
Yellow — countdown entered the wrap-up zone.
Red — timer hit zero or is in overtime.
With Flash at Zero on, the red light blinks at 500 ms intervals. With Flash Border on, a red glow pulses around the timer box as well — much harder to miss from a lectern without washing out the whole screen.

Overtime

Past zero the display shows a leading minus sign and the digits turn red, on both the display and the remote. Turn on Stop at Zero to hold at 00:00 instead. Every character is rendered in a fixed-width cell so the number never shifts as digits change.

Blackout

The Blackout button in the remote header (or the B key) turns the display fully black instantly. The timer keeps running underneath and comes back exactly where it should. Also available from Companion or the API via /api/blackout/toggle.

Progress Bar and Corner Clock

Options ▸ Progress Bar adds a bar under the digits, colored to match the light, on both the display and the remote. Options ▸ Corner Clock shows a small time-of-day clock in the top corner of the display while a timer is showing, so speakers can see the actual time. Both are off by default.

Background Color

Toggle between black (default) and blue from Options ▸ Blue Background, the remote, or the API. Blue is useful for chroma-key compositing when you need to key the timer over a video feed. With the blue background the border flash becomes a hard-edged ring with no glow, so it keys cleanly.

Remote Control

Modes

The selector at the top switches between three modes. Each shows only the options that apply, so the remote fits on a 13-inch laptop without scrolling. The mode is locked while a timer is running.
Countdown — set a time and count down to zero, then into overtime or hold at 00:00.
Stopwatch — count up from zero, with an optional milliseconds readout (MM:SS.mmm).
Clock — show the time of day in 12- or 24-hour format, in any time zone. The remote hides the timer controls and shows the zone and date beneath the time.

Time Controls

Add or subtract time with the ±1, ±5, ±10 minute and ±30 second buttons, while stopped or running. Press Clear to reset to 00:00. To count down to a specific clock time, enter it in the End at field: StageTime sets and starts a countdown that hits zero at that moment (tomorrow if it has already passed today), interpreted in the display's selected time zone. While a countdown runs, the header shows the wall-clock time it will finish, and "Ended" in red once it passes zero.

Countdown Options

Wrap-Up — the light turns yellow below this threshold.
Flash at Zero — the red light blinks at zero.
Flash Border — a red glow pulses around the timer box at zero.
Stop at Zero — hold at 00:00 instead of counting into overtime.
Buzzer — three short beeps at zero. The Test button asks for confirmation first so it can't be fired by accident into a live audio line.
At zero, show — show a message of your choice automatically at zero (TIME'S UP by default). It clears itself when you add time or clear the timer, and never replaces a message you put up yourself.

Messages

Type a short message (up to six words) and click Show Message or press ⌘/Ctrl+Enter to put it on the display. Retract Message or Esc removes it. With Keep timer visible on, the message sits beneath the clock instead of replacing it. Type a message and click + Quick message to save it as a one-tap pill, up to six. StageTime ships with WRAP UP, TIME'S UP, and Q&A. Messages can also be sent via the API or Companion.

Keyboard Shortcuts

Space — start / stop.
↑ ↓ — plus / minus one minute; hold Shift for ten. → ← — plus / minus one second.
B — blackout.
Esc — retract the message.
⌘/Ctrl+Enter — show the typed message.
Shortcuts are ignored while you're typing in a text field. The full list is under Options ▸ Keyboard Shortcuts….

Remembered Settings

Every option is remembered across launches: flash, border flash, stop at zero, wrap-up, buzzer, auto-message, background, milliseconds, keep timer visible, progress bar, corner clock, quick messages, time zone, and clock format. Global settings that affect the display live in the Options menu: Progress Bar, Blue Background, Corner Clock, 12-hour Clock, and Clock Time Zone. Changes made from the API or Companion are saved too and mirrored on the remote.

Timer Presets

Saving a Preset

Set your desired time and wrap-up, type a name (up to 10 characters), and click Save. Up to 5 presets. They persist across restarts, and each pill shows its wrap-up time.

Loading a Preset

Click a preset to clear and load its time and wrap-up settings. Presets can also be loaded by slot number (1–5) or by name via the API or Companion.

Bitfocus Companion

About the Module

StageTime includes a dedicated Bitfocus Companion module for controlling the timer from a Stream Deck or any Companion surface. The module is pending inclusion in the official Companion module list — in the meantime, you can install it manually. Module 1.1.0 covers the entire StageTime 1.1 API. Prefer raw HTTP? See Using the API from Companion.

Installing the Module

1. Download stagetime-companion.tgz from the Downloads page.
2. Extract the archive and copy the module folder into your Companion modules directory.
3. Restart Companion.
4. Go to the Connections tab and search for StageTime or Wake Media. The module should appear in the list.

Configuration

Add a connection and set Host to the IP of the machine running StageTime (127.0.0.1 if it's the same machine) and Port to StageTime's API port (default 8088). The connection indicator should turn green as long as StageTime is running. The app's own IP addresses and port are listed under App ▸ API Reference…. Live updates is on by default: the module subscribes to StageTime's event stream so button feedback changes the instant the timer does. Turn it off to poll instead.

Actions

Timer — start, stop, start/stop, clear, set time, add/subtract time (works while running), count down to a clock time, set wrap-up.
Presets — load slot 1–5 or by name.
Modes — Countdown / Stopwatch / Clock, stopwatch milliseconds.
Messages — show (with a layout choice: preference, beneath the timer, or full screen), hide, show/hide toggle, quick messages 1–6, set the auto-message text.
Display — blackout, background, clock format, time zone.
Options — set any on/off option (flash light, flash border, stop at zero, buzzer, auto-message, progress bar, keep timer visible, corner clock, blue background, 12-hour clock) to on, off, or toggle. Test buzzer. Text fields accept Companion variables.

Feedbacks

Light colour — button background follows the traffic light (green/yellow/red/gray), or test for one colour.
Timer — running, stopped, in wrap-up zone, in overtime, remaining time below a threshold.
Mode is Countdown / Stopwatch / Clock.
Messages — message visible, quick message slot has text, preset slot is set (to hide unused buttons).
Option is on for any on/off option, time zone is, and blacked out.

Variables

$(wakemedia-stagetime:formattedTime) — live timer (e.g. "09:33"); formattedTimeSigned adds a minus sign in overtime.
Time: remainingSeconds, timerMinutes, timerSeconds, overtime, progress, progressPercent.
State: running, mode, lightColor, lightColorHex, wrapUpSeconds, wrapUpFormatted.
Every option as true/false: flashOn, flashBorder, stopAtZero, soundOn, showProgress, showMilliseconds, bgBlue, blackout, cornerClock, hour12, timeZone, clockFormat.
Messages: messageVisible, autoMessageText, quick_1_textquick_6_text.
Presets: preset_1_namepreset_5_name and preset_1_timepreset_5_time.

Presets

Ready-made buttons, one per job, in nine categories — Timer (with a live readout that follows the light colour), Adjust Time (±1 sec to ±10 min), Quick Set, Presets (labelled with the preset name and time), Messages (quick message buttons labelled from the app), Stopwatch, Clock (12h/24h, corner clock, time zones), Countdown (wrap-up, flash, buzzer, stop at zero, progress bar), and Display (blackout, keying background). Drag them onto your button grid from the Presets tab.

Using the API from Companion

If you would rather not install the module, add a Generic HTTP connection with the base URL set to your StageTime machine, e.g. http://127.0.0.1:8088, then use one GET action per button: /api/blackout/toggle, /api/quickmessage/1, /api/sound/on, /api/endat?time=14:30, and so on. For feedbacks, poll /api/status or subscribe to /api/events and read lightColorHex for button color, formattedTimeSigned for the time, and preset_N_name / quick_N_text for button labels. The complete list is on the API Reference page.