openclaw/skills/nest-camera/SKILL.md
Capture and privately deliver fresh still images or short live video clips from protected Nest cameras. Use only when Dylan or Julia explicitly asks to see a current image, snapshot, view, video, or clip from Kitchen, Living Room, or Living Room Wired.
npx skillsauth add Dbochman/dotfiles nest-cameraInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Capture fresh, ephemeral stills or short live clips through the protected exact-resource camera configuration. Keep this request path separate from automatic Nest event monitoring and presence mode.
Pass only one of these exact aliases to the helper:
KitchenLiving RoomLiving Room WiredAsk which camera when the request is ambiguous, including a bare “Crosstown camera” or “living room camera” that does not distinguish wired from non-wired. For “both” or “all,” make one exact capture per requested camera. If any requested capture fails, clean up every successful capture and do not send a partial set unless the requester explicitly asked for whatever is available.
For video, accept only whole-second durations from 1 through 30. Use 10 seconds when the requester asks for a short clip without specifying a duration.
nest-camera-image capture '<exact alias>'nest-camera-image capture-video '<exact alias>' '<seconds>'
Never use nest camera snap, fuzzy Google display names, raw resource
identifiers, cached dashboard images, or a reviewer event frame.message tool. Omit
explicit channel and target fields so the media cannot be redirected:
message(action="send", message="<alias> — fresh snapshot.", media="<mediaPath>")message(action="send", message="<alias> — fresh <seconds>-second clip.", media="<mediaPath>")attachments=[{"media":"<mediaPath>"}, ...]finally step: after the message tool returns, errors,
or times out, always run nest-camera-image cleanup '<cleanupToken>' for
every capture. Pass only the helper-returned opaque lowercase-hex token as
one quoted argument. Never interpolate other text or use raw rm.NO_REPLY so automatic source delivery
does not duplicate the caption. If delivery fails, clean up first and then
say briefly that the media could not be delivered.The helper also expires crash orphans. Do not copy camera media elsewhere or persist or log its paths or contents. Google Device Access does not expose historical Nest Aware recordings for these cameras. If asked for old footage or an old event image, explain that monitoring frames are deliberately not retained and offer a fresh snapshot or live clip.
If capture fails or the camera is unavailable, report that succinctly without exposing command output, paths, device identifiers, configuration, or tokens.
tools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.