Everything you need to get a fleet running — and fixes for the things that actually trip people up.
Install the Agent on every presentation machine (Mac .pkg or Windows .exe). Each agent runs quietly in the menu bar / system tray and listens on port 37100. Then control the fleet two ways, which can run at the same time:
The one rule that matters: every machine must be on the same subnet. Use the address the machine has on the network you share — a routed 192.168.x.x/10.x.x.x/172.x.x.x, or a self-determined 169.254.x.x link-local address. The agent's menu lists every address the machine has; pick the one on the same subnet as the machine running Companion.
169.254.0.0/16 subnet (the same approach Dante and other pro-AV gear use every day). As long as every machine sits on that one subnet, KueSync runs on it perfectly.This is the most common confusion, and it has a precise cause: the agent's web pages (the Settings page, /health, /status) are read-only and open to anyone on the network, so they load fine. But Companion controls the agent over a WebSocket, which is a different, persistent connection. If the page loads but Companion shows the machine disconnected, check, in order:
Tip: from the Companion machine, open http://<other-ip>:37100/health in a browser. If that loads, the network is fine and the issue is the address you typed.
A Follower (the default) just receives commands — no setup, no license needed. A Leader drives the whole fleet from its own presenter remote. To set it up, open the Leader machine's Settings page (menu-bar/tray → Settings, or http://<leader-ip>:37100/leader):
For redundancy, set up two or more Leaders with different priorities: the highest-priority healthy machine drives, the others stand by and take over instantly on failure, and a recovered primary only reclaims control once it's provably stable again.
Driving from Companion + a Leader at the same time: point Companion at the Leader and it drives the whole fleet — the Leader fans your commands out to its Followers. A machine that's being led ignores direct commands so Companion and the Leader never fight. (From Companion's point of view, the primary machine is the Leader.) Type a slide number + Enter on the Leader during a show and the whole fleet jumps there, just like it does locally in Keynote / PowerPoint.
KueSync Link (new in 0.9.0) gives your whole fleet one shared content folder. Turn it on — from the Settings page, the Mac menu bar, or the Windows tray — and every authorized machine gets an identical KueSync Link folder in its home folder, with an Open Folder shortcut right there.
.DS_Store and ._ AppleDouble files are never synced and won't pile up on Windows machines, so the folder stays clean across the fleet.It's a beta capability under active testing. Load or change content between shows for the smoothest experience.
KueSync turns your KueSync Link folder into a launcher. Name a deck with a leading number — e.g. 006 Welcome.pptx — and it becomes a numbered show ("Launch 006 · Welcome") that you can open full-screen on slide 1 across every machine with a single tap. It works for PowerPoint and Keynote, you can organize decks in subfolders (the leading number is the address), and it needs no Companion.
http://<machine-ip>:37100/control. On a phone it's a swipe between the advancer and the show launcher; on an iPad or desktop it opens to side-by-side panes. It's protected by the same Settings PIN.KueSync Timer is a show-caller's limit timer that propagates to every machine at once. Set timings from the KueSync Control page (or from Bitfocus Companion); they appear on the clickers and on a big, full-screen clock you can put on any screen.
$(KueSync:kuetimer_time) variable.Already using a hardware advancer? KueSync drives the fleet from the same forward/back any USB presenter sends, so a DSAN Perfect Cue or any industry-standard USB advancer keeps working — now advancing every screen at once. On the Leader Mac, give KueSync Input Monitoring + Accessibility so it can capture the remote. Keep your gear; add the sync.
KueSync scales: any number of Leaders, Followers, and Companions can share a network and they all work together as long as they use the same control password (or you leave control open on an isolated show LAN). Without the matching control password, a device connects read-only and cannot drive — that's the security boundary. The control password is pushed only to Followers the Leader has added and confirmed; if a Leader removes a Follower, that machine clears its copy of the password and the synced KueSync Link deck files (which belong to the Leader) and reverts to a clean standalone state.
Anyone on the network who knows the leader's address could otherwise open its Settings page and change fleet settings. KueSync 0.9.4 adds an optional Settings PIN, on by default, that gates the Settings page from other computers: opening the leader's IP prompts for the PIN before any setting can be viewed or changed. The leader's own machine never needs the PIN — operating KueSync locally stays simple. The PIN is shown on the leader's Settings page (just above License); change it any time, or uncheck the requirement to allow open access on a trusted network.
Every follower now has an Active checkbox — in the Settings page and in the Mac menu bar / Windows tray (follower mode only), on by default. Uncheck it to park that machine: it ignores incoming cues and sits out the show, while staying on the network and keeping its KueSync Link folder in sync. Check it again to rejoin. Handy for a spare or a screen you want to hold on a static slide without removing it from the fleet.
From Companion (0.9.6): you can also park / un-park a follower right from a Stream Deck. The KueSync · Followers presets give you Activate, Deactivate, and a one-key Toggle per machine number, with a built-in feedback that turns the button green when Active / red when Inactive so the operator sees fleet status at a glance. Reactivating a follower automatically snaps it back to the fleet's current slide. There are also $(KueSync:active_m1…8) variables for your own button text or triggers.
Add the KueSync connection, then in the button library you'll find these preset groups. Every navigation button has a Machines field: blank / "all" drives the whole fleet, or comma-separate machine numbers and/or IPs (e.g. 1,3) to target some.
The Cue Light preset group turns Stream Deck keys into a DSAN-style cue light: it flashes green on a forward move and red on a backward move, mirroring the presenter's clicker. Drop the Cue lamp on one key, or tile it across several to build a big lamp; use the Go lamp and Back lamp on different keys to build a two-zone panel. The lamps are output-only — they light from the show, there's nothing to press. Tune the flash hold and pick flash-vs-latch in the connection settings.
No Stream Deck? KueSync also has Kue Lights — a full-screen Perfect-Cue-style cue light you can open on any machine (a comfort monitor, a confidence screen, a spare display). The whole screen flashes green on a forward cue and red on a back cue, in step with the fleet. Open it from the menu bar / tray (Open Kue Lights, between Open Timer and Open Showflow), or the agent's Settings → Kue Lights display (Open / Copy link), the same way you open the KueSync Timer or Showflow display. It flashes from every drive path — Bitfocus Companion, a presenter remote, a clicker link, or the leader's own clicker — and has a full-screen toggle button.
Every agent is a tiny web server, so a presenter can drive the show from their phone — no app, no Companion. On the Leader's Settings page, open Clicker Links, create a link, and share its URL. They open it and get a full-screen advancer with big GO / BACK, a green/red cue lamp, the slide number, and a LIVE / STANDBY banner. Commands ride the same path as the physical clicker, so they inherit all the sync, gating, and failover.
On a job site you often have a dedicated control LAN and house Wi-Fi. Agents always listen and discover on every interface — but you can pin which network the show runs on. Two places to set it:
172.26.32). The module asks each agent for all its addresses and connects over the one on that subnet, so you can type any reachable IP per machine and still keep the show on your control network.The only requirement is that the machines share a subnet. A self-determined 169.254.x.x network is a perfectly good choice for an isolated wired rig — pick it as your preferred network and KueSync rides it.
169.254.x.x link — pin that as your Preferred network for traffic (above) and the fleet syncs over the wire and ignores the hotel Wi-Fi entirely.http://<wired-ip>:37100/control.Every screen flips together to within a couple of milliseconds — on any network, including isolated direct-wired rigs. KueSync continuously measures each machine and corrects every cue per machine, so there's no tuning, no drift, and nothing to set up. If you ever want to nudge the feel, the Settings page and the Companion connection both have a single Sync tightening (ms) control: a touch higher is a touch more consistent, a touch lower is a touch snappier. The default is the sweet spot.
Network quality is the biggest lever you control. KueSync's timing is only as steady as the network carrying it: a wired connection (or an isolated switch with self-assigned addresses) gives the tightest, most consistent sync, and a robust dedicated Wi-Fi network is nearly as good. Congested house Wi-Fi, guest networks, and busy 2.4 GHz bands add jitter that shows up as slightly uneven flips. Easy wins, in order: wire the show machines; if Wi-Fi, use a dedicated 5 GHz SSID just for the rig; keep the show traffic off networks shared with an audience. For a critical show, wire it — that's true of every networked show-control system, not just KueSync.
One thing that isn't us: a heavy slide can paint a hair slower on one machine than another — that's the app's render time, not the cue. For that there's Render trim (Settings → Clock & sync): if one machine's screen visibly flips a few ms behind the rest, give it a small trim and the paints line up, not just the commands. Dial it with the built-in flash test — open /flash full-screen on each machine, hit Flash test, film the screens, and read the true flip-spread frame by frame. The honest physics: independent displays refresh on their own cycles, so "together" means within about one frame (~16 ms) — visually imperceptible.
Keynote: movies set to start on click are builds — a forward press rolls them, synced, automatically. PowerPoint: select the video → Playback → set Start to In Click Sequence (or Automatically) — a press then rolls it in sync across the fleet. Videos left on PowerPoint's Play-button overlay (trigger mode) can only be started by clicking the media itself — no keyboard, remote, or automation can fire a trigger; that's a PowerPoint limitation. One checkbox per video at deck prep is the fix.
Yes — in beta (v6.4.0+), bench-verified; validation on live Dante hardware is in progress. If your network carries an IEEE-1588 PTPv2 grandmaster — the clock an AES67/Dante rig already has — every KueSync machine detects it and locks its fire timebase to it automatically: one shared external clock for the whole fleet, sub-millisecond clock agreement on a quiet LAN, and it survives Leader failover because the reference is outside the fleet. The Settings page and the menu bar show the lock (Locked to PTP grandmaster · domain · offset); if the grandmaster disappears mid-show the agents hold the last good timebase rather than jumping. KueSync is slave-only — it never becomes anyone's clock master. No grandmaster? Nothing changes: the built-in peer-to-peer sync carries the show exactly as before. Two notes: legacy PTPv1-only Dante networks are detected and flagged (enable AES67/PTPv2 to lock), and PTP is L2 multicast, so the agents must sit on the same VLAN as the PTP traffic.
By default the agents accept control from anyone who can reach them — perfect for an isolated show network, but on a shared or house network set a control password. Pick one value (e.g. from openssl rand -hex 16), set KUESYNC_TOKEN=… in each agent's config.env, and enter the same password in the Companion connection's Control password field. From then on only your control surfaces can drive the show, and the agent's Settings page shows a notice whenever control is open on a routable network. Phone clicker links are separate — each link carries its own revocable credential, so a presenter's link never exposes fleet control.
Every install starts with a 7-day free trial — full features, no card. During the beta, the trial is your free access. After that, you license the one control machine (the Companion machine, or the primary Leader). Enter the key once there; the presentation machines it drives connect for free. A pure Follower needs no license — it shows "Not required in Follower mode." Existing keys keep working, and a key is verified offline so it works at the venue with no internet.
On a Leader machine, KueSync watches the configured presenter-remote keys (arrows, Space, Page Up/Down) only while a slideshow is actually running. When you're not presenting, your keyboard is completely untouched — type normally. If you ever need to, switching the machine back to Follower (or quitting KueSync) releases the keys immediately.
On any machine, confirm its agent is alive:
curl -s http://localhost:37100/health
From the Companion machine, confirm it can reach another machine (replace the IP):
curl -s --max-time 4 http://192.168.1.50:37100/health
If the first works but the second doesn't, it's a network/IP issue, not KueSync — re-check that both machines are on the same subnet and that the address is the machine's current one.
Download KueSync or email support@krometis.com.