Open Source · Self-Hosted · Free

Does your ISP actually deliver
what you pay for?

WiFi Command runs 24/7 on any always-on machine and gives you the data to find out — hourly ISP speed trends, room-by-room WiFi audits, and a heatmap that shows exactly when your network degrades.

Get started free View on GitHub

The problem

You're paying for speed you might not be getting

Your ISP quotes a number. Your actual experience is different — and it changes by time of day, day of week, where you are in your home, and how your equipment ages. Most people never measure it.

📉

Peak-hour throttling

Many ISPs slow down during evenings and weekends when demand is high. Without data over time, you'll never be able to prove it or challenge it.

📡

WiFi dead zones

Your mesh router claims coverage everywhere. The reality is some rooms are half the speed of others. You won't know which until you measure.

🔄

Did that change actually help?

You moved a mesh node, upgraded your router, or changed your ISP plan. Without before-and-after data, you're guessing whether it made a difference.

🔒

Your data, not theirs

Speed test apps send your results to their servers. WiFi Command stores everything locally. No account, no cloud, no one watching your network performance but you.


How it works

Two types of measurement, one dashboard

WiFi Command separates ISP performance from WiFi performance so you can diagnose each independently.

Auto · Every hour

ISP Performance Baseline

The server runs a speed test via the Ookla CLI every hour, silently, around the clock. This builds your ISP's true performance record over weeks and months.

  • Catches time-of-day patterns
  • Catches day-of-week degradation
  • Establishes your true baseline speed
  • Builds evidence for ISP complaints
Manual · Room by room

WiFi Mesh Audit

Open the dashboard on your phone, walk to a room, select it, and tap Run Test Now. Your browser measures the WiFi speed from that exact physical location back to the server.

  • No app install — just a browser
  • Isolates the WiFi variable
  • Compare rooms side by side
  • Re-audit after equipment changes
Reading the gap: If your server's hourly tests show 400 Mbps from your ISP, but your kitchen measures 80 Mbps over WiFi, your mesh network is losing 320 Mbps between the router and that room. That's the node you need to move or upgrade — not your ISP plan.

Everything in one view

WiFi Command
Trends
Patterns
Room Audits
Latest Download
387
Mbps
Latest Upload
42
Mbps
Latest Ping
11
ms
Last Test
Jun 2, 10am
Studio · Auto
Download Speed (Mbps)
Upload Speed (Mbps)
Ping (ms)

Features

Everything you need to understand your network

Hour & day-of-week patterns

Bar charts and a full 24×7 heatmap reveal exactly when your ISP underdelivers — so you can see the 3pm slump or Sunday evening throttle at a glance.

Room audit history

Every time you do a room sweep, the results are grouped by date. Compare a June audit against a September one to measure the impact of equipment changes.

ISP baseline comparison

Room results are shown as a percentage of your ISP baseline. "Kitchen: 68% of ISP speed" tells you exactly how much that mesh node is costing you.

Degradation alerts

A banner appears when recent auto-tests average below your threshold. Configurable in one line of code.

Custom rooms

Name your locations to match your home. Add, remove, and designate the server room from the dashboard — no config files to edit.

Runs forever, unattended

Docker with restart: always keeps the service alive through container crashes and machine reboots. Set it and forget it.

Data stays local

Results are stored in a SQLite database in a Docker volume on your machine. Nothing leaves your network. No account required.

Any always-on machine

Mac mini, Raspberry Pi, NAS, old laptop — if it runs Docker and has an ethernet port, it works. The server just needs to stay on.


Get started

Up and running in 3 commands

Docker handles everything — the Python app, the Ookla speedtest CLI, and keeping the service alive. You don't need to install anything else.

1

Install Docker

Download Docker Desktop for Mac or Windows, or Docker Engine for Linux. This is the only prerequisite.

2

Clone and start

# Clone the repo git clone https://github.com/jeffcu/wifi_command.git cd wifi_command # Create the persistent data volume (first time only) docker volume create wifi-command_wifi_data # Build and start docker compose up -d --build
3

Open the dashboard

Go to http://<your-server-ip>:8005 from any device on your local network. The first hourly auto-test will run within 60 minutes. Open it on your phone in any room to run a manual WiFi audit immediately.

Your data is safe across updates. Speed test results live in a Docker named volume, not inside the container image. Running docker compose up -d --build to update the app never touches your historical data.