A beautiful, modern TUI-based CLI tool for network speed testing using iperf3. Test your connection against multiple servers with real-time progress, geolocation-aware server ranking, and Catppuccin Mocha visuals.
_
| |
___ _ __ ___ ___ __| |_ __ __ _
/ __| '_ \ / _ \/ _ \/ _` | '__/ _` |
\__ \ |_) | __/ __/ (_| | | | (_| |
|___/ .__/ \___|\___|\__,_|_| \__,_|
| |
|_|
v1.0.0 β network speed test
π Amsterdam, NL
Available Servers
ββββββββββββββββββββββββββββββββββββββββββββββββ
β β π©πͺ Frankfurt Β· Frankfurt am Main, Germany
213.165.53.248:5201 βββ 312 km 42 ms AS207567 Intezio
β πͺπͺ Tallinn Β· Tallinn, Estonia
138.124.100.47:5201 βββ 450 km 61 ms AS207567 Intezio
β π³π± Netherlands Β· Eygelshoven, Netherlands
138.124.105.21:5201 βββ 890 km 38 ms AS207567 Intezio
β π΅π± Warsaw Β· Warsaw, Poland
95.85.254.73:5201 βββ 520 km 55 ms AS207567 Intezio
ββ Navigate Β· Space Select Β· Enter Start Β· n Nearest Β· Esc Cancel Β· r Reset Β· q Quit
bash <(curl -fsSL https://raw.githubusercontent.com/xdearboy/speedra/main/scripts/run-linux.sh)To pass flags, use this form instead:
curl -fsSL https://raw.githubusercontent.com/xdearboy/speedra/main/scripts/run-linux.sh | bash -s -- --nearest
curl -fsSL https://raw.githubusercontent.com/xdearboy/speedra/main/scripts/run-linux.sh | bash -s -- --nearest-asnbash <(curl -fsSL https://raw.githubusercontent.com/xdearboy/speedra/main/scripts/install.sh)npm install -g speedraOr run without installing:
npx speedraDownload the binary from GitHub Releases:
| Platform | File |
|---|---|
| Linux x64 | speedra-linux-x64 |
Note: right now CI builds only Linux x64 binary due current GitHub runner/workflow limitations.
Make it executable (Linux):
chmod +x speedra-linux-x64
./speedra-linux-x64speedra requires iperf3. If it's not installed, speedra will offer to install it automatically on first run:
β iperf3 is not installed or not found in PATH.
Install iperf3 automatically? [Y/n]
Press Enter and speedra will detect your package manager and install iperf3 for you.
Supported package managers: brew, port, apt-get, dnf, yum, pacman, apk, zypper, winget, choco, scoop.
To install manually:
# macOS
brew install iperf3
# Ubuntu / Debian
sudo apt-get install iperf3
# Fedora / RHEL
sudo dnf install iperf3
# Arch Linux
sudo pacman -S iperf3
# Windows (winget)
winget install ESnet.iperf3speedra # launch TUI
speedra --version # print version
speedra -v # same
speedra --nearest # auto-start nearest server test
speedra --nearest-asn # auto-start nearest server in your own ASN (fallback to nearest)
speedra --nearest-asn as207567 # auto-start nearest server matching a specific ASN- Launch β speedra detects your location and ranks servers by distance + latency
- Select β navigate with
ββ, toggle withSpace - Test β press
Enterornto instantly test the nearest server - Results β color-coded download/upload speeds, latency, ASN info
| Key | Action |
|---|---|
β / β |
Navigate server list |
Space |
Toggle server selection |
Enter |
Start tests for selected servers |
n |
Select nearest server and start immediately |
Esc |
Cancel running test |
r |
Reset results |
q |
Quit |
- Auto-install iperf3 β detects your package manager and installs on first run
- Server availability check β offline servers are marked
β offlineand cannot be selected - Geolocation ranking β servers sorted by combined distance + ping score
- Real-time progress β animated bar, live bandwidth, sparkline trend
- Color-coded results β green β₯100 Mbits/s, yellow β₯10, red <10
- Distance indicators β βββ < 500 km, βββ 500β2000 km, βββ > 2000 km
- Standalone binaries β no Node.js required, download and run
27 servers across Europe, Russia, and the US β sorted by distance + latency automatically.
| Name | IP | Port | Location | ASN |
|---|---|---|---|---|
| Frankfurt | 213.165.53.248 | 5201 | Germany | AS207567 Intezio |
| Tallinn | 138.124.100.47 | 5201 | Estonia | AS207567 Intezio |
| Netherlands | 138.124.105.21 | 5201 | Netherlands | AS207567 Intezio |
| Warsaw | 95.85.254.73 | 5201 | Poland | AS207567 Intezio |
| Frankfurt (play2go) | 94.156.114.3 | 5201 | Germany | AS215439 PLAY2GO |
| Kerkrade (play2go) | 144.31.30.177 | 5201 | Netherlands | AS215439 PLAY2GO |
| Amsterdam (Datacamp) | 185.102.218.1 | 5201 | Netherlands | AS60068 Datacamp |
| Frankfurt (Clouvider) | 91.199.118.184 | 5200 | Germany | AS62240 Clouvider |
| Rotterdam (Worldstream) | 185.182.195.76 | 5201 | Netherlands | AS49981 WorldStream |
| Dronten (Serverius) | 5.178.66.18 | 5002 | Netherlands | AS50673 Serverius |
| Paris (Scaleway) | 51.158.1.21 | 5201 | France | AS12876 Scaleway |
| Name | IP | Port | Location | ASN |
|---|---|---|---|---|
| San Jose (Hurricane Electric) | 216.218.207.42 | 5201 | California | AS6939 Hurricane Electric |
| Name | IP | Port | Location | ASN |
|---|---|---|---|---|
| Moscow (MTS) | 212.188.4.173 | 3333 | Moscow | AS8359 MTS |
| Krasnodar (MTS) | 212.188.4.231 | 3333 | Krasnodar | AS8359 MTS |
| Yakutsk (MTS) | 212.188.4.239 | 3333 | Yakutsk | AS8359 MTS |
| Moscow (Hostkey) | 31.192.104.200 | 5201 | Moscow | AS50867 Hostkey |
| Saint Petersburg (Ertelecom) | 109.195.80.230 | 5201 | Saint Petersburg | AS51570 ER-Telecom |
| Yekaterinburg (Ertelecom) | 109.195.96.230 | 5201 | Yekaterinburg | AS51604 ER-Telecom |
| Novosibirsk (Ertelecom) | 109.194.80.230 | 5201 | Novosibirsk | AS43478 ER-Telecom |
| Kazan (Ertelecom) | 109.194.176.230 | 5201 | Kazan | AS41668 ER-Telecom |
| Rostov-on-Don (Ertelecom) | 109.195.224.230 | 5201 | Rostov-on-Don | AS57378 ER-Telecom |
| Irkutsk (Ertelecom) | 109.194.16.230 | 5201 | Irkutsk | AS51645 ER-Telecom |
| Krasnoyarsk (Ertelecom) | 109.195.64.230 | 5201 | Krasnoyarsk | AS50544 ER-Telecom |
| Perm (Ertelecom) | 212.33.230.200 | 5201 | Perm | AS12768 ER-Telecom |
| Ufa (Ertelecom) | 109.195.144.230 | 5201 | Ufa | AS51035 ER-Telecom |
| Samara (Ertelecom) | 85.113.62.252 | 5201 | Samara | AS34533 ER-Telecom |
| Nizhny Novgorod (Ertelecom) | 91.144.184.231 | 5201 | Nizhny Novgorod | AS42682 ER-Telecom |
All tests use 8 parallel TCP streams (-P 8) for accurate throughput measurement.
- Node.js 18+ (npm install) or no requirements (standalone binary)
- iperf3 β auto-installed on first run if missing
- Terminal: 80Γ24 minimum
speedra: command not found after global install:
npm bin -g # find the bin directory
# add it to PATH in ~/.bashrc or ~/.zshrc
export PATH="$(npm bin -g):$PATH"Connection refused / test fails:
- Check firewall allows outbound TCP on port 5201
- Verify server is reachable:
iperf3 -c 213.165.53.248 -p 5201
Terminal looks garbled after crash:
reset