Skip to main content
This quickstart guide will help you run your first network speed test using Universal Speedtest CLI.

Prerequisites

You’ll need one of the following:
  • A system with Go 1.26+ installed (for Go installation method)
  • A Unix-like system with curl and bash (for installer script method)
  • Ability to download and execute binaries from GitHub Releases

Installation

Choose your preferred installation method:

Verify installation

Confirm the installation was successful:
unispeedtest --help
You should see usage information for the command.

Run your first speed test

1

Run the basic command

Execute the speed test with default settings:
unispeedtest
You’ll see real-time progress as the tool runs through each test phase:
  • Initialization and metadata fetch
  • Download measurements (4 test sizes)
  • Upload measurements (4 test sizes)
  • Packet loss testing (1000 requests)
2

View your results

After the tests complete, you’ll see a comprehensive report:
======================================================
         YOUR INTERNET SPEED REPORT
======================================================

Overall Download: 225.14 Mbps
Overall Upload:   102.87 Mbps

Latency & Jitter:
  Unloaded Latency: 12.41 ms (Jitter: 1.98 ms)
  Down-Loaded Latency: 35.09 ms
  Up-Loaded Latency: 41.22 ms

Packet Loss:
  0.1% (Received 999 / 1000)

Network Quality Score:
  Video Streaming: Good  |  Online Gaming: Good  |  Video Chatting: Good

Server & Connection:
  Server Location: Tokyo
  Your Network:    KDDI CORPORATION (AS2516)
  Your IP address: 203.0.113.10
======================================================
The report includes:
  • Download/Upload speeds - 90th percentile throughput
  • Latency metrics - Unloaded, loaded, and jitter
  • Packet loss - Percentage and request counts
  • Quality scores - Assessment for common use cases
  • Network metadata - Server location and ISP info
3

Try JSON output

For automation and scripting, use the -json flag:
unispeedtest -json
Example output:
{
  "download_mbps": 225.14,
  "upload_mbps": 102.87,
  "latency_ms": {
    "unloaded": 12.41,
    "loaded_down": 35.09,
    "loaded_up": 41.22,
    "jitter": 1.98
  },
  "packet_loss_percent": 0.1,
  "server_colo": "Tokyo",
  "network_asn": "AS2516",
  "network_as_org": "KDDI CORPORATION",
  "ip": "203.0.113.10"
}
Use -pretty for formatted JSON output with indentation.

Common use cases

Monitor network quality

Run periodic tests to track your connection performance over time
unispeedtest -json >> speed_tests.jsonl

Troubleshoot connectivity

Identify issues with throughput, latency, or packet loss
unispeedtest

Automate testing

Integrate into scripts or CI/CD pipelines
if unispeedtest -json | jq -e '.download_mbps < 50'; then
  echo "Slow connection detected"
fi

Log to monitoring systems

Send results to your observability platform
unispeedtest -json | your-monitoring-tool

Next steps

Learn more about usage options

Explore all command-line options and output formats

Understand the metrics

Learn how each metric is measured and what it means

Automate with JSON

See examples of JSON output integration and automation

Build docs developers (and LLMs) love