Claude-skill-registry gohome
Use when Clawdbot needs to test or operate GoHome (Home Assistant clone) via gRPC discovery, metrics, and Grafana.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gohome-clawdis" ~/.claude/skills/majiayu000-claude-skill-registry-gohome && rm -rf "$T"
skills/data/gohome-clawdis/SKILL.mdGoHome Skill
This skill teaches Clawdbot how to discover capabilities and validate the GoHome stack using the repo CLI, Prometheus metrics, and Grafana.
Quick start
Set the target host and ports (optional; defaults read from config or MagicDNS):
export GOHOME_HOST="gohome" export GOHOME_HTTP_BASE="http://${GOHOME_HOST}:8080" export GOHOME_GRPC_ADDR="${GOHOME_HOST}:9000"
Use the CLI on PATH (preferred, installed by the nix-clawdbot plugin):
gohome-cli services
Use the CLI from source if needed:
go run ./cmd/gohome-cli services
If Go is not available, build with Nix and run the CLI from the result:
nix build .#packages.x86_64-linux.default ./result/bin/gohome-cli services
Discovery flow (read-only)
- List plugins:
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli plugins list
- Describe a plugin:
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli plugins describe tado
- List methods for a service:
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli methods gohome.plugins.tado.v1.TadoService
- Call a safe RPC (read-only):
jq -n '{}' | GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \ gohome.plugins.tado.v1.TadoService/ListZones
Friendly CLI (agent-friendly)
Roborock:
gohome-cli roborock status gohome-cli roborock rooms gohome-cli roborock clean kitchen gohome-cli roborock mop kitchen gohome-cli roborock vacuum kitchen gohome-cli roborock smart kitchen gohome-cli roborock map --labels names
Sending maps to users (Telegram/messaging)
When user asks for a map, send it as an image they can see inline. Use the MEDIA: syntax with the gohome map URL:
MEDIA:http://gohome:8080/roborock/map.png?device_name=Roborock+Qrevo+S&labels=names Robot on dock in hallway. Battery 100%.
This sends the map image directly in the chat. Options:
— room names (recommended)labels=names
— segment IDslabels=segments- no labels param — clean map
Do NOT just describe the map or show it in a code block — send it as a MEDIA: image so users can see it.
Tado:
gohome-cli tado zones gohome-cli tado set living-room 20
Metrics validation
Confirm the Tado scraper is healthy and metrics are present:
curl -s "${GOHOME_HTTP_BASE}/gohome/metrics" | rg -n "gohome_tado_"
Expect:
gohome_tado_scrape_success 1- zone temperature + humidity metrics
Grafana access
Grafana is proxied under:
${GOHOME_HTTP_BASE}/grafana/
Use MagicDNS (
gohome) or set GOHOME_HOST to the tailnet FQDN if needed.
Stateful / destructive actions (require explicit approval)
Only call write RPCs after user approval. Example:
jq -n --arg zone_id "1" --argjson temp 20.0 \ '{zone_id: $zone_id, temperature_celsius: $temp}' | \ GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \ gohome.plugins.tado.v1.TadoService/SetTemperature
Troubleshooting
- If DNS fails, verify MagicDNS is enabled and run
.tailscale status - If metrics are missing, check
and token validity.gohome_tado_scrape_success - Prefer
to build JSON for gRPC calls; it avoids quoting mistakes.jq -n
readsgohome-cli
(or/etc/gohome/config.pbtxt
) for default host info.~/.config/gohome/config.pbtxt