isitme
Is it me? Diagnose whether your network is the problem when a call (Zoom, MS Teams, Google Meet) is acting up.
isitme pings call vendor endpoints plus DNS baselines, runs a
Cloudflare-backed speed test, and prints a verdict:
All clear.=> your network is fineIt's them.=> a specific vendor endpoint is degradedIt's you.=> your baseline or speed test is bad
Install
Requires the system ping binary (present on macOS and Linux).
Usage
Targets
Pinged in order:
| Host | Label | Role |
|---|---|---|
8.8.8.8 |
Google DNS (baseline) | baseline |
1.1.1.1 |
Cloudflare DNS | probe |
zoom.us |
Zoom | vendor |
teams.microsoft.com |
MS Teams | vendor |
meet.google.com |
Google Meet | vendor |
Speed test runs against https://speed.cloudflare.com/__down and
/__up with 25 MB payloads in each direction.
Thresholds
Hardcoded rules. Three-level status per metric: OK / WARN / BAD.
| Metric | OK | WARN | BAD |
|---|---|---|---|
| ping avg | < 150 ms | 150-300 ms | > 300 ms |
| jitter | < 30 ms | 30-50 ms | > 50 ms |
| packet loss | < 1% | 1-4% | >= 5% |
| download | > 3 Mbps | 1-3 Mbps | < 1 Mbps |
| upload | > 1.5 Mbps | 0.5-1.5 | < 0.5 Mbps |
Verdict logic
- If the baseline (
8.8.8.8) is BAD, or the speed test is BAD:It's you.Your network is the likely cause. - Else if any vendor target is BAD while the baseline is fine:
It's them.The degraded vendor's side. - Else:
All clear.
Exit codes
For scripting:
| Code | Meaning |
|---|---|
| 0 | all clear (no WARN, no BAD) |
| 1 | warnings present, or a vendor is BAD |
| 2 | BAD present on your side (you) |
JSON output
isitme --json emits a pretty-printed report:
verdict.label is one of you, vendor, clear.
Development
Pure logic (thresholds, ping output parsing, throughput math) is unit-tested with fixture strings. Network and process-spawn code is a thin wrapper around the tested pure functions.
License
MIT