A native macOS menu bar app for managing MistServer. Lives in your menu bar as a status icon with a dropdown menu — no windows, no dock icon. Start/stop the server, manage streams, monitor clients, control pushes, and view logs without opening a browser.
MistServer is required. MistTray is a companion to MistServer's web UI, not a replacement. It talks to MistServer's JSON API on localhost:4242.
brew tap ddvtech/mistserver
brew install --cask misttrayThis also installs MistServer as a dependency.
Grab the latest .dmg from Releases, drag MistTray.app to Applications, and install MistServer separately:
brew tap ddvtech/mistserver
brew install mistserver
brew services start mistservergit clone https://github.com/DDVTECH/MistMacTray.git
cd MistMacTray
xcodebuild -project MistTray.xcodeproj -scheme MistTray -configuration Debug \
-derivedDataPath build/ CODE_SIGNING_ALLOWED=NO build
open build/Build/Products/Debug/MistTray.appRequires Xcode 16+ and macOS 12.0+.
MistTray talks to MistServer's JSON API on localhost:4242 and uses brew services for server lifecycle (start/stop/restart). It polls every 10 seconds while the server is running. Built with pure Swift and AppKit.
- Server control — start, stop, restart MistServer via
brew services; system info (CPU, RAM, load) in the status section - Streams — create, edit, delete, nuke streams; manage stream tags
- Pushes — start/stop pushes to external targets (RTMP, SRT, etc.); manage auto-push rules
- Clients — connected viewers grouped by stream; disconnect individual clients, kick all viewers, force re-authentication
- Protocols — see which protocols are active; manage configuration via web UI link
- Logs — last 15 server log entries in a submenu, color-coded by severity
- Configuration — backup, restore, save, factory reset; preferences for auto-update, launch at startup, and notifications
- Auto-refreshes every 10 seconds while MistServer is running
Releases are automated via GitHub Actions. The workflow archives, signs, notarizes, and publishes a .zip (for Homebrew) and .dmg (for direct download) to GitHub Releases.
To release a new version:
git tag v1.0.1
git push origin v1.0.1The git tag version is automatically injected into the app bundle — no need to manually edit version numbers in the Xcode project.
Set these in Settings > Secrets and variables > Actions:
| Secret | What it is |
|---|---|
CERTIFICATES_P12 |
Base64-encoded Developer ID Application .p12 (base64 -i cert.p12 | pbcopy) |
CERTIFICATES_P12_PASSWORD |
Password used when exporting the .p12 |
TEAM_ID |
10-character Apple Developer Team ID |
DEVELOPER_ID |
Certificate common name, e.g. DDVTech (AB12C3D4E5) |
APPLE_ID |
Apple ID email used for notarization |
APP_SPECIFIC_PASSWORD |
App-specific password from appleid.apple.com |
HOMEBREW_APP_ID |
GitHub App ID for the DDVTech CI app (used to auto-update the Homebrew cask) |
HOMEBREW_APP_PRIVATE_KEY |
Private key (.pem) for the DDVTech CI GitHub App |
Also enable Settings > Actions > General > Workflow permissions > Read and write permissions so the workflow can upload release assets.
If you haven't created the certificate yet:
- Open Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority (save to disk)
- Go to developer.apple.com/account/resources/certificates > click + > select Developer ID Application > upload the CSR
- Download and double-click to install the certificate
- In Keychain Access, right-click the installed certificate > Export > save as
.p12with a password - Base64 encode it:
base64 -i DeveloperID.p12 | pbcopy - Paste into the
CERTIFICATES_P12GitHub secret