Next generation CLI for testing internet bandwidth using speedtest.net
Project description
speedtest-cli
Next generation CLI for testing internet bandwidth using speedtest.net
Rebuilt for modern Python 3.12+
Getting started
Installation
PyPI
You can install speedtest-cli-ng from PyPI using either standard Python packaging tools or uv.
Using pip
If you have pip only. You can also use pipx to run the tool without installing.
pip install speedtest-cli-ng
Using uv
You can run the tool instantly without explicitly managing environments:
uvx speedtest-cli-ng
or install it globally:
uv tool install speedtest-cli-ng
Usage
To view the available options, run the help command:
speedtest-cli --help
usage: speedtest-cli [-h] [-l] [-s SERVER] [--no-download] [--no-upload]
[-t THREADS | --single] [--share] [--bytes] [--json]
[--debug] [--version]
Next generation CLI for testing internet bandwidth using speedtest.net.
options:
-h, --help show this help message and exit
Core Options:
-l, --list Show available speedtest.net servers sorted by distance. (default: False)
-s SERVER, --server SERVER
Specify a server id to test against. (default: None)
Transfer Modifiers:
--no-download Do not perform the download test. (default: False)
--no-upload Do not perform the upload test. (default: False)
-t THREADS, --threads THREADS
Set the number of concurrent connections instead of using downloaded config. (default: None)
--single Use one concurrent connection. Simulates a typical file transfer. (default: False)
Output Options:
--share Generate and provide a URL to the speedtest.net share results image. (default: False)
--bytes Display values in bytes instead of bits. Does not affect image generation or JSON output. (default: ('bit', 1))
--json Suppress verbose output, only show basic information in JSON format. Speeds listed in bit/s. (default: False)
Miscellaneous Options:
--debug Show verbose debugging output. (default: False)
--version show program's version number and exit
Development
Requirements
- Python 3.12+
- uv 0.11+
Setup project
This will install project's dependencies. Keep in mind that there are no runtime dependencies in production.
uv sync
Basic workflow
# Run format
uv run ruff format --check .
# Run lint
uv run ruff check .
# Run typecheck
uv run pyright
# Run tests
uv run pytest
Building
Build both sdist and wheel package:
uv run build
The output will be in the dist/ directory.
Acknowledgments
This project is a heavily refactored and modernized fork of the original speedtest-cli created by Matt Martz. While the codebase has been completely rewritten to support modern Python standards, concurrent thread pools, and memory-safe streaming, it was built upon the foundational concepts of the original tool.
License
This project is licensed undeer the Apache License 2.0.
Made with 🩵 by Michał Korczak
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file speedtest_cli_ng-0.2.0.tar.gz.
File metadata
- Download URL: speedtest_cli_ng-0.2.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1aa0c5df8dfcf1c4ef1312e1a86d9226e6cbad2e040bd61945fb12475613a43
|
|
| MD5 |
fb5201e78adb0bf0e6e7c2d42731f6b4
|
|
| BLAKE2b-256 |
4d9c5c21794d7f899135c4254be13c77abac6c8c24a9a92a08811c549be2aa3e
|
File details
Details for the file speedtest_cli_ng-0.2.0-py3-none-any.whl.
File metadata
- Download URL: speedtest_cli_ng-0.2.0-py3-none-any.whl
- Upload date:
- Size: 26.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ba60614ea9b08bcf97b01b6f9acf67148efdc56c5454adff764da5ceaa6a04e
|
|
| MD5 |
a40a0df32d6c93d1303df77de272807f
|
|
| BLAKE2b-256 |
c779685fe45f952e299f5e9f149109c2b70da05ccba11bfd60c4a160c37d93fb
|