govee-control
// Script-free Govee OpenAPI setup and control guide. Use when the user wants to get a Govee API key, connect Govee, list devices, check state, or send power/brightness/color commands with secure key handling.
$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namegovee-control
descriptionScript-free Govee OpenAPI setup and control guide. Use when the user wants to get a Govee API key, connect Govee, list devices, check state, or send power/brightness/color commands with secure key handling.
metadata[object Object]
Govee OpenAPI (No Scripts)
Control Govee devices using manual curl commands only.
Linux System Requirements
- Linux shell with
bashavailable. curlinstalled.- Internet access to
https://developer-api.govee.comandhttps://developer.govee.com. - Govee account with supported devices linked.
- Optional:
jqfor pretty-printing JSON responses.
Quick check:
bash --version | head -n 1
curl --version | head -n 1
command -v jq >/dev/null && jq --version || echo "jq not installed (optional)"
Required Credential
GOVEE_API_KEY(required)
Autonomous Use Guardrails
- Only read
GOVEE_API_KEYfrom your chosen per-user secrets file. - Do not read unrelated secret files or system credentials.
- Restrict outbound requests to:
https://developer-api.govee.comhttps://developer.govee.com
- Ask before controlling multiple devices or performing bulk changes.
Get a Govee API Key
- Open
https://developer.govee.com/. - Sign in with the same Govee account that owns your devices.
- Go to the API key section in the developer console.
- Generate/apply for a key and copy it.
- Keep it private (treat it like a password).
If the portal UI changes, use the same flow: sign in to Govee Developer → find API key management → create key.
Secure Local Storage (Per-User)
Never store API keys in skill files, git, or chat logs.
Create a per-user secrets file (avoid /root unless intentionally running as root):
mkdir -p "$HOME/.openclaw/secrets"
cat > "$HOME/.openclaw/secrets/govee.env" <<'EOF'
export GOVEE_API_KEY='<YOUR_API_KEY>'
EOF
chmod 600 "$HOME/.openclaw/secrets/govee.env"
Load only this variable into the current shell (no set -a):
source "$HOME/.openclaw/secrets/govee.env"
API Base URL
https://developer-api.govee.com/v1
Discover Devices First
Before controlling lights, list devices and copy your own device + model:
curl -sS -X GET "https://developer-api.govee.com/v1/devices" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json"
View Device State
curl -sS -X GET "https://developer-api.govee.com/v1/devices/state?device=<DEVICE>&model=<MODEL>" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json"
Control Commands
Turn on
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"turn","value":"on"}}'
Turn off
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"turn","value":"off"}}'
Brightness (1-100)
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"brightness","value":75}}'
RGB color
curl -sS -X PUT "https://developer-api.govee.com/v1/devices/control" \
-H "Govee-API-Key: $GOVEE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"device":"<DEVICE>","model":"<MODEL>","cmd":{"name":"color","value":{"r":120,"g":180,"b":255}}}'
Response Check
Success usually returns:
{"code":200,"message":"Success"}
If code is not 200, treat it as failure.
Troubleshooting
401/ unauthorized: key missing, expired, or invalid.429/ rate limit: slow retries.- command rejected: model does not support that command (
supportCmds). - empty device list: account has no supported linked devices.
Safety Rules
- Use placeholders in docs only (
<DEVICE>,<MODEL>,<YOUR_API_KEY>). - Do not include real keys or device IDs in published artifacts.
- Prefer one-device-at-a-time actions over bulk changes.
- Avoid pasting API keys into chat.