✓ Verified 💻 Development ✓ Enhanced Data

Google Home

Control Google Nest devices.

Rating
4 (301 reviews)
Downloads
14,559 downloads
Version
1.0.0

Overview

Control Google Nest devices.

Complete Documentation

View Source →

Google Home / Nest CLI

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

Setup (Required)

  • Create a Google Cloud Project
  • Go to https://console.cloud.google.com
  • Create a new project
  • Enable the SDM API
  • APIs & Services → Library
  • Search "Smart Device Management"
  • Enable it
  • Create OAuth Credentials
  • APIs & Services → Credentials
  • Create OAuth 2.0 Client ID
  • Download the JSON file
  • Extract client_id and client_secret
  • Register Your Devices
  • Visit https://nests.google.com/frame/register-user
  • Accept the terms
  • 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 — show current temp/humidity
  • --temp — set target temperature
  • --mode heat|cool|auto — set HVAC mode
  • --fan on|auto — control fan

Cameras & Doorbells

  • google-home-cli camera — get stream/status
  • --snapshot — download current image
  • --stream — start live stream URL

Speakers & Displays

  • google-home-cli speaker — 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

Installation

Terminal bash

openclaw install google-home
    
Copied!

💻Code Examples

google-home-cli camera "Front Door" --status

google-home-cli-camera-front-door---status.txt
## 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

"https://smartdevicemanagement.googleapis.com/v1/enterprises/YOUR_PROJECT_ID/devices/YOUR_DEVICE_ID"

-httpssmartdevicemanagementgoogleapiscomv1enterprisesyourprojectiddevicesyourdeviceid.txt
## Helper Script

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

nest mode "enterprises/PROJECT_ID/devices/DEVICE_ID" HEAT

nest-mode-enterprisesprojectiddevicesdeviceid-heat.txt
## Configuration

Create `~/.config/google-home/config.json`:
example.sh
# 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
example.sh
# 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
example.sh
export GOOGLE_HOME_CLIENT_ID="your-client-id"
export GOOGLE_HOME_CLIENT_SECRET="your-client-secret"
export GOOGLE_HOME_ACCESS_TOKEN="your-access-token"
example.sh
# 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"
example.sh
# 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
example.json
{
  "project_id": "your-google-cloud-project-id",
  "access_token": "your-oauth-access-token"
}

Tags

#smart_home-and-iot

Quick Info

Category Development
Model Gemini 2.0
Complexity One-Click
Author mitchellbernstein
Last Updated 3/10/2026
🚀
Optimized for
Gemini 2.0
💎

Ready to Install?

Get started with this skill in seconds

openclaw install google-home