| name | watchbot |
| description | Unified homelab + social media monitoring for Hermes Agent. Combines Proxmox LXC watchdog, Home Assistant, X/Twitter, RSS feeds, system health, and Docker into a single plugin with agent tools, CLI, and dashboard. |
| version | 0.1.0 |
| author | Piyush Mehta (@piyush97) |
| metadata | {"hermes":{"tags":["monitoring","homelab","proxmox","home-assistant","docker","twitter","rss","system-health","dashboard"],"related_skills":["homelab-watchdog","xurl","blogwatcher"]}} |
WatchBot 👁️
Unified monitoring plugin for Hermes Agent combining multiple data sources into a single status view with agent tools, CLI commands, hooks, and a web dashboard.
When to Use This Skill
Trigger when the user:
- Wants to check overall system/home/social health
- Asks "what's the status of my homelab?"
- Wants docker container status
- Wants current temperature from Home Assistant
- Wants the latest X/Twitter mentions or timeline
- Wants RSS/blog updates
- Wants to see system resource usage (disk, CPU, memory)
Agent Tools
watchbot_status
result = tools.watchbot_status()
print(f"Health: {result['health']}")
for name, mon in result['monitors'].items():
print(f" {name}: {mon.get('health', '?')}")
watchbot_query
homelab = tools.watchbot_query(monitor="homelab")
print(f"LXCs: {homelab['running']}/{homelab['total']} running")
system = tools.watchbot_query(monitor="system")
print(f"CPU: {system['cpu']['used_pct']}% | Disk: {system['disk']['used_pct']}%")
watchbot_alert
alerts = tools.watchbot_alert(action="list")
print(alerts['summary'])
tools.watchbot_alert(action="trigger", source="manual",
severity="warning", title="Disk check needed",
message="/dev/sda1 at 90%")
CLI Commands
hermes watchbot status
hermes watchbot health
hermes watchbot lxc
hermes watchbot ha
hermes watchbot twitter
hermes watchbot blogs
hermes watchbot docker
hermes watchbot alerts
hermes watchbot setup
hermes watchbot status --json
Dashboard
hermes watchbot dashboard
Configuration
Edit ~/.hermes/watchbot.yaml:
watchbot:
homelab:
host: 192.168.0.2
critical: [100, 105, 106, 107, 103, 104, 111]
optional: [101, 108, 109, 110, 115, 117, 128]
home_assistant:
url: http://192.168.0.244:8123
token_env: HA_TOKEN
sensors:
- sensor.my_ecobee_current_temperature
twitter:
enabled: true
keywords: [hermesagent, piyush97]
blogs:
feeds:
- https://blog.nousresearch.com/feed
system:
disk_threshold_pct: 85
docker:
enabled: true
Architecture
┌─────────────────────────────────────────────────────┐
│ Agent Tools / CLI │
├──────────┬──────────┬──────────┬──────────┬─────────┤
│ Homelab │ HA │ Twitter │ Blogs │ System │
│ (SSH) │ (API) │ (xurl) │ (RSS) │ (/proc) │
├──────────┴──────────┴──────────┴──────────┴─────────┤
│ Core: Config + State + Alerts │
├──────────────────────────────────────────────────────┤
│ SQLite DB + YAML Config │
└──────────────────────────────────────────────────────┘
Pitfalls
- SSH key for Proxmox — The homelab monitor needs SSH key-based access to
root@192.168.0.2. Ensure ~/.ssh/id_ed25519 is in the authorized_keys on the Proxmox host.
- HA token — Set
HA_TOKEN env var or the config's token_env name. The token is read from environment at query time.
- Twitter requires xurl CLI — Install and auth with
xurl separately. Without it, the Twitter monitor returns empty.
- Docker socket — The plugin reads
/var/run/docker.sock. If running Hermes in a container, mount the socket.
- Feedparser optional — For direct RSS parsing without blogwatcher-cli:
pip install feedparser
- CLI caveat — Hermes top-level CLI doesn't auto-discover external plugin commands. Use
python3 -m watchbot <command> or add this bash alias to ~/.bash_aliases:
hermes() {
if [ "$1" = "watchbot" ]; then shift; python3 -m watchbot "$@"
else command hermes "$@"; fi
}