Install
openclaw skills install @voronindenis5/internet-outage-warlordUse when a home internet connection drops or degrades and someone needs to figure out WHAT failed (modem, router, ISP, DNS, Wi-Fi, device), what to do right now, and how to prove it to the ISP. Runs layered diagnostics (gateway/DNS/public-IP probes), builds an evidence log with timestamps, and generates an ISP complaint package — turning 'the internet is down' from a guessing game into a scoped fault with a paper trail.
openclaw skills install @voronindenis5/internet-outage-warlordHome internet goes down. The household revolts. Someone (you) is deputized to fix it. The failure can be in seven different places — your device, Wi-Fi radio, router LAN, router WAN, DNS resolver, ISP last-mile, or a regional/platform outage — and the difference between them is the difference between "reboot the router" and "call the ISP with evidence", or "do nothing, it's Cloudflare".
Internet Outage Warlord does three things:
WIFI, LAN, ROUTER-WAN, DNS, ISP, PLATFORM, UPSTREAM-COMPLETE), not vibes.The core principle: an outage you can't scope, you can't fix — and an outage you can't document, you can't claim.
diagnose in degrade mode (it logs latency/jitter/loss, not just up/down)Don't use for: enterprise networks with NOC teams (different tooling), fiber cuts you can physically see (call the ISP immediately), or suspected compromise/hacking of your network (different threat model — this is availability, not security).
diagnose the moment connectivity degrades. The script probes in order, stopping at the first hard failure layer:
link (interface up? IP?) → gateway ping → DNS resolution of a stable domain → ping a public anycast IP (1.1.1.1, 8.8.8.8) → HTTP HEAD to 2–3 majors. Each hop gets logged with a timestamp to outage_log.jsonl.report — the evidence package: outage windows extracted from the log (≥2 consecutive failed probe sets), total downtime, per-window scope, equipment inventory, and a filled-in ISP complaint letter (with EU/UK/US regulatory hooks where relevant).monitor mode — run from cron every 1–5 min; silent while healthy, logs and (optionally) runs a notification command on state change. This is how the warlord catches the 3AM outages you sleep through and the intermittent degradation that never shows up when the technician visits.| Verdict | Meaning | First action |
|---|---|---|
DEVICE | your machine's link is down (no IP / airplane mode / cable) | fix NIC / Wi-Fi toggle / cable |
WIFI | gateway unreachable from this device only (other devices fine per probe history) | toggle Wi-Fi, forget/rejoin network, check band steering |
LAN | gateway reachable, but router's upstream dead from inside | log into router, check WAN status page |
ROUTER-WAN | router up but no public connectivity, DNS ok via alternate | power-cycle modem → router (order matters), check coax/fiber/DSL line stats |
DNS | IPs reachable, names don't resolve | switch resolver to 1.1.1.1/8.8.8.8 temporarily; flush local cache |
ISP | line-side failure (gateway ok, public unreachable via all resolvers) | report to ISP with log; check ISP status page via mobile data; claim SLA credit if contractual |
PLATFORM | one site/service down, rest of internet fine | wait it out; check the platform's status page; don't touch your network |
UPSTREAM-OK | everything reachable — problem is app-specific or too brief to catch | run in monitor mode to catch intermittents |
python3 scripts/outage_warlord.py diagnose # scope the fault now
python3 scripts/outage_warlord.py diagnose --degrade # slow-but-up mode: latency/loss stats
python3 scripts/outage_warlord.py report # evidence log → ISP complaint package
python3 scripts/outage_warlord.py monitor --interval 120 # cron mode, logs state changes
python3 scripts/outage_warlord.py report --sla-credit --contract "100Mbps, SLA 99.5%" # credit claim
Log: outage_log.jsonl beside the script (override --log). Network probes use only stdlib (socket, subprocess ping) — works on Linux/macOS; on Windows use WSL or the --no-ping fallback (HTTP-only probes).
report generates:
setup, entered once) — proving it's not "your router" before the ISP blames itreferences/isp-evidence-playbook.md for jurisdiction specifics.diagnose, act second.diagnose on a healthy connection prints UPSTREAM-OK and appends to the logdiagnose with network disconnected (or --simulate isp) prints a scoped verdict + prescriptionreport after ≥2 logged failures prints outage windows + complaint lettermonitor --interval N writes only on state change (healthy → failing → healthy = 2 lines)--simulate dns|isp|platform|wifi (for demos/tests without breaking anything)"Internet is down" at home:
python3 scripts/outage_warlord.py diagnose
# → VERDICT: ISP (gateway ok, 100% loss to 1.1.1.1 and 8.8.8.8)
# → actions: 1. mobile-data check of ISP status page 2. power-cycle modem only ...
python3 scripts/outage_warlord.py monitor --interval 120 # passive until it recovers
python3 scripts/outage_warlord.py report --sla-credit # when it's back
Chronic evening slowdowns:
python3 scripts/outage_warlord.py diagnose --degrade --label evening
# latency/loss table for the evening window; congestion pattern = ISP capacity issue
python3 scripts/outage_warlord.py report # trend: 20:00-23:00 latency 4x baseline
Is Discord down or is it me?
python3 scripts/outage_warlord.py diagnose --target discord.com
# PLATFORM verdict if everything else probes fine
MIT (see LICENSE). No warranty; network probes run on your own equipment against your own connection.