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
Download: 94.6 Mbps
21.47 ms
Upload: 19.4 Mbps
24.85 ms
RPM: 847
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
1General error
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 feed our ISP and infrastructure reports, exactly like web tests. Published open datasets are always aggregated so that they do not identify anyone.
  • The CLI never uses your device's location permission; your location is estimated from your IP address at city and region level only. Precise coordinates are never collected.
  • As with our web tests, your IP address is stored with the test record on access-restricted systems for security and service quality. It never appears on your result page or in open datasets, and partner reports show it only in shortened form (for example 95.6.X.X).
  • We also record the app version, your operating system, your interface language, and whether the test was started by hand or by a scheduled job.
  • Once a day the CLI checks whether a newer version is available. The check sends only the app version, operating system and CPU architecture; there is no identifier and your IP address is never written to these counts. Set the HIZTESTI_NO_UPDATE_CHECK=1 environment variable to turn the check off entirely.