Discover devices on your network, monitor connectivity, and get a complete health report in minutes.
What it does¶
netglance is a command-line tool for understanding your home network. It finds all connected devices, checks DNS resolution, measures speed and latency, scans for open ports, and gives you a complete health report. Think of it as a diagnostic toolkit for your router and the devices connected to it.
When to use it: When something feels slow, you want to find a mysterious device on your network, diagnose Wi-Fi problems, check if DNS is leaking, or just understand what's on your network and how it's performing.
Multiple ways to use netglance
This guide covers interactive CLI usage. netglance also works as an MCP server for AI assistants, a background daemon, or a dedicated network monitor. See Usage Modes to pick the right setup.
How netglance fits into your workflow¶
netglance adapts to how you work. This guide covers the CLI. Once you're comfortable, explore other modes:
AI Agent (MCP)
Ask Claude or Cursor about your network in plain English.
Background Daemon
Scheduled checks, alerting, and trend data — runs silently on your Mac.
Dedicated Monitor
24/7 on a Raspberry Pi, Mac Mini, or Docker container.
Scheduled Checks
Lightweight cron jobs — no persistent process.
See Usage Modes for the full comparison.
Installation¶
With uv (recommended)¶
If you have uv installed:
uv tool install netglance
This installs netglance globally and updates it easily later.
With pip¶
If you prefer pip:
pip install netglance
Requirements¶
- Python 3.11 or later — check your version with
python --version - Administrator or sudo access — many network operations (ARP scanning, packet capture) require elevated privileges
- macOS, Linux, or WSL — netglance works on Unix-like systems
Verify installation¶
netglance --version
netglance --help
You should see the version and a list of available commands.
First run: Discover your network¶
The easiest way to start is to discover what devices are on your network:
sudo netglance discover
(Use sudo because ARP scanning requires root on most systems.)
What it shows¶
You'll see a table with each device found:
IP Address Hostname MAC Address Vendor
─────────────────────────────────────────────────────────────────────────────
192.168.1.1 router.local aa:bb:cc:dd:ee:ff Apple
192.168.1.42 macbook.local aa:bb:cc:dd:ee:00 Apple
192.168.1.100 tv.local aa:bb:cc:dd:ee:01 Samsung Electronics
192.168.1.101 camera aa:bb:cc:dd:ee:02 Unknown
Columns explained: - IP Address — the device's current network address - Hostname — the device's name on the network (if available via mDNS) - MAC Address — the unique hardware identifier - Vendor — the manufacturer, looked up from the MAC prefix
First run: Network health report¶
Once you know your network, get a complete health check:
netglance report
This runs checks across all modules and gives you a quick status:
Network Health Report
─────────────────────────────────────────────────────────────────
Discover ✓ 8 devices found
DNS ✓ No leaks detected
Ping ✓ All devices responsive (avg 5ms)
Speed ⚠ Download 45 Mbps (expected 100+)
HTTP ✓ No proxies detected
WiFi ⚠ Signal strength: -68 dBm (fair)
TLS ✓ All certificates valid
Traffic ✓ <1 GB today
Status indicators: - ✓ Green — everything is good - ⚠ Yellow — something to pay attention to (maybe not urgent) - ✗ Red — something that needs fixing
Understanding the output¶
netglance uses Rich formatting to make output readable. Here's what to look for:
Colors¶
- Green text or ✓ — healthy, expected result
- Yellow text or ⚠ — warning, degraded but working
- Red text or ✗ — problem, needs investigation
- Blue/cyan text — informational, neutral
Tables and lists¶
Most commands show output as formatted tables with aligned columns. Scan down to find the row you care about. Sort or filter with flags like --filter if available.
Units¶
- Latency: milliseconds (ms). Under 50 ms is good; over 100 ms suggests slowness.
- Speed: Megabits per second (Mbps). Compare against your ISP plan.
- Signal: dBm (decibels). -30 to -50 dBm is excellent; -70+ is weak.
- Bandwidth: bytes (B), KB, MB, GB per time period.
What to try next¶
Once you've run discover and report, explore these commands:
ping — Check latency to a device¶
netglance ping 192.168.1.1
Measures response time. Good for finding which device is slow. See Ping & Latency.
dns — Check DNS health¶
netglance dns
Tests if DNS is working and if your queries are leaking outside your ISP. See DNS.
scan — Find open ports and services¶
sudo netglance scan 192.168.1.100
Discover what services are running on a device. See Port Scanning.
wifi — Analyze wireless environment¶
netglance wifi
Shows signal strength, channel congestion, neighboring networks. See Wi-Fi.
speed — Measure internet speed¶
netglance speed
Tests download/upload via speedtest and gives you consistent metrics. See Speed.
tls — Check TLS certificate validity¶
netglance tls
Verifies HTTPS certificates on your devices and domains. See TLS.
Other useful commands¶
traffic— Monitor real-time bandwidth per hostroute— Trace the path packets take to reach a destinationarp— Watch for ARP spoofing and MITM attackshttp— Detect proxies and analyze HTTP headersbaseline— Snapshot your network state and diff against it laterdaemon— Run continuous monitoring in the backgroundexport— Export results to JSON/CSV for analysis
Run netglance <command> --help to see all options for any command.
Configuration¶
netglance stores two things in ~/.config/netglance/:
config.yaml — Settings¶
Customize defaults here: which interfaces to use, DNS servers to check, speed test server, etc.
netglance.db — Database¶
SQLite database storing historical data: devices seen, latency averages, speed trends. Used by baseline and daemon to track changes over time.
You don't need to edit these manually to get started. They'll be created automatically on first run with sensible defaults.
Getting help¶
netglance --help— Show all available commandsnetglance <command> --help— Show options for a specific command (e.g.,netglance ping --help)- Each guide page — Links and examples for deeper dives
Troubleshooting¶
"Permission denied" on discover/scan¶
Network operations need root. Run with sudo:
sudo netglance discover
"No devices found" on discover¶
- Check that you're connected to the network (wired or Wi-Fi)
- Try specifying an interface:
sudo netglance discover --interface en0 - On Linux, you may need to install
arp-scanornmap:apt-get install arp-scan
"Connection refused" on ping¶
The target device may be offline or blocking ICMP (ping). Try netglance scan or netglance http to probe for services instead.
DNS lookups are slow¶
Check your DNS server: netglance dns --servers 8.8.8.8 1.1.1.1. Compare against your ISP's default.
macOS-specific notes¶
- netglance works with Homebrew Python and system Python on macOS
- Some commands (ARP, packet capture) require
sudo - Use interface names like
en0(Wi-Fi) oren1(Ethernet); find them withifconfig
Next steps¶
- Read the Discover & Inventory guide for deep device enumeration
- Set up
daemonmode for continuous monitoring - Create a baseline with
baseline saveto track changes over time - Explore the API reference if you want to use netglance as a Python library
Happy monitoring!