Your network,
rendered — not just measured.
xping turns ping, traceroute, DNS, TLS, HTTP and Wi-Fi checks into live, colour-coded terminal output — and tells you in plain words why the internet is not working. No root needed, one small dependency, every result also as JSON, CSV or Markdown.
One tool for when the network acts up
Thirty-odd commands share one rendering language and one set of exit codes — the same colours mean the same thing whether you watch one ping or monitor a whole office.
Get a verdict
doctor— why the internet is not working, step by step, in plain wordshealth— a 0–100 score from loss, latency and jitternet— interfaces, gateway, DNS, public IP, and whether a VPN carries your trafficNEWwifi— signal, noise, SNR, channel crowding and what to do
See it over time
monitor— a live dashboard of all your checks, or a background serviceNEW--watch/--until-upwith desktop and webhook alerts--fail-after— one blip is not an outagehistoryandreport— trends and an HTML uptime page
Ask a host about itself
http— status, redirects and a DNS → TLS → TTFB waterfalltls,smtp— certificates, expiry, STARTTLSdnscheck— SPF, DMARC, DKIM, DNSSEC, MX, NSlookup,propagation,blocklist,whois
Follow the path
trace,mtr— per hop, with AS names, also over TCPtcp,udp,mtu,ntp,speedtestportscan,sweep,ipscanacross rangescheck— many checks from one file, one exit code
Same tool, six different questions
A sample of what each command prints. Every diagnostic also takes --json, --csv or --markdown, and its exit code says whether the check passed.
$ xping doctor
$ xping monitor --save --fail-after 3
$ xping trace 1.1.1.1 --asn
$ xping http https://example.com
$ xping dnscheck example.com
$ xping report --since 7d --compare -o weekly.html
Pick your platform
Pure Python plus certifi for TLS — no compiled extensions. Every channel ships the man page; Homebrew, the PPA and COPR also set up tab completion.
Man page and completion for bash, zsh and fish included. Upgrade with brew upgrade xping; the tap follows PyPI releases on its own.
Built for Ubuntu 24.04 LTS (noble) and distributions based on it: Linux Mint 22, Pop!_OS 24.04. Tab completion for bash, zsh and fish is set up for you.
Current Fedora releases and EPEL 10 (RHEL, AlmaLinux, Rocky 10), x86_64 and aarch64. Man page and completion for bash, zsh and fish included.
Any platform with Python 3.10 or newer (pip install xping works too). Then set up tab completion once: xping completion --install.
Newest builds from main: sudo snap install xping --edge.
TCP, HTTP, TLS, DNS, scans and net work out of the box; ping and traceroute use Windows' own ping / tracert. xping deps shows what is available.
- Clone the repository —
git clone https://github.com/mehaskari/xping - Enter the directory —
cd xping - Install —
pip install . - Tab completion —
xping completion --install
No root, no setcap
ping, trace and mtr use the unprivileged ICMP sockets of macOS and Linux, so they run as you. Run as root and xping uses raw sockets; with neither, the system ping and traceroute.
First steps
xping doctor — is the internet working?xping 1.1.1.1 — ping, then suggestionsxping check --init — your own checks
Every command, every option
The same reference is in man xping and xping COMMAND --help.