A native macOS menu bar app that displays a colored border around your screen based on tally data from a Ross Carbonite video switcher. Helps ProPresenter operators know when they're live.
- Red border when source is on Program (live)
- Green border when source is on Preview
- Multi-display support - choose which screen shows the border
- TSL 5.0 and 3.1 protocol support with auto-detection
- Source picker - select which switcher input to monitor
- Configurable border thickness (4pt, 8pt, 12pt, 16pt)
- Debug mode - manually trigger red/green borders for testing
- Menu bar icon reflects current tally state
- macOS 15.0 or later
- Apple Silicon or Intel Mac
- Ross Carbonite switcher configured to send TSL data
- Download
LimbusLive-v1.0.0-aarch64.zipfrom Releases - Extract the zip file
- Move
Limbus Live.appto your Applications folder - Right-click the app and select "Open" (required for first launch due to ad-hoc signing)
- Launch Limbus Live - a gray circle appears in your menu bar
- Click the menu bar icon to open the settings popover
- Configure your TSL port (default: 5201)
- On your Ross Carbonite, configure DashBoard to send TSL 5.0 data to this Mac's IP address on port 5201
- Once connected, select your source from the "Monitor Source" dropdown
- The border will appear when your source goes to Program (red) or Preview (green)
- Open DashBoard and connect to your Carbonite
- Go to Configuration > Devices
- Add Device > Type: TSL UMD > Driver: TSL 5
- Set the IP address to your Mac's IP
- Set the port to 5201 (or your configured port)
- Save
| Setting | Description |
|---|---|
| Port | TCP port to listen on (default: 5201) |
| Monitor Source | Which switcher input to watch for tally |
| Show border on Preview | Whether to show green border on preview |
| Border thickness | Width of the border in points |
| Display | Which screen shows the border |
Requires Xcode 16+ and XcodeGen.
# Clone the repository
git clone https://github.com/NorthwoodsCommunityChurch/limbus-live.git
cd limbus-live
# Generate Xcode project
xcodegen generate
# Build
xcodebuild -scheme LimbusLive -configuration Release build
# The app will be in DerivedDataLimbus Live/
├── Project.yml # XcodeGen configuration
├── LimbusLive/
│ ├── LimbusLiveApp.swift # App entry point
│ ├── AppDelegate.swift # Lifecycle management
│ ├── Models/
│ │ ├── TallyState.swift # Tally state enum
│ │ └── AppSettings.swift # UserDefaults persistence
│ ├── Services/
│ │ └── TSLListener.swift # TSL 5.0/3.1 TCP listener
│ ├── Views/
│ │ └── SettingsView.swift # Settings window
│ └── Controllers/
│ ├── StatusBarController.swift # Menu bar management
│ └── BorderOverlayController.swift # Screen border overlay
└── docs/
└── images/ # Screenshots
Limbus Live acts as a TSL UMD server. The Ross Carbonite connects to it as a TCP client and sends tally state updates for all sources. The app:
- Listens on a configurable TCP port
- Auto-detects TSL 5.0 vs 3.1 protocol framing
- Parses tally data for all sources
- Displays a border when the monitored source is on Program or Preview
MIT License - see LICENSE for details.
See CREDITS.md for third-party acknowledgments.
