Show HN: HomeButler – A CLI that tells you what changed on your home server A new open-source Go binary called HomeButler provides homelab operators with a single CLI tool to monitor server health, track container changes, verify backups, and deploy self-hosted apps without requiring a daemon or database. The tool returns readable summaries and JSON output for terminal use, scripts, web dashboards, or AI agents, answering common questions like what is running, which container owns a port, and why a service restarted. HomeButler aims to solve the ongoing maintenance burden of self-hosting by offering structured, scriptable visibility into server operations without giving AI assistants full SSH access. Your tiny homelab butler. A single Go binary for running a small home server without babysitting it. HomeButler helps you answer the boring but painful questions every homelab eventually creates: - What is running on my server right now? - Which container owns this port? - Why did this service restart at 3 AM? - Is my backup actually restorable? - Can I install this self-hosted app without hand-writing another compose file? - Can I let an AI assistant inspect my server without handing it a full SSH shell? No daemon required. No database. No always-on web service. Just one Go binary you can use from the terminal, scripts, a web dashboard, or AI tools. The design goal is simple: give humans and agents a narrow, structured interface to the server. HomeButler returns readable summaries and JSON instead of asking you to trust a black-box shell session. One-line install auto-detects OS/arch curl -fsSL https://raw.githubusercontent.com/Higangssh/homebutler/main/install.sh | sh Or via Homebrew brew install Higangssh/homebutler/homebutler Interactive setup — add your servers in seconds homebutler init Use it right away: homebutler status CPU, memory, disk, uptime homebutler docker list running containers homebutler inventory scan containers + ports + topology homebutler report butler-style health report + change summary homebutler install uptime-kuma deploy a self-hosted app homebutler backup drill uptime-kuma verify a backup actually restores homebutler watch tui terminal dashboard homebutler serve web dashboard at http://localhost:8080 Machine-readable output is available everywhere: homebutler status --json homebutler inventory scan --json homebutler report --json Install apps — deploy Uptime Kuma, Jellyfin, Pi-hole, Gitea, Portainer, and more with one command Map your server — see containers, exposed ports, system ports, and service topology Run a doctor check — diagnose resource pressure, stopped containers, public ports, backup hygiene, notifications, and report baseline readiness Catch crashes — save logs before/after Docker, systemd, or PM2 restarts and detect flapping loops Verify backups — boot backups in isolated containers before you trust them Use it anywhere — CLI, JSON, web dashboard, or MCP for AI agents without giving them SSH Self-hosting is not hard because one docker compose up is hard. It is hard because the maintenance never ends: ports collide, containers restart silently, backups look fine until restore day, and every server becomes a slightly different snowflake. HomeButler is a small operations toolkit for that messy middle. Those are great dashboards. HomeButler is CLI-first, scriptable, JSON-friendly, air-gap friendly, and safe to copy onto any server. Use it when you want commands you can run from a terminal, cron job, SSH session, CI script, or AI agent — especially when you care more about “what changed?” than another graph. homebutler report homebutler report --keep 7 retain only the latest 7 snapshots homebutler report --no-save preview without writing a snapshot report gives you a concise butler-style summary of your homelab: current health, warnings, notable changes since the previous snapshot, and suggested next commands. On the first run, HomeButler creates a baseline under ~/.homebutler/reports/snapshots/ ; later runs compare against the latest snapshot. Old snapshots are pruned automatically --keep 30 by default so reports do not grow forever. homebutler doctor homebutler doctor --strict non-zero exit if warnings/failures are found homebutler doctor --json automation / MCP friendly doctor is a read-only preflight for the problems homelab users usually discover too late: high disk or memory usage, stopped containers, public bind ports, stale or missing backups, missing notifications, and whether report has a baseline for change detection. — Deploy self-hosted apps in seconds. Pre-checks Docker, ports, and duplicates. Generates homebutler install uptime-kuma docker-compose.yml automatically. See all available apps → homebutler inventory scan homebutler inventory export --format mermaid homebutler --json inventory scan inventory scan gives you a quick map of what is running on a server: system health, Docker containers, app ports, and system ports. Docker-published ports are connected back to the container that owns them, so local forwarding details like Colima/Lima stay understandable. 🏠 Home Network Server homelab 192.168.1.10 Summary ✅ 1 running · ⚪ 1 stopped · 🌍 2 public ports · 🔒 4 local ports 📦 Containers 2 ├─ ⚪ vaultwarden · not started │ └─ image vaultwarden/server:latest └─ ✅ api-server · running ├─ image my-api:latest └─ exposes :8080 → 8080/tcp 🌐 App Ports 1 └─ 🌍 :8080/tcp · api-server Use Mermaid export when you want a diagram for GitHub, Obsidian, docs, or an AI assistant: php graph TD home "🏠 Home Network" -- homelab "🖥 homelab