Diagnose whether your LAN is stable enough for realtime streaming. Measures latency, jitter and low-percentile throughput via browser - no install on the second device, no telemetry.
- What SpeedBand does
- Why not iperf3?
- Use cases
- Results
- Quick start
- Connecting from another device
- Firewall
- Reading results
- Reports
- Recommended test conditions
- License
Runs a small HTTP server on your machine. Another device opens the page in a browser and runs a full test sequence:
- Latency and jitter (
/api/ping) - HTTP download throughput (
/api/download) - HTTP upload throughput (
/api/upload) - WebSocket realtime bitrate ladder (
/api/ws)
All traffic stays inside the LAN. Results include a stable bitrate range with headroom levels, a quality label and a bitrate ladder breakdown.
Peak speed is not a safe streaming bitrate. SpeedBand uses low-percentile throughput, jitter and stall detection to estimate a safe operating range.
iperf3 requires installation on both devices and reports raw TCP throughput - not what matters for streaming.
SpeedBand runs as a single binary or go run. The second device only needs a browser. It measures what streaming actually uses: low-percentile throughput, jitter, stall detection and realtime bitrate stability across a stepped ladder. The output is a safe bitrate range with headroom levels, not just a peak number.
- Game and VR streaming (Moonlight/Sunshine, Steam Link, Air Link, Virtual Desktop, ALVR)
- NAS and media transfer checks
- Wi-Fi diagnostics
- LAN testing between PC, phone, tablet, laptop, headset or Steam Deck
- Finding whether peak throughput hides jitter, stalls or unstable low-percentile results
Download the binary for your platform from the Releases page and run it.
Windows: open a terminal in the folder with the downloaded file and run:
.\speedband-windows-amd64.exeLinux:
chmod +x speedband-linux-amd64
./speedband-linux-amd64macOS:
chmod +x speedband-macos-arm64 # Apple Silicon
./speedband-macos-arm64
# or for Intel Macs:
chmod +x speedband-macos-amd64
./speedband-macos-amd64Open the LAN URL printed in the terminal on any device in the same network. No app install required on the second device - browser only.
Windows:
go build -o speedband.exe ./cmd/speedbandLinux / macOS:
go build -o speedband ./cmd/speedband| Flag | Default | Description |
|---|---|---|
--host |
0.0.0.0 |
Listen address |
--port |
8080 |
Listen port |
--open |
false |
Auto-open browser on start |
--debug |
false |
Verbose logging |
- Start SpeedBand on the host machine.
- Use the LAN URL printed in the console, e.g.
http://192.168.1.25:8080. - If
.localhostname does not resolve, use the numeric IP. - On Meta Quest, open the URL in the headset browser.
The console prints all LAN IP candidates and marks the primary guess. Docker, VM and VPN adapters are filtered or flagged where possible.
If the page does not open from another device:
- Confirm both devices are on the same subnet.
- Windows: when prompted, allow access on Private networks. If not prompted, allow
speedband.exeorgo.exein Windows Firewall for Private networks. - Linux: ensure the port is open (
sudo ufw allow 8080/tcpfor UFW-based distros). - macOS: allow incoming connections when prompted by the OS firewall dialog.
- Try the numeric IP instead of
.local. - Disable VPN temporarily.
SpeedBand listens on 0.0.0.0 by default. Run it only on a trusted local network.
Bitrate range levels:
| Level | Meaning |
|---|---|
| Very safe | Conservative estimate with extra headroom |
| Recommended | Practical stable operating range |
| Risky upper | May work; showed reduced headroom or spikes |
| Avoid | Not recommended without real-app validation |
Quality labels:
| Label | Meaning |
|---|---|
| Excellent | Strong low-percentile throughput, low jitter |
| Good | Suitable for most realtime tasks |
| Acceptable | Usable; leave headroom |
| Risky | Unstable enough to require caution |
| Unstable | Not suitable for high bitrate realtime use |
- Download JSON - saves report on the client device.
- Save to server - sends report to the machine; saves a
.logfile inreports/under the server working directory.
UI supports English and Russian. Reports use the language selected in the browser at save time.
- Connect the PC to the router with Ethernet.
- Use 5 GHz or 6 GHz Wi-Fi for the second device.
- Close active downloads, cloud sync and game updates.
- Run the Full stability test before choosing a high bitrate.
- Repeat 2–3 times; trust the more conservative result.
MIT


