Skip to content

Repository files navigation

InternetSpeedTest.net

InternetSpeedTest CLI - Lightning Fast Speed Testing ⚡

The fastest, most accurate, and privacy-focused internet speed test tool for your terminal!

GitHub releaseLicenseGo Report CardPlatform Support


🌟 Why Choose InternetSpeedTest CLI?

InternetSpeedTest.net brings you the ultimate speed testing experience directly to your command line! Unlike other speed test tools, we prioritize:

🚀 Blazing Fast Performance

  • Lightning speed results in seconds, not minutes
  • Optimized protocols for maximum accuracy
  • Multiple concurrent connections for real-world testing

🔒 Privacy First

  • Zero tracking - Your data stays private
  • No ads or bloatware - Pure speed testing
  • Open source transparency - You can verify everything

🌍 Global Network

  • Worldwide server coverage for accurate local testing
  • Smart server selection based on lowest latency
  • Multiple backend protocols (PHP, Go, Node.js)

🎯 Developer Friendly

  • JSON/CSV output for automation and scripting
  • Comprehensive API for integration
  • Cross-platform binaries for all major systems

🎬 See It In Action

asciicast


✨ Features That Matter

🏓 Comprehensive Testing

  • Ping & Jitter measurements
  • Download speed testing
  • Upload speed testing
  • IP address & ISP detection

📊 Multiple Output Formats

  • Human-readable terminal output
  • JSON for APIs and automation
  • CSV for data analysis
  • Simple mode for scripts

🔧 Advanced Configuration

  • Custom server selection
  • Configurable test duration
  • Network interface binding
  • Proxy and certificate support

🛡️ Enterprise Ready

  • Result sharing & telemetry
  • Custom backend servers
  • Network binding options
  • SSL/TLS configuration

🚀 Quick Start

💾 Download Pre-built Binaries

The fastest way to get started! Download the latest release for your platform:

📥 Download Latest Release

PlatformArchitectureDownload
🖥️ Windowsx64internetspeedtest-windows-amd64.exe
🖥️ Windowsx86internetspeedtest-windows-386.exe
🍎 macOSIntelinternetspeedtest-darwin-amd64
🍎 macOSApple Siliconinternetspeedtest-darwin-arm64
🐧 Linuxx64internetspeedtest-linux-amd64
🐧 LinuxARM64internetspeedtest-linux-arm64

🏃‍♂️ Quick Test

# Download and run immediately
./internetspeedtest
# Quick test with specific server
./internetspeedtest --server 31
# Simple output for automation
./internetspeedtest --simple
# JSON output for APIs
./internetspeedtest --json

📦 Installation Methods

🪟 Windows

Chocolatey:

choco install internetspeedtest

Scoop:

scoop install internetspeedtest

Manual Download:

  1. Download internetspeedtest-windows-amd64.exe from releases
  2. Rename to internetspeedtest.exe
  3. Add to your PATH or run directly

🍎 macOS

Homebrew:

brew install internetspeedtest-net/tap/internetspeedtest

Manual Download:

# Download and install
curl -L -o internetspeedtest https://github.com/internetspeedtest-net/internetspeedtest-cli/releases/latest/download/internetspeedtest-darwin-amd64
chmod +x internetspeedtest
sudo mv internetspeedtest /usr/local/bin/

🐧 Linux

Arch Linux (AUR):

yay -S internetspeedtest-bin

Ubuntu/Debian:

# Download .deb package from releases
wget https://github.com/internetspeedtest-net/internetspeedtest-cli/releases/latest/download/internetspeedtest_linux_amd64.deb
sudo dpkg -i internetspeedtest_linux_amd64.deb

Manual Install:

# Download and install
curl -L -o internetspeedtest https://github.com/internetspeedtest-net/internetspeedtest-cli/releases/latest/download/internetspeedtest-linux-amd64
chmod +x internetspeedtest
sudo mv internetspeedtest /usr/local/bin/

🐳 Docker

# Run directly
docker run --rm internetspeedtest/cli
# With custom options
docker run --rm internetspeedtest/cli --simple --server 31
# Build yourself
docker build -t internetspeedtest:latest .
docker run --rm internetspeedtest:latest

🛠️ Building from Source

Prerequisites

Build Steps

# Clone the repository
git clone https://github.com/internetspeedtest-net/internetspeedtest-cli.git
cd internetspeedtest-cli
# Build for your platform
go build -o internetspeedtest .# Or use the build script for optimized binary
./build.sh
# Cross-compile for other platforms
GOOS=windows GOARCH=amd64 ./build.sh # Windows 64-bit
GOOS=darwin GOARCH=amd64 ./build.sh # macOS Intel
GOOS=linux GOARCH=arm64 ./build.sh # Linux ARM64

Built binaries will be in the out/ directory.


📖 Usage Examples

🎯 Basic Speed Test

# Quick speed test with auto server selection
internetspeedtest
# Test with a specific server (see --list for IDs)
internetspeedtest --server 31
# Test without upload (download only)
internetspeedtest --no-upload
# Test without download (upload only) 
internetspeedtest --no-download

📊 Output Formats

# Simple output (perfect for scripts)
internetspeedtest --simple
# Output: Ping: 25.43 ms Download: 95.23 Mbps Upload: 48.56 Mbps# JSON output (perfect for APIs)
internetspeedtest --json
# Output: {"server":{"name":"..."},"ping":25.43,"download":95230000,"upload":48560000}# CSV output (perfect for data analysis)
internetspeedtest --csv --csv-header
# Output: Server,Ping (ms),Download (bps),Upload (bps)# "Example Server",25.43,95230000,48560000

🔧 Advanced Configuration

# Test for 30 seconds with 5 concurrent connections
internetspeedtest --duration 30 --concurrent 5
# Use specific network interface
internetspeedtest --interface eth0
# Bind to specific source IP
internetspeedtest --source 192.168.1.100
# Use HTTPS for secure connections
internetspeedtest --secure
# Disable ICMP ping (use HTTP only)
internetspeedtest --no-icmp
# Show results in bytes instead of bits
internetspeedtest --bytes

🌐 Server Management

# List all available servers
internetspeedtest --list
# Test against multiple servers
internetspeedtest --server 31 --server 34 --server 40
# Exclude specific servers from auto-selection
internetspeedtest --exclude 12 --exclude 15
# Use custom server list
internetspeedtest --server-json https://example.com/servers.json
# Use local server configuration
internetspeedtest --local-json ./my-servers.json

📈 Telemetry & Sharing

# Enable result sharing
internetspeedtest --share
# Set telemetry level
internetspeedtest --telemetry-level full --share
# Send custom message with results
internetspeedtest --telemetry-extra "Office WiFi Test" --share
# Use custom telemetry server
internetspeedtest --telemetry-server https://myserver.com --share

🔧 Command Line Options

Core Test Options

internetspeedtest [OPTIONS]
OptionDescriptionExample
--server IDUse specific server ID--server 31
--listList all available servers--list
--exclude IDExclude server from selection--exclude 12
--no-uploadSkip upload test--no-upload
--no-downloadSkip download test--no-download
--duration NTest duration in seconds (default: 15)--duration 30
--concurrent NNumber of concurrent connections--concurrent 8

Output Format Options

OptionDescriptionOutput Format
--simpleSimple one-line outputPing: 25ms Download: 95Mbps Upload: 48Mbps
--jsonJSON formatted output{"ping":25,"download":95000000,...}
--csvCSV formatted output"Server",25.43,95000000,48000000
--csv-headerInclude CSV headersAdds column headers to CSV output
--bytesShow results in bytes/s instead of bits/sChanges Mbps to MB/s

Network Configuration

OptionDescriptionExample
--interface NAMEBind to specific network interface--interface eth0
--source IPBind to specific source IP address--source 192.168.1.100
--secureUse HTTPS instead of HTTP--secure
--no-icmpDisable ICMP ping, use HTTP only--no-icmp

Server Configuration

OptionDescriptionExample
--server-json URLUse custom server list--server-json https://example.com/servers.json
--local-json FILEUse local server list file--local-json ./servers.json

Telemetry & Sharing

OptionDescriptionValues
--shareEnable result sharing/telemetryEnable sharing
--telemetry-level LEVELSet telemetry detail leveldisabled, basic, full
--telemetry-server URLCustom telemetry endpoint--telemetry-server https://api.example.com
--telemetry-extra TEXTAdd custom message to results--telemetry-extra "Office WiFi"

Utility Options

OptionDescription
--help, -hShow help message
--versionShow version information
--verboseEnable verbose output
--quietMinimal output mode

📱 Integration Examples

Shell Scripting

#!/bin/bash# Simple speed monitoring script
SPEED=$(internetspeedtest --simple | grep -o '[0-9.]*'| tail -n1)if(( $(echo "$SPEED<50" | bc -l) ));thenecho"WARNING: Upload speed is only ${SPEED} Mbps"# Send notification or restart routerfi

Python Integration

importsubprocessimportjson# Get speed test results as JSONresult=subprocess.run(['internetspeedtest', '--json'], capture_output=True, text=True)
data=json.loads(result.stdout)
print(f"Speed Test Results:")
print(f" Server: {data['server']['name']}")
print(f" Ping: {data['ping']:.1f} ms") print(f" Download: {data['download']/1000000:.1f} Mbps")
print(f" Upload: {data['upload']/1000000:.1f} Mbps")

Monitoring & Automation

# Cron job for hourly speed tests (add to crontab)
0 **** /usr/local/bin/internetspeedtest --csv >>~/speed_log.csv
# Docker monitoring
docker run --rm internetspeedtest/cli --json | jq '.download/1000000'# Network interface testing
internetspeedtest --interface wlan0 --simple
internetspeedtest --interface eth0 --simple

🤝 Contributing

We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes this project better.

🐛 Bug Reports

  • Check existing issues first
  • Provide detailed reproduction steps
  • Include system information (OS, Go version, network setup)
  • Attach relevant logs with --verbose flag

✨ Feature Requests

  • Describe the use case and benefit
  • Provide examples of how it would work
  • Consider backward compatibility

🔧 Development Setup

# Fork and clone your repository
git clone https://github.com/YOUR_USERNAME/internetspeedtest-cli.git
cd internetspeedtest-cli
# Install dependencies
go mod download
# Make your changes# ... edit code ...# Test your changes
go test ./...
./build.sh
# Create a pull request

📝 Code Guidelines

  • Follow standard Go formatting (go fmt)
  • Add tests for new functionality
  • Update documentation as needed
  • Maintain backward compatibility when possible

📄 License & Attribution

This project is released under the MIT License. See LICENSE for details.

🙏 Acknowledgments

This CLI tool is built upon the excellent work of the LibreSpeed project:

We extend our gratitude to the LibreSpeed community and contributors who created the foundation for this tool.

🌟 Special Thanks

  • Federico Dossena and the LibreSpeed team for the original speedtest implementation
  • InternetSpeedTest.net for hosting and maintaining the global server network
  • All contributors who have helped improve this CLI tool

🌐 Related Projects


⚡ Fast • 🔒 Private • 🌍 Global • 💻 Developer-Friendly

Made with ❤️ by the InternetSpeedTest.net team

WebsiteBlogSupport

Powered by InternetSpeedTest.net

About

Command line client for InternetSpeedTest.net

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages