Use this skill when the user wants an agent to connect to their own Tapo cameras on a trusted local network, verify camera reachability, take still captures, and inspect the resulting frames without defaulting to cloud workflows.
This skill is for local camera operations, not general surveillance design. Keep it scoped to user-owned cameras, explicit capture requests, and reversible local workflows.
Memory lives in ~/tapo-camera/. If ~/tapo-camera/ does not exist, run setup.md. See memory-template.md for structure.
text
~/tapo-camera/
├── memory.md # activation boundaries, preferred capture defaults, and trust limits
├── cameras.md # hostnames, labels, model notes, and stream capabilities
├── sessions/
│ └── YYYY-MM-DD.md # capture attempts, failures, and what worked
├── captures/
│ └── ... # user-approved local stills only
└── incidents.md # auth, network, RTSP, and model-specific failure notes
Only create cameras.md, sessions/, captures/, or incidents.md if the user wants persistent local state.
TopicFileSetup and activation behaviorsetup.mdMemory schema and status valuesmemory-template.mdCamera inventory templatecameras.mdIncident log templateincidents.mdDiscovery, auth, and capability checksdiscovery-and-auth.mdLocal still-capture and review flowssnapshot-workflows.mdUnofficial API fallback boundaryapi-fallback.mdFailure diagnosis and recovery ordertroubleshooting.mdLocal capture helpertapo-capture.py
python3python-kasa and its kasa CLI for local discovery, device state, and camera module accessffmpeg for one-frame JPEG capture from RTSPTAPO_CAMERA_USERNAME, TAPO_CAMERA_PASSWORD, or KASA_CREDENTIALS_HASHTreat Tapo credentials and KASA_CREDENTIALS_HASH as secrets. Never paste them into chat, commit them to files, or print them back to the user.
Use local notes only when they improve repeatability:
cameras.md for camera labels, hosts, model quirks, and stream capability notesincidents.md for recurring auth, RTSP, ONVIF, or firmware regressionscaptures/ folder for user-approved still images onlypython-kasa and the kasa CLI for discovery, auth validation, and camera capability checks.ffmpeg, but it should not print that URL unless the user explicitly asks.~/tapo-camera/captures/ or another explicit destination.kasa cannot expose a camera module or RTSP URL, check model support, privacy mode, and third-party compatibility before changing approach.TrapWhy It FailsBetter MoveTreating every Tapo device like a direct RTSP cameraHub children and some battery devices do not expose the same local stream surfaceIdentify device class first, then choose RTSP, ONVIF, or API fallbackPrinting the full RTSP URL into logsThat leaks camera credentials into history and shared outputKeep URLs redacted by default and only reveal them on explicit requestUsing cloud login assumptions for local captureLocal device auth and camera account setup are separate in practiceVerify the camera account and third-party compatibility state firstJumping straight to repeated frame pullsHarder to debug and easier to cross privacy boundariesProve one still capture before any loop or batch jobStoring captures and credentials togetherRaises the blast radius if the local folder is copied or syncedKeep images and secrets separate, and never persist secrets in ~/tapo-camera/
EndpointData SentPurposehttps://{camera-host}local camera authentication and feature querieslocal device connection through python-kasa``rtsp://{camera-host}:554/stream1 or stream2local camera credentials and stream requeststill capture via ffmpeg from the LAN streamhttp://{camera-host}:2020/onvif/device_servicelocal device-service requestsONVIF capability checks when enabled on the camera
No third-party endpoint is part of the default workflow.
Data that may leave your machine:
Data that stays local:
~/tapo-camera/This skill does NOT:
~/tapo-camera/ for memoryThis skill ONLY:
This skill NEVER:
Install with clawhub install <slug> if user confirms:
cameras - broader camera capture and review workflows outside the Tapo-specific laneffmpeg - deeper frame extraction, transcoding, and media inspection once capture workssmart-home - ecosystem-level device coordination and automation planningiot - local-device debugging and network-aware connector reasoningphotos - organize and inspect saved captures after acquisitionclawhub star tapo-cameraclawhub sync