A blazingly fast CLI tool for testing internet speed uses fast.com v2 api. Written in Zig for maximum performance.

⚡ 1.2 MB binary • 🚀 Zero runtime deps • 📊 Adaptive stability-based stopping

- Tiny binary: Just 1.2 MB, no runtime dependencies

- Blazing fast: Concurrent connections with adaptive chunk sizing

- Cross-platform: Single binary for Linux, macOS

- Smart stopping: Uses a ramp + steady stability strategy and stops on stable speed or max duration

- Linux: x86_64, aarch64 (ARM64)

- macOS: x86_64 (Intel), aarch64 (aka Apple Silicon)

- Windows: x86_64 (release binary zip)

curl -sSL https://raw.githubusercontent.com/mikkelam/fast-cli/main/install.sh | bashinstall.sh currently supports Linux and macOS only (not Windows yet).

Try it from Nixpkgs with nix shell nixpkgs#fast-cli-zig

or get a pre-built binary for example, on an Apple Silicon Mac:

curl -L https://github.com/mikkelam/fast-cli/releases/latest/download/fast-cli-aarch64-macos.tar.gz -o fast-cli.tar.gz

tar -xzf fast-cli.tar.gz

chmod +x fast-cli && sudo mv fast-cli /usr/local/bin/

fast-cli --helpgit clone https://github.com/mikkelam/fast-cli.git

cd fast-cli

zig build -Doptimize=ReleaseSafefast-cli - Estimate connection speed using fast.com

USAGE:

fast-cli [OPTIONS]

OPTIONS:

-h, --help Display this help and exit.

--https Use HTTPS when connecting to fast.com (default)

--no-https Use HTTP instead of HTTPS

-u, --upload Check upload speed as well

-j, --json Output results in JSON format

-d, --duration <usize> Maximum test duration in seconds (effective range: 7-30, default: 30)$ fast-cli --upload

🏓 25ms | ⬇️ Download: 114 Mbps | ⬆️ Upload: 62 Mbps

$ fast-cli -d 15 # Quick test with 15s max duration

🏓 22ms | ⬇️ Download: 105 Mbps

$ fast-cli -j # JSON output

{"download_mbps": 131, "ping_ms": 20.8, "upload_mbps": null, "error": null}The speed test uses a two-phase strategy:

- Ramp phase: increase active workers based on observed throughput.

- Steady phase: lock worker count and estimate authoritative speed.

The test stops when either:

- speed is stable within a configured delta threshold over recent steady samples, or

- max duration is reached.

Optional: use mise to install and run the project toolchain.

mise install

mise exec -- zig build test# Debug build

zig build

# Run tests

zig build test

# Release build

# Consider removing -Dcpu if you do not need a portable build

zig build -Doptimize=ReleaseFast -Dcpu=baselineMIT License - see LICENSE for details.

Not affiliated with Netflix or Fast.com