Skip to content
Back to skills

Google Home

ASecurity

Control Google Nest devices (thermostats, cameras, doorbells) via the Google Smart Device Management API using curl and jq.

  • 665 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 7, 2026
toolsgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add openclaw/skills --skill google-home --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google Home?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Google Home
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/openclaw-google-home/badge)](https://www.skillsdirectory.com/skills/openclaw-google-home)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: google-home
description: Control Google Nest devices (thermostats, cameras, doorbells) via the Google Smart Device Management API using curl and jq.
metadata: {"clawdbot":{"emoji":"🏠","requires":{"bins":["curl","jq"]}}
---

# Google Home / Nest CLI

Control Google Nest devices via the Smart Device Management (SDM) API using curl + jq.

## Setup (Required)

1. **Create a Google Cloud Project**
   - Go to https://console.cloud.google.com
   - Create a new project

2. **Enable the SDM API**
   - APIs & Services β†’ Library
   - Search "Smart Device Management"
   - Enable it

3. **Create OAuth Credentials**
   - APIs & Services β†’ Credentials
   - Create OAuth 2.0 Client ID
   - Download the JSON file
   - Extract `client_id` and `client_secret`

4. **Register Your Devices**
   - Visit https://nests.google.com/frame/register-user
   - Accept the terms

5. **Get Access Token**
   ```bash
   # Replace with your values
   curl -s \
     -d "client_id=YOUR_CLIENT_ID" \
     -d "client_secret=YOUR_CLIENT_SECRET" \
     -d "refresh_token=YOUR_REFRESH_TOKEN" \
     -d "grant_type=refresh_token" \
     https://www.googleapis.com/oauth2/v4/token
   ```

## Quick Start

```bash
# List devices
google-home-cli devices

# Get thermostat info
google-home-cli thermostat "Living Room" --info

# Set temperature (heat/cool/auto)
google-home-cli thermostat "Living Room" --temp 72

# Query camera
google-home-cli camera "Front Door" --status
```

## Device Commands

### Thermostats
- `google-home-cli thermostat <name>` β€” show current temp/humidity
- `--temp <degrees>` β€” set target temperature
- `--mode heat|cool|auto` β€” set HVAC mode
- `--fan on|auto` β€” control fan

### Cameras & Doorbells
- `google-home-cli camera <name>` β€” get stream/status
- `--snapshot` β€” download current image
- `--stream` β€” start live stream URL

### Speakers & Displays
- `google-home-cli speaker <name>` β€” device info
- `--volume 0-100` β€” set volume
- `--stop` β€” stop playback

## Environment Variables

```bash
export GOOGLE_HOME_CLIENT_ID="your-client-id"
export GOOGLE_HOME_CLIENT_SECRET="your-client-secret"
export GOOGLE_HOME_ACCESS_TOKEN="your-access-token"
```

## Alternative: Direct API Calls

```bash
# List all devices
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://smartdevicemanagement.googleapis.com/v1/enterprises/YOUR_PROJECT_ID/devices"

# Get device traits
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://smartdevicemanagement.googleapis.com/v1/enterprises/YOUR_PROJECT_ID/devices/YOUR_DEVICE_ID"
```

## Helper Script

A `nest` CLI helper is included at `scripts/nest`:

```bash
# Make it available globally
ln -sf /Users/mitchellbernstein/clawd/skills/google-home/scripts/nest /usr/local/bin/nest

# List devices
nest list

# Get thermostat status
nest status "enterprises/PROJECT_ID/devices/DEVICE_ID"

# Set temperature (Celsius)
nest temp "enterprises/PROJECT_ID/devices/DEVICE_ID" 22

# Set mode
nest mode "enterprises/PROJECT_ID/devices/DEVICE_ID" HEAT
```

## Configuration

Create `~/.config/google-home/config.json`:

```json
{
  "project_id": "your-google-cloud-project-id",
  "access_token": "your-oauth-access-token"
}
```

## Notes

- Tokens expire; refresh them periodically
- Device names use full path: `enterprises/PROJECT_ID/devices/DEVICE_ID`
- Temperature is in Celsius (convert from Fahrenheit if needed)
- Camera streams require additional permissions

Files in this skill

  • SKILL.md3.4 KB
  • _meta.json290 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…