A Python CLI tool that tests LAN speed against an OpenSpeedTest server.
- Python 3.14+
- uv
bin/runThis runs a speed test against http://192.168.0.1:4000 with default settings (6s duration, 6 streams, 10 ping samples).
You can pass additional options:
bin/run --duration 12 --streams 3 --ping-count 5Or run directly with a custom server URL:
uv run python main.py --url http://your-server:4000| Option | Default | Description |
|---|---|---|
--url |
— | OpenSpeedTest server URL |
--duration |
6 | Test duration in seconds |
--streams |
6 | Number of parallel streams |
--ping-count |
10 | Number of ping samples |
Testing against http://192.168.0.1:4000
Duration: 6s | Streams: 6 | Ping samples: 10
Ping: 2.34 ms (jitter: 0.45 ms)
Download: 942.67 Mbps
Upload: 856.23 Mbps
Ping: 2.34 ms | Jitter: 0.45 ms | Download: 942.67 Mbps | Upload: 856.23 Mbps
The tool displays progress information to stderr and outputs the final results in a machine-readable format to stdout.
bin/testPass extra pytest flags as needed:
bin/test -vThe tool uses the OpenSpeedTest HTTP protocol:
- Ping: GET
/— measures round-trip latency and jitter - Download: GET
/downloading— parallel streaming downloads to measure throughput - Upload: POST
/upload— parallel 1MB chunk uploads to measure throughput
Speed is calculated as (total_bytes / elapsed_ms) / 125 Mbps using the same formula as OpenSpeedTest.