HIZTESTI.COM
HIZTESTI CLI

Measure your server's connection from the command line

HIZTESTI CLI measures download, upload, latency and connection quality without a browser. It reports in JSON, CSV or Prometheus format.

hiztesti
HIZTESTI CLI by NETMETRIK
Server: ALASTYR · İzmir (id: 1)
ISP: Türk Telekom (95.6.X.X)
Latency: 14.32 ms (jitter: 1.08 ms)
Download: 94.6 Mbps (data used: 118.3 MB)
21.47 ms (jitter: 2.31 ms)
Upload: 19.4 Mbps (data used: 24.6 MB)
24.85 ms (jitter: 3.02 ms)
RPM: 847 (responsiveness)
Bufferbloat: 7 ms
Result: hiztesti.com/result/x7k2q9

What it is for

To measure a server's connection you have to measure it from that machine. A browser test only tells you about the connection of the desktop you are sitting at; it says nothing about the line in your data centre. HIZTESTI CLI fills that gap: one command on the machine you are already connected to over SSH, and a result you can feed straight into other tools.

Confirm a line has genuinely recovered after an outage
Keep a record of the speed your provider committed to
Measure a newly provisioned server before accepting it
Track speed and latency over time on a Grafana dashboard

What it measures

The same measurement engine as the web interface: five metrics, one command.

Download / Upload

Data transferred per second (Mbps)

Latency (ping)

Round-trip time, with jitter, low and high values

Loaded latency

Latency while the line is saturated — this is what decides video calls and gaming

Bufferbloat

How much latency swells once the line fills up

RPM

RFC 9097 responsiveness: round trips per minute under load

The measurement method is the same as the hiztesti.com web interface and has been published academically. Measuring the same line from the browser and the command line should give you comparable figures.

Install

Pick your package manager; new versions arrive through your usual update flow.

macOS
brew tap netmetrik/hiztesti
brew update
brew install hiztesti

# to uninstall
brew uninstall hiztesti
brew untap netmetrik/hiztesti

Installing via Homebrew keeps you on the latest version; updates arrive through `brew upgrade`. The same commands work with Homebrew on Linux.

Download

Prebuilt binaries are published on GitHub with every release, together with sha256 checksums.

Usage

hiztesti                      # measure and display
hiztesti -L                   # server list (id · city · country · capacity)
hiztesti -s 2                 # measure against a specific server by id
hiztesti --simple             # latency, download and upload only
hiztesti --no-share           # do not submit the result, no link
hiztesti --help               # all options

Server selection is automatic by default: candidates are measured and the most suitable one is chosen. To pick one yourself, list them with `-L` and pass its id to `-s`. Ids are stable; server names can change.

Using it with monitoring systems

The CLI can report in machine-readable formats. Prometheus output can be written straight into node_exporter's textfile collector; in continuous mode it measures at the interval you set and appends one JSON record per line.

# node_exporter textfile collector (from cron)
hiztesti -f prometheus > /var/lib/node_exporter/hiztesti.prom

# continuous mode — every 15 minutes, one JSON record per line
hiztesti --interval 900 -f jsonl >> /var/log/hiztesti.jsonl

When a measurement fails the Prometheus output does not stay silent: it reports `up=0` along with the reason. Otherwise the collector would keep reading the previous file and your dashboard would show everything as fine.

Each phase ends early once the measurement settles, which cuts data usage noticeably for an agent that runs on a schedule. Use `--full-duration` when you need fixed-length phases.

Exit codes

Exit codes are separated so that scripts can tell "no network" apart from "server is slow".

CodeMeaning
0Success
2Usage error
3Network unreachable
4Download failed
5Upload failed
6Timeout
130Interrupted

Privacy

  • When a test finishes the result is saved to a shareable page and you get a link. Run with --no-share to opt out.
  • Command-line measurements are excluded from consumer statistics, ISP reports and published datasets.
  • The CLI sends no location data.