by shrenixcodes
Find the lag. Understand the cause.
PingSherpa is a local-first Windows desktop utility for diagnosing the network side of a bad gaming session: high ping, jitter, packet loss, Wi-Fi instability, slow DNS and unhappy routing. It tries to answer three questions, in plain English:
- What is wrong with the connection?
- What evidence suggests that?
- What can be safely done about it?
No Python installation is required. The installer ships a standalone Windows build. The installer is unsigned at this stage of the project, so Windows SmartScreen may show a warning on first run — the usual "More info → Run anyway" flow applies.
- RTT to the local gateway, several neutral public endpoints, and an optional user-supplied target (your game server, for example).
- Jitter, defined as mean
|RTT[i] − RTT[i-1]|(Packet Delay Variation). The calculation is documented inanalysis/metrics.pyand never conflated with standard deviation. - Packet loss computed from actual probes, shown alongside the sample count so a 20 % loss over five pings reads differently than over fifty.
- DNS lookup timing and failures through dnspython.
- Route information via Windows
tracert. - Wi-Fi signal, channel, band and link rates via
netsh wlan show interfaces. - Adapter state and traffic counters via psutil.
Nothing probes automatically. The Overview screen opens with "Not measured" placeholders until you click Run Diagnosis. A gaming utility that scans the network every time it opens is exactly what gamers don't want running.
The analysis layer has a small set of evidence-based rules. A rule only fires when two independent signals line up — for example, high gateway RTT and weak Wi-Fi signal. Every finding is tagged with its severity, the measurements that triggered it, likely cause, alternative explanations, a recommended next step and a verification method.
A local Isolation Forest catches unusual observations once enough history has accumulated. The model is CPU-only, trained locally, and refuses to run until it has 50 real samples to work with. Network diagnosis works fully without ML — the anomaly detector is advisory, not required.
Nothing changes on the system without an explicit confirmation dialog. The v0.1 action catalogue is deliberately small:
- Flush the DNS resolver cache.
- Open Windows network / Wi-Fi settings.
- Release and renew the DHCP lease.
Each action is executed with an argument list and shell=False, with
bounded timeouts, and verified by re-measuring afterwards. A zero exit
code is not treated as proof the problem went away.
- Download
PingSherpa-Setup-vX.Y.Z-x64.exefrom the latest release. - Run it. The installer is per-user and does not require administrator rights.
- Launch PingSherpa from the Start Menu.
Uninstalling leaves your history intact under
%LOCALAPPDATA%\PingSherpa\pingsherpa.sqlite. Delete that folder to clear
it, or use the Clear button on the History screen.
- Download
PingSherpa-Portable-vX.Y.Z-x64.zipfrom the same release. - Extract anywhere.
- Run
pingsherpa.exe.
Each release also ships SHA256SUMS.txt. Verify with PowerShell:
Get-FileHash .\PingSherpa-Setup-v0.1.0-x64.exe -Algorithm SHA256- No account, no cloud sync, no telemetry.
- Measurements stay on your computer under
%LOCALAPPDATA%\PingSherpa. - Report export is user-initiated and redacts local-network details.
- Wi-Fi passwords and arbitrary network traffic are never captured.
Requires Python 3.12.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
pytest -q
python -m pingsherpa.mainSee docs/architecture.md for the layering and the design decisions behind the probing and analysis layers.
The Windows release pipeline runs pyside6-deploy-style Nuitka
standalone, wraps the output in an NSIS installer, also produces a
portable ZIP, and attaches SHA-256 checksums to a GitHub release.
Tagging a version triggers the pipeline:
git tag -a v0.1.0 -m "PingSherpa v0.1.0"
git push origin v0.1.0Both workflows live in .github/workflows/. The release workflow validates
that the pushed tag matches [project.version] in pyproject.toml before
it builds anything.
- Windows 10 and 11, x64 only.
- Game server IPs are supplied by the user — PingSherpa does not inspect running games or their private network traffic.
- The installer is unsigned at this stage; expect a SmartScreen prompt.
- Anomaly detection is gated on 50+ real observations.
icmplibcannot always open an ICMP socket on Windows; PingSherpa silently falls back toping.exeoutput parsing.
See THIRD_PARTY_NOTICES.md for the libraries and the icon paths (Lucide, ISC) that ship with PingSherpa.
MIT. See LICENSE.