Nest SDM

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its Nest-control purpose, but it asks for high-impact Google/Nest privileges, can change physical devices, forwards home events to Telegram, and has unsafe shell/Python data handling.

Install only if you are comfortable giving the skill access to your Nest devices and related Google Cloud project. Before use, restrict OAuth scopes where possible, avoid the raw API command unless you know exactly what it will do, review the Telegram forwarding behavior, and consider fixing the unsafe python3 -c interpolation patterns.

Findings (6)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If invoked incorrectly or too broadly, the agent could change thermostat modes, fan settings, or other supported device state without a clear safety boundary.

Why it was flagged

The skill exposes a raw API command path that can send arbitrary SDM executeCommand calls to Nest devices, in addition to high-level thermostat commands.

Skill content
nest api POST devices/<DEVICE_ID>:executeCommand '{"command":"...","params":{...}}'
Recommendation

Require explicit user confirmation for all write actions, disable or restrict the raw API escape hatch by default, and document which commands are safe for autonomous use.

What this means

The skill may receive authority over parts of the user's Google Cloud project, not just Nest devices.

Why it was flagged

The setup asks for broad Google Cloud OAuth scopes and persistent tokens for Pub/Sub/GCP operations, which exceeds simple Nest device reads and writes.

Skill content
OAuth with Pub/Sub scope — Run OAuth flow as your-email@example.com with `pubsub` + `cloud-platform` scopes. Save tokens to `.nest-pubsub-tokens.json`.
Recommendation

Use the narrowest possible Pub/Sub scope, avoid cloud-platform unless strictly required, clearly declare credentials in metadata, and explain exactly what project resources the skill can create or modify.

What this means

The skill could act with whatever Google Cloud permissions are available in the user's local gcloud session.

Why it was flagged

If the Pub/Sub token file is missing or refresh fails, the script falls back to an existing local gcloud login, using a high-impact local account credential source.

Skill content
local GCLOUD="${HOME}/.local/google-cloud-sdk/bin/gcloud"
token=$("$GCLOUD" auth print-access-token 2>/dev/null)
Recommendation

Do not silently fall back to gcloud credentials; require explicit user opt-in and document the exact account and project permissions used.

What this means

Home/security event information can be sent to a third-party messaging service and stored outside the Nest/Google account boundary.

Why it was flagged

The event listener can forward Nest doorbell, motion, person, sound, and thermostat alerts to Telegram using bot credentials.

Skill content
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage"
Recommendation

Make Telegram forwarding opt-in, clearly disclose it in setup/metadata, avoid reading credentials from shell startup files automatically, and explain what event data is sent.

What this means

A malicious or malformed event payload could potentially run commands on the user's machine under the skill's permissions.

Why it was flagged

Event data is interpolated directly into a python3 -c source string. Crafted event content containing Python string delimiters could break out of the string and execute local code.

Skill content
event = json.loads('''${event_json}''')
Recommendation

Pass event JSON through stdin, argv, or environment variables instead of embedding it into Python source; apply the same fix anywhere shell variables are inserted into python3 -c code.

What this means

When started, the listener can continue polling and sending alerts until stopped.

Why it was flagged

The skill documents a long-running listener mode for real-time events.

Skill content
nest-events listen              # Poll continuously (daemon)
Recommendation

Run listener mode only when needed, keep it in a visible terminal or managed service, and document how to stop it and where logs/tokens are stored.