Signal Lab is a desktop app for Windows and Linux and a server you use from a browser (also as a Docker image). It is built for bringing up shows, installations and networked devices before the rest of the system exists — and for testing the services and APIs they talk to. In one window: an OSC sender and monitor, a UDP/TCP terminal, an HTTP and WebSocket client, an MQTT client and broker, mock servers for the devices and APIs that are not there yet, a network impairment relay, a load tester and a test runner for CI.
What you can do
The interface speaks eleven languages: English, Russian, Spanish, French, German, Portuguese, Chinese, Japanese, Korean, Hindi and Arabic. The documentation is complete in eight of them; in Portuguese, Japanese and Arabic most of its pages are still being translated.
Get it
-
Windows —
Signal.Lab_<version>_x64-setup.exe(just for you, or for everyone) or the.msifrom the latest release. The installers are not code-signed yet, so SmartScreen may ask: More info → Run anyway. -
Linux —
.deb,.rpmor.AppImagefrom the same page. -
Server — on a Linux host with Docker: in one command (it offers to install Docker if it is missing), or by hand:
curl -fsSL https://raw.githubusercontent.com/ProAnima/SignalLab/main/deploy/install.sh | shdocker run -d --name signallab --network host --restart unless-stopped \ -v signallab-data:/data --read-only --cap-drop ALL --security-opt no-new-privileges \ ghcr.io/proanima/signallab:latest docker logs signallab # the access token, on the first start -
Command line —
signallabcomes with the Windows installers, the.deband the.rpm(not the AppImage) and is in the server image; archives for CI are on the release page.
The desktop app looks for signed releases once a day and installs one when you say so. Details: installing and updating, running a server.
Documentation
The documentation is online and, from the release after 1.0.0, inside the app and the server, so it works offline: press F1 on any screen.
Build from source
npm install
npm run tauri dev # the desktop app with live reload
npm run check # the checks CI runs; CI also tours every screen and builds the image
You need Node 22.18 or newer (CI uses 24), Rust as pinned in rust-toolchain.toml
and, on Windows, the MSVC build tools and WebView2 (part of Windows 10 and 11); on
Linux, WebKitGTK 4.1 and the libraries Tauri needs. See
building and running
and the architecture.
Responsible use
Storm, Scanner and Broadcast send real traffic to real hosts, and a broadcast or a
sweep reaches every device on the segment. Point them only at equipment you own or
are authorised to test. Every default unicast target is on loopback — Broadcast's
broadcast, multicast and sweep modes start on the local segment
(255.255.255.255, 239.1.1.1, 192.168.1.0/24); the engine's guard rails — a
sweep of at most 1024 hosts, a beacon of at most 50 000 packets a second — are
guard rails, not permission.
Contributing
Issues, ideas, translations and pull requests are welcome — see CONTRIBUTING.md. Report security problems privately as SECURITY.md describes. Everyone follows the code of conduct.
License
MIT © 2026 ProAnimaStudio — [email protected].