Live CPU, RAM, disk, Docker containers, network throughput, and service health — always visible on your desktop. No browser tabs, no Grafana setup, no cloud dependencies. Just your server stats, embedded in your wallpaper.
Live CPU per-core, RAM breakdown, disk usage, network I/O, load average, uptime, and top processes. Visual progress bars with color-coded thresholds.
ext: sysmon summary
Running container count, status indicators, resource usage per container, image names. Spot crashed containers at a glance.
ext: docker status
Per-interface bandwidth (RX/TX), total throughput, packet counts. Track your NAS transfers, VPN traffic, or WAN saturation in real-time.
ext: sysmon net
Run any shell command and show live output in a cell. Perfect for ping, curl health checks, or custom monitoring scripts.
i: ping -c1 nas.local | tail -1
Monitor HTTP endpoints and display status codes + response times. Green for up, red for down. Perfect for self-hosted service health.
i: curl -so /dev/null -w "%{http_code}" http://pi.hole
Monitor drive health, temperature, and power-on hours. Get early warning before drives fail in your NAS or server.
i: smartctl -A /dev/sda | grep Temp
Save as homelab.csv and run with dotnet run -- homelab.csv --desktop
| A | B | C | D |
|---|---|---|---|
| 🖥️ SERVER STATUS | ext: sysmon cpu | ext: sysmon ram | ext: sysmon disk |
| 📡 Network | ext: sysmon net | ⏱️ Uptime | ext: sysmon uptime |
| 🐳 DOCKER | ext: docker status | ext: docker stats | |
| 🌐 Services | i: curl -so /dev/null -w "%{http_code}" http://nas:5000 | i: curl -so /dev/null -w "%{http_code}" http://pi.hole | i: curl -so /dev/null -w "%{http_code}" http://plex:32400 |
| 🔥 Top Processes | ext: sysmon procs | ||
| 📊 Load Average | ext: sysmon load | 🌡️ Temp | i: cat /sys/class/thermal/thermal_zone0/temp | awk '{printf "%.1f°C",$1/1000}' |
No Grafana, no Prometheus, no InfluxDB, no YAML config files. One binary, one CSV, one command. Monitoring in 30 seconds.
Stats live on your wallpaper — visible even when all windows are closed. Glance at server health without switching apps or opening a browser.
~15MB RAM, negligible CPU. Won't compete with your VMs, containers, or media transcoding for resources.
No cloud accounts, no telemetry, no internet required. Runs entirely local — perfect for air-gapped networks and privacy-focused setups.
Any command that outputs text can become a monitoring cell. Custom scripts, SNMP queries, API calls — if bash can do it, QuickSheet can show it.
Your dashboard layout is just a CSV file. Version it in git, sync across machines, diff changes. No opaque database or JSON blobs.
| Feature | QuickSheet | Grafana + Prometheus | htop / btop | Conky |
|---|---|---|---|---|
| Setup time | 30 seconds | 30+ minutes | Instant | 5-10 minutes |
| Visible on wallpaper | ✓ Native | ✗ Browser only | ✗ Terminal only | ✓ Native |
| Custom commands as data | ✓ Any shell cmd | ~ Via exporters | ✗ | ✓ Lua/shell |
| Editable cells (notes/labels) | ✓ Full spreadsheet | ✗ Read-only | ✗ | ✗ |
| Docker/service monitoring | ✓ Extensions | ✓ cAdvisor | ✗ | ~ Scripts |
| Memory usage | ~15 MB | 500+ MB | ~5 MB | ~20 MB |
| Dependencies | None (single binary) | Docker, DB, exporters | None | X11/Lua |
| Cross-platform | ✓ Linux + Windows | ✓ Docker | ✓ Linux/macOS | Linux only |
| Spreadsheet formulas | ✓ Sum, Product | ✗ | ✗ | ✗ |
Track disk temps, SMART status, ZFS pool health, and Samba/NFS connection count on your file server's wallpaper.
i: zpool status -x | head -1
Show blocked queries, total DNS queries, clients, and ad percentage. Keep your ad-blocker stats always visible.
i: curl -s http://pi.hole/admin/api.php | jq .ads_blocked_today
List all running containers with status, port bindings, and restart counts. Spot problems before users notice.
i: docker ps --format "{{.Names}}: {{.Status}}" | head -8
Plex/Jellyfin active streams, transcoding count, library size. Know what's playing without opening the web UI.
i: curl -s "http://plex:32400/status/sessions" | grep -c Video
Show WireGuard/OpenVPN active peers, data transferred, and last handshake time. Monitor your tunnel health.
i: wg show wg0 | grep "latest handshake"
Monitor UPS charge level, load percentage, estimated runtime, and input voltage via NUT (Network UPS Tools).
i: upsc myups@localhost battery.charge
# Clone and build git clone https://github.com/cemheren/QuickSheet.git cd QuickSheet dotnet run -c Release -- homelab.csv --desktop
Create your homelab.csv with monitoring cells, then launch. Refreshes every 5 seconds automatically.
Join the homelabbers who replaced their browser-tab dashboards with a zero-config wallpaper monitor.
⭐ Star on GitHub 📦 Get sysmon Extension