executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
frigateAccess Frigate NVR cameras with session-based authentication. Get live snapshots, retrieve motion events, and fetch stream URLs. Includes CLI helper script for doorbell, driveway, front, east, mailbox, and garage cameras.
Independent GitHub snapshot · Automated classification · Original documentation governs
Access Frigate NVR server at FRIGATE_URL with credentials from FRIGATE_USER and FRIGATE_PASS environment variables.
Frigate uses session-based authentication (not HTTP Basic Auth):
import requests
session = requests.Session()
response = session.post(
f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS},
verify=False # For self-signed certificates
)
# session.cookies contains frigate_token for subsequent requests
response = session.get(f"{FRIGATE_URL}/api/config", verify=False)
config = response.json()
cameras = list(config.get('cameras', {}).keys())
# Returns: ['driveway', 'front', 'east', 'mailbox', 'garage', 'doorbell']
snapshot = session.get(
f"{FRIGATE_URL}/api/{camera_name}/latest.jpg",
verify=False
)
# Save: with open(f"/tmp/{camera_name}.jpg", "wb") as f: f.write(snapshot.content)
events = session.get(
f"{FRIGATE_URL}/api/events?cameras={camera_name}&has_clip=1",
verify=False
).json()
# Returns list of motion detection events with timestamps
config = session.get(f"{FRIGATE_URL}/api/config", verify=False).json()
stream_config = config.get('go2rtc', {}).get('streams', {}).get(camera_name)
# Returns RTSP/WebRTC stream URLs
Required:
FRIGATE_URL - Frigate server URL (e.g., https://server.local:8971/)FRIGATE_USER - Username for authenticationFRIGATE_PASS - Password for authenticationOptional:
import requests
session = requests.Session()
session.post(f"{FRIGATE_URL}/api/login",
json={"user": FRIGATE_USER, "password": FRIGATE_PASS}, verify=False)
# Get doorbell snapshot
snapshot = session.get(f"{FRIGATE_URL}/api/doorbell/latest.jpg", verify=False)
# Send to Telegram
from clawdbot import message
message(action="send", channel="telegram", target="3215551212",
message="Doorbell snapshot", path="/tmp/doorbell_snapshot.jpg")
verify=False for self-signed certificates on home networkssession_length)/api/cameras endpoint doesn't exist; use /api/config for camera infolist, snapshot, events, stream