Already have it? Skip ahead. Otherwise: dotnet.microsoft.com/download โ available on every distro.
Monitor Plex, Pi-hole, Docker containers, disk health, and every self-hosted service โ without opening a single browser tab. QuickSheet turns your wallpaper into a homelab dashboard.
"I used to keep a Grafana tab open just to see if my *arr stack was running. Now it's literally my wallpaper."
QuickSheet extensions and cell prefixes let you surface data from any service with an API, CLI, or log file. Here's what homelabbers typically put on their desktop:
Live container status, CPU/memory usage, restart counts. See which services are up or down at a glance.
ext: docker ps
Active streams, library size, recently added media. Use an inline process cell to poll Tautulli or Jellyfin API.
i: curl -s localhost:8181/api/v2?cmd=get_activity | jq .response.data.stream_count
Queries blocked today, top blocked domains, DNS response time. Instant visibility without opening the admin panel.
i: curl -s http://pi.hole/admin/api.php | jq '.ads_blocked_today'
ZFS pool status, SMART warnings, free space on each mount. Never get surprised by a full NAS again.
i: df -h /mnt/data | awk 'NR==2{print $5 " used"}'
CPU load, RAM usage, temperatures, uptime โ via the quicksheet-sysmon extension or inline commands.
ext: sysmon
WAN IP, speedtest results, VPN status, port forwarding checks. Know when your connection drops.
i: curl -s ifconfig.me
Queue size, upcoming episodes, recent grabs. One glance tells you if downloads are healthy.
i: curl -s "localhost:8989/api/v3/queue?apikey=KEY" | jq '.totalRecords'
Entity states, sensor readings, automation status. Pull data via the HA REST API into cells.
i: curl -sH "Authorization: Bearer TOKEN" http://ha:8123/api/states/sensor.temp | jq .state
VM status, container uptime, storage pool usage. Surface hypervisor data without the web UI.
i: pvesh get /cluster/resources --type vm --output-format json | jq '.[].status'
Here's what a typical homelab QuickSheet looks like. Each cell is a live data source or quick-launch command.
| A | B | C | D |
|---|---|---|---|
| # Infrastructure | # Media | ||
| ext: docker ps | ext: sysmon | i: curl -s localhost:8181/api | http://plex:32400 |
| i: df -h / | tail -1 | i: uptime -p | i: sonarr queue count | http://radarr:7878 |
| ## Network | ## Quick Launch | ||
| i: curl -s ifconfig.me | i: pihole status | r: ssh server01 | r: docker compose up -d |
Already have it? Skip ahead. Otherwise: dotnet.microsoft.com/download โ available on every distro.
git clone https://github.com/cemheren/QuickSheet.git && cd QuickSheet && dotnet build ExcelConsole.csproj
Copy the example layout above into homelab.csv, customize the API endpoints for your services, and run:
dotnet run -c Release --project ExcelConsole.csproj -- homelab.csv --desktop
See docs/install-startup.md โ add QuickSheet to XDG autostart (Linux) or Task Scheduler (Windows) so your dashboard is always there.
Lives behind your windows as the wallpaper. Minimize anything and your dashboard is there. No tab to find, no window to arrange.
No Docker container, no web server, no database. Just a single binary reading a CSV. Uses ~15 MB RAM.
Every cell is a potential data source. If you can curl it, pipe it, or grep it โ it can live in a cell. No plugin API to learn for basic stuff.
No npm, no NuGet packages, no supply chain risk. Clone โ build โ run. The code is auditable in an afternoon.
Export your dashboard as Markdown with --export-md and pipe it into notifications, cron reports, or status pages.
Weather, stocks, sysmon, Docker, Git status, and more. Or write your own โ it's just JSON lines over stdin/stdout.
These extensions are particularly useful for homelab setups:
Monitor container status, CPU/memory, restart counts. Live updates every 5 seconds.
github.com/cemheren/quicksheet-docker
CPU, RAM, disk, and uptime in cells. Visual progress bars and color-coded thresholds.
github.com/cemheren/quicksheet-sysmon
Local forecast in a cell. Useful for homelab rooms โ know when it's hot outside (cooling load!).
github.com/cemheren/quicksheet-weather