I run 3 servers at home — a Mac Mini, a Raspberry Pi, and a NAS. Managing them used to mean opening 3 SSH sessions, running the same commands on each, and switching between terminal tabs at 2 AM when something breaks.
I got tired of it. So I built homebutler.
The moment that started it all
3 AM. Phone buzzes. Disk alert on my NAS — 91% full.
Old workflow: grab laptop → SSH into NAS → check what's eating disk → restart the problem service → SSH into the other servers to make sure they're fine → go back to sleep 40 minutes later.
I wanted this instead: pick up phone → read the alert → type "what's eating disk?" → type "restart postgres" → sleep. All from one chat window.
What homebutler does
It's a single Go binary (~13MB, zero dependencies) that does two things:
1. CLI for your terminal
$ homebutler status --all
🖥 mac-mini (darwin/arm64)
CPU: 23% | Memory: 5.2/8.0 GB | Disk: 37%
🖥 raspberry-pi (linux/arm64)
CPU: 12% | Memory: 1.6/4.0 GB | Disk: 47%
🖥 nas-box (linux/amd64)
CPU: 8% | Memory: 12.4/32 GB | Disk: 87% ⚠️
One command, all servers. It connects to remote servers over SSH in parallel.
2. MCP server for AI chat
homebutler speaks MCP, so Claude, ChatGPT, Cursor — anything that supports MCP — can use it as a tool.
{
"mcpServers": {
"homebutler": {
"command": "npx",
"args": ["-y", "homebutler@latest"]
}
}
}
This is what it looks like in practice:
🚨 Alert: CPU at 92% on nas-box
Me: "What's eating CPU?"
Bot: postgres — 85.2%
Me: "Restart postgres"
Bot: ✅ Done. CPU 92% → 12%
No SSH. No laptop. No dashboard login.
What's inside
- System monitoring — CPU, memory, disk, uptime
- Docker management — list, restart, stop, view logs
- Wake-on-LAN — power on machines from anywhere
- Port scanner — see what's listening
- Network scan — discover LAN devices
- Multi-server SSH — manage all servers from one place
- Web dashboard — dark-themed UI, embedded in the binary
- Alerts — threshold-based notifications
- JSON output — pipe-friendly for scripts and AI
Why a single binary?
I've tried Netdata, Glances, CasaOS. They all need Docker, or a running daemon, or a web server that's always on.
homebutler is different:
- Copy one file to your Pi. Done.
- No Docker. No Node. No Python. No config server.
- Runs when you need it, sleeps when you don't.
- Air-gapped install? Just
scpthe binary.
Multi-server: the part I'm most proud of
# ~/.config/homebutler/config.yaml
servers:
- name: mac-mini
local: true
- name: raspberry-pi
host: 192.168.1.30
user: pi
- name: nas-box
host: 192.168.1.20
user: admin
Once configured, every command works across all servers:
homebutler docker list --all # containers on every server
homebutler alerts --all # alerts from everywhere
homebutler serve # web dashboard for all servers
Try it
# Homebrew
brew install Higangssh/tap/homebutler
# npm (for MCP server)
npx -y homebutler@latest
# Go
go install github.com/Higangssh/homebutler@latest
GitHub: github.com/Higangssh/homebutler
It's MIT licensed, open source, and I'm actively maintaining it. If you run a homelab, I'd love to hear what you think.
Top comments (0)