Skip to content

SimonWai/speedtestclient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSpeedTest CLI Client

A Python CLI tool that tests LAN speed against an OpenSpeedTest server.

Requirements

  • Python 3.14+
  • uv

Usage

bin/run

This 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 5

Or run directly with a custom server URL:

uv run python main.py --url http://your-server:4000

Options

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

Example Output

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.

Testing

bin/test

Pass extra pytest flags as needed:

bin/test -v

How It Works

The 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.

About

Unofficial CLI client for "SpeedTest by OpenSpeedTest"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors