Cloud relay
Push tally from a locked-down production network to a server in the cloud, so remote operators and volunteers can see states without a VPN or port forwarding.
Tally Arbiter listens to tally data from all of your video switchers at once, arbitrates Program and Preview across every source a camera is assigned to, and pushes the result to phones, ESP32 lights, GPO pins and relays in real time.
Speaks to gear you already have
A camera can be live on one switcher and in preview on another. Tally Arbiter subscribes to every source at once, resolves the conflict, and gives each device a single state — so the operator behind the camera is never guessing.
Scroll the diagram sideways to follow the whole path →
Point Tally Arbiter at each switcher or protocol. Mix as many as you like — an ATEM, a Carbonite over TSL and an OBS machine can all run side by side.
A device is a real thing in the room: Camera 2, the graphics operator, the stage manager. Map it to the inputs that represent it on each source.
Tally Arbiter watches every bus and resolves the states into one answer per device, so conflicting sources never leave an operator with a wrong light.
Assign listener clients, actions and protocol outputs to each device. Reassign any listener from the browser mid-show without touching the hardware.
Everything below ships in the box, under the MIT license, with no paid tier waiting behind it.
Push tally from a locked-down production network to a server in the cloud, so remote operators and volunteers can see states without a VPN or port forwarding.
Fire an outgoing webhook, TCP or UDP string, OSC message, RossTalk command, Ember+ or TSL packet whenever a device enters or leaves Program or Preview.
A dark, password-protected page showing every device and its live state at a glance — designed to sit open on a monitor for the whole service or show.
Send messages between the server, producers and supported tally clients. Flash any listener to get an operator's attention or work out which light is which.
Take tally in from anything and send it back out as TSL 3.1, or emulate a vMix server so existing vMix tally clients and multiviewers just work.
Publish tally states to Home Assistant, openHAB or any MQTT broker, and let the rest of your building react — door signs, room lights, whatever you dream up.
The Bitfocus Companion module shows live tally feedback on your Stream Deck keys and lets you ping or flash any connected listener from the surface.
A documented HTTP API and socket interface, so you can build your own listener client, dashboard or integration in whatever language you like.
No licence keys, no device count, no seat limits. Add as many sources, devices and listener clients as your network can carry.
Listener clients open a websocket to the server and update instantly. Every one of these is open source, and most cost less than a takeaway lunch.
Open /tally in any browser and pick a device. Free, instant, and everyone already owns the hardware.
A USB light driven by a Python script. Run it on a Pi Zero W and it becomes a wireless tally for a graphics or playback operator.
USBA pocket-sized ESP32 with a colour screen and a battery. Clip one to each camera and you have portable wireless tally.
ESP32The newer ESP32-S3 version of the Stick, with a brighter display and more headroom.
ESP32-S3A 5×5 LED matrix in a one-inch cube. Add a Tailbat and you get ultra-bright, ultra-portable, ultra-cheap tally.
ESP32Generic ESP32 boards driving NeoPixel strips — the option when you want a big, bright light visible from across the room. An ESP32-C3 build is included too.
ESP32 / C3A cheap ESP32 board with a built-in colour LCD that shows the device name alongside the state.
ESP32Eight bright RGB LEDs straight onto a Raspberry Pi's GPIO header. No soldering required.
Raspberry PiClose a contact for the camera CCUs and legacy tally systems that expect one. The bridge between modern software and old iron.
Contact closureDrive GPIO outputs from a Raspberry Pi for logic control, LED drivers, or anything else that takes a pin going high.
Raspberry PiTally Arbiter speaks TSL 3.1 out and emulates a vMix server, so multiviewers, UMDs and third-party vMix tally lights work unchanged.
ProtocolThe listener protocol is documented. If it has a network stack and an LED, you can make it a tally light.
DIYIf your switcher speaks TSL UMD 3.1 or 5.0, it already works — even if it isn't named here. New source types arrive regularly, often because someone asked.
Three ways in. The desktop app is the shortest path if you just want it working today.
Installers for macOS, Windows and Linux. Double-click, and the server plus its settings interface start together — no runtime to install first.
Download latestInstall globally from npm. Best for a headless Raspberry Pi or a server you want to start on boot. Needs Node.js 18.13 or newer.
npm install -g tallyarbiter
An official image on Docker Hub, plus a docker-compose.yml
in the repository. Bring it up and it stays up.
docker compose up -d
Building from source, running it as a service, or configuring the settings interface — it's all in the installation documentation.
Tally Arbiter has a full documentation site. This is its map — go straight to the page you need instead of hunting for it.
Videos load only when you press play, so nothing phones home until you ask it to.
The whole system end to end — what it does and why it exists.
A from-scratch install, wired up to OBS — a good first watch.
Take tally from any supported source and relay it to TSL clients and multiviewers.
Send tally out of a closed production network to anywhere in the world.
Live tally feedback on Stream Deck keys, and flashing a client from the surface.
A portable ESP32 tally light, in action on a camera.
More on the Tech Ministry YouTube channel.
This is by far the most flexible Tally solution available.
It works flawlessly, we really can't thank you enough for your hard work on this, and generosity in distributing it under the MIT License.
Thanks for sharing!! We're a small church on a budget and I've been trying to find a way I could set up tally on our ATEM Mini without breaking the bank. You sir, are a scholar and a gentleman!
It's so good! You're incredibly generous to offer this up for other churches to use. Happier volunteers, more coordinated direction, more comprehensive worship experience, more attention on God. Thanks for doing this!
This is so awesome! I have been searching endlessly for a solution like this. I am no programmer but read through your detailed instructions and decided to give it a shot. Just ordered everything. Thanks for working on this, this will really help out our church.
Great work on this project! Huge blessing!
This is awesome! Well done and thanks for sharing!
Love this! Will definitely be testing this out this week and hope to implement it soon! Love all that you do on this blog, huge inspiration!
Free, MIT licensed, and running in productions from single-camera church streams to multi-switcher broadcast facilities.