On air
--:--:--Show clock
±0:00Over/under
Standby Limited beta coming soon

Hit take.
Every screen
follows.

TVOS runs the show from one Mac: rundown, on-air timing, a synchronised prompter, the studio clock and text talkback. iPhones, iPads, other Macs and any browser on the network connect on their own and show the same second.

Not yet

TVOS can't be downloaded yet. It's almost ready to go out to a limited beta.

Mac host · iOS · iPadOS · web AES-GCM encrypted, LAN-first Stream Deck & Companion
Klokke--:--:--
Over/under±0:00
Hard out--:--:--
Margin+0:00
On air A2 Studio
Åpning og headlines
0:14
Planned0:45
go on
DSThe Tally design system

Built for a dark room and half a second.

The people using this make decisions while the clock runs. So the interface is graphite grey, colour is saved for status, and the countdown is the biggest thing on every screen.

Colour means something

Red: on air, or too late. Nothing else.

1:11PROPORTIONAL
1:11TABULAR

Time never jumps

Timecode is monospaced with tabular digits. Watch the dashed box: the top one twitches every second, the bottom one never moves.

0:09

Readable across the floor

Labels are small, uppercase and spaced like the engraving on a vision mixer. Hover here and the number does what it does on the studio clock.

One way to do things

The same components and the same behaviour on Mac, iPhone, iPad and the web. Learn it once in rehearsal.

01Every device · Enheter & fjernstyring

The Mac keeps time. Everyone else agrees.

The Mac's clock is the master. Clients sync to it with ping/pong round-trips and find it over Bonjour without setup. Press TAKE above and watch all four screens change together.

On air
Mac host
On air
iPad on the glass
Air
Floor manager
Any browser
Clock offset to host ±0.0 ms · round-trip 3.1 ms · no PIN = view only
02Studio clock & prompter

Same line on every glass.

The prompter stores its position as an item plus a fraction of its script, not as pixels. A phone, an iPad behind the beam-splitter and a browser show the same line whatever their size or font.

60-second ring · amber in the last 10 sA2
150 wpm
Left 0:00
03Text talkback · Meldinger

Tell the anchor without a word.

Send a message to a role with a priority. Quick messages cover what you say twenty times a show. Read receipts tell you it landed. There is push-to-talk too, when typing is too slow.

To
Priority
Quick messages
Anker · iPadOn air
Gjest 2 er i studio
Regi → AnkerLest ✓✓
04Tally Wire · TLW/1

A rundown edit is 45 bytes.

The host-to-device link is a compact binary protocol. State goes out once, then as revisioned deltas, so one edit sends one item instead of the whole show. Browsers fall back to JSON over /ws on their own.

One update, measured on the demo show
~140×smaller than the old JSON update
JSON
6.4 KB
TLW/1
~45 B
Frame anatomy · varints, 4–6 bytes of header
Hover or tap a field.
Four priority lanes · a TAKE overtakes a queued upload
Control
Live
State
Bulk
05TVOS Deck · Stream Deck · Companion

Fifteen keys. One URL each.

Every button calls the same action on the Mac at /api/do/<action>. Open the Deck on any phone, add it to the home screen, and it runs full screen like an app. Keys light up with tally, countdowns and streaming state. Try it.

PGMKVELDSNYTT
Kari NordmannReporter, Bergen
CAM 1
PVWCAM 2
Requests to the Mac
GET /api/deck/state 200

Several actions on one key run in order as a macro, for example mixer.preview VT › mixer.auto › gfx.fromItem. The layout is saved on the Mac, so every phone shows the same keys.

06For the whole production

From the pitch to the as-run log.

The live view is the loud part. Around it sits the planning and newsroom work that gets a show to air, on the same data.

Kjøreplan

Rundown

Drag to reorder, float items, mark drop candidates. Script with word count and read time, camera direction, CG lines and a fixed start time. Two people can edit the same item without overwriting each other.

Kuttråd

Cut advice

Running long? TVOS suggests the fewest drop candidates that bring you out on time, one click each. Running short, it suggests floated items that fit the gap.

As-run

An honest log

Every take logs actual start and duration. Previous un-airs an item instead of logging a false duration. Export as CSV.

Bildemiks

Vision mixer

Program and preview, multiview, cut, mix, dip, wipe, T-bar and fade to black, with 1080p30 program. Phones, cameras, capture cards and remote browsers as sources. Stream to several RTMP destinations at once.

Planlegging

A production in a minute

Templates for news, debate, sport, magazine and OB create chats, recurring episodes and crew shifts. A calendar across productions, rest-time warnings, freelancer rates and an ICS feed.

Sikkerhet

One PIN to control

4817

Control needs the 4-digit PIN shown on the Mac.

Without it a device is view-only, which suits a prompter or a clock. Data is AES-GCM encrypted at rest, and folder sync between Macs is end-to-end encrypted.

07Gallery & integrations

Plugs into the gallery.

Tally from the switcher, clips from vMix, graphics to CasparCG, the house clock over NTP and stories from the newsroom system over MOS. A backup Mac mirrors every operation and takes over if the main one goes down.

TSL UMD 3.1 / 5.0
Tally and under-monitor display
TALLY
ATEM
Switcher tally
TALLY
MOS device
ENPS and iNews
:10540/1
vMix
Clip countdown in the live view
CLIPS
CasparCG
Graphics, cg.next and cg.clear
CG
NTP
House clock
UDP 123
LiveKit · WHIP
Remote sources from a browser link, OBS, vMix or ffmpeg
WebRTC
RTMP / RTMPS
YouTube, Twitch, Facebook, custom
OUT
Live protocol
WebSocket, REST and Bonjour _tvos._tcp
:8080
Bitfocus Companion
Generic HTTP, with lights from /api/deck/state
HTTP

ATEM, TSL and MOS are built from the protocol specs and unit-tested with sample messages. They have not yet been run against hardware.

08Run it

On air in four commands.

No public download yet. These commands are for the team building TVOS. A limited beta is coming soon. On first launch choose Last inn demo-sending to load the demo show. Then open Enheter & fjernstyring and scan the QR code with a phone, or open the TVOS app on an iPhone or iPad. It finds the Mac on its own.

~/TVOS — zsh
swift run TVOSMac host, for development
scripts/bundle.sh && open build/TVOS.appA proper .app with the web client bundled
TVOS_DB=/tmp/rehearsal.sqlite swift run TVOSA separate database for rehearsals
cd TVOSRemote && xcodegen && open TVOSRemote.xcodeprojThe iPhone, iPad and Mac companion