GitHub - kim0/prettyping-rs

2 min read Original article ↗

CI Release GitHub Release License: MIT

A beautiful, real-time ping graph for your terminal — built in pure Rust.

prettyping helps you spot latency spikes and packet loss at a glance, without the noisy wall of classic ping output.

This project is inspired by the excellent prettyping shell script.

prettyping terminal screenshot

Why prettyping?

  • Instant visual signal: see connection quality trends in one line
  • Pure Rust runtime: no ping | awk subprocess pipeline
  • Built for long runs: clean terminal mode and log-friendly plain mode
  • Cross-platform direction: first-class Linux/macOS, Windows best-effort

Features

  • Unicode or ASCII graph output
  • Optional color and multi-color latency buckets
  • Global stats and recent-window stats
  • Terminal auto-detection with manual override
  • Native flags for count, interval, timeout, payload size, TTL, IPv4/IPv6

Quick start

Install from source

Repo/package name: prettyping-rs
Installed command: prettyping

Run

More examples

# Stop after 10 probes
prettyping -c 10 1.1.1.1

# Faster probing
prettyping -i 0.2 -W 1 8.8.8.8

# Force plain output (good for logs/pipes)
prettyping --noterminal --nounicode --nocolor -c 20 example.com

# Force IPv6
prettyping -6 example.com

Platform support

Platform Status Backend
Linux First-class surge-ping
macOS First-class surge-ping
Windows Best-effort ping-async

ICMP permissions can be restricted by OS/network policy. See Troubleshooting.

Documentation

Compatibility notes

  • Removed legacy passthrough flags: --awkbin, --pingbin (hard error)
  • Unsupported legacy flags: -f, -R, -q, -a (hard error)
  • Legacy -v is accepted and ignored
  • No httping mode
  • No JSON output mode

Exit codes

  • 0 success (including controlled interrupt)
  • 1 runtime/backend/network failure
  • 2 usage/config error

License

MIT