551ā
by snail3d
office-cam ā OpenClaw Skill
office-cam is an OpenClaw Skills integration for data analytics workflows. Multi-camera system for office/home monitoring. Supports USB webcams (Logitech), WiFi Wyze cameras (RTSP), and ESP32 cameras. Use to check rooms, capture photos on demand, or monitor multiple spaces.
Skill Snapshot
| name | office-cam |
| description | Multi-camera system for office/home monitoring. Supports USB webcams (Logitech), WiFi Wyze cameras (RTSP), and ESP32 cameras. Use to check rooms, capture photos on demand, or monitor multiple spaces. OpenClaw Skills integration. |
| owner | snail3d |
| repository | snail3d/voice-devotionalpath: skills/office-cam/skills/office-cam |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @snail3d/voice-devotional:skills/office-cam/skills/office-cam |
| last updated | Feb 7, 2026 |
Maintainer

name: office-cam description: Multi-camera system for office/home monitoring. Supports USB webcams (Logitech), WiFi Wyze cameras (RTSP), and ESP32 cameras. Use to check rooms, capture photos on demand, or monitor multiple spaces. metadata: clawdbot: emoji: š„
Office Cam - Multi-Camera System
Whole-house camera network supporting multiple camera types.
Supported Cameras
| Type | Reliability | Setup | Best For |
|---|---|---|---|
| š„ļø USB Webcam | āāāāā Instant | Plug & play | Desk, office |
| š¹ Wyze PTZ/v3 | āāāāā Reliable | RTSP stream | Rooms, garage, shed |
| š” ESP32-CAM | āāā Experimental | ESP-NOW wireless | DIY, battery-powered |
Quick Start
# USB Webcam (instant)
~/clawd/skills/office-cam/scripts/capture.sh
# Wyze PTZ (one-time setup required)
~/clawd/skills/office-cam/scripts/wyze-dashboard add
~/clawd/skills/office-cam/scripts/wyze-dashboard capture shed
# ESP32-CAM (ESP-NOW wireless)
# Flash firmware, auto-discovers base station, sends photos wirelessly
š„ļø USB Webcam (Logitech)
Most reliable - works instantly.
Basic Capture
cd ~/clawd/skills/office-cam
./scripts/capture.sh /tmp/office.jpg
Motion Detection ā NEW
# Start motion detection (runs continuously)
./scripts/motion-detect.sh
# Captures saved to ~/.clawdbot/motion-captures/
# Automatically triggers when motion detected
# 5-second cooldown between captures
š„ OVERWATCH Mode (AI Monitoring) āāā
# Start AI-powered continuous monitoring
./scripts/overwatch start
# Check status
./scripts/overwatch status
# Stop monitoring
./scripts/overwatch stop
What Overwatch does:
- š Monitors webcam 24/7 in background
- šØ Detects motion and saves alert
- š Can trigger notifications (integrate with OpenClaw)
- š¾ Saves motion captures to
~/.clawdbot/overwatch/
Or say: "Start overwatch" or "Keep overwatch"
š¤ SMART OVERWATCH (AI-Escalated) āāāāā
# Start smart monitoring (zero cost until trigger)
./scripts/smart-overwatch start
# I will check for triggers and analyze when found
How it works:
- š Local motion detection (file size comparison, zero API cost, runs always)
- šØ Motion detected ā creates trigger file in
~/.clawdbot/overwatch/triggers/ - š¤ I detect the trigger ā analyze image with vision model (only when motion happens)
- š¤ Person found? ā Send alert & optionally continue watching
- š No person? ā Delete trigger, back to local monitoring
What you can say:
- "Start smart overwatch"
- "Keep watch and tell me if you see anyone"
- "Monitor for people only"
- "Check overwatch triggers" (to manually check for pending analysis)
Cost: Zero until motion detected, then only when I analyze the image
šø Instant Telegram Photo āāāāā
Quick capture and send - the simplest way to check your camera
Just say:
- "Show me the office"
- "What's on camera?"
- "Send me a photo"
What happens:
- I instantly capture from your webcam
- Analyze for clear faces/activity
- Send best image directly to your Telegram
No stream needed - just instant photos when you want them.
š„ OVERWATCH PRO (Full Control System) āāāāāā
The complete solution - Telegram alerts, live stream, remote control
# Start the full system
./scripts/overwatch-pro start
# Setup Telegram (one-time)
./scripts/overwatch-pro setup
# Get live stream URLs
./scripts/overwatch-pro stream
# Take manual photo
./scripts/overwatch-pro capture
# Check status
./scripts/overwatch-pro status
# View live log
./scripts/overwatch-pro log
# Stop
./scripts/overwatch-pro stop
Features:
- šØ Instant Telegram alerts when motion detected
- š Live MJPEG stream at http://localhost:8080
- š± Auto-refreshes every 2 seconds
- šø Saves all captures to ~/.clawdbot/overwatch/
- š¤ Telegram bot replies - respond to alerts with commands
- š Morning report (8 AM daily via cron)
Telegram Commands (reply to motion alert):
analyze- I'll check the image and tell you what I seestream- I'll send you the live stream linkcapture- I'll take a fresh photo right now
Network Access:
# Local
http://localhost:8080
# From another device on same network
http://$(hostname -I | awk '{print $1}'):8080
Morning Report (with Photo):
- Auto-generated at 8 AM (America/Denver timezone)
- Sends a fresh morning photo of your office
- Summarizes overnight motion events
- Offers to analyze captures
- Provides quick command reference
Requirements for motion detection:
brew install imagemagick # For image comparison
š¹ Wyze Cameras
One-Time Setup:
-
Enable RTSP in Wyze App:
- Open Wyze app ā Camera Settings ā Advanced Settings
- Enable RTSP, set password
- Copy the RTSP URL
-
Add to system:
~/clawd/skills/office-cam/scripts/wyze-dashboard add # Enter camera name (e.g., "shed") # Enter RTSP URL -
Capture:
# Single camera ~/clawd/skills/office-cam/scripts/wyze-dashboard capture shed # All cameras ~/clawd/skills/office-cam/scripts/wyze-dashboard capture-all # Quick one-liner (after setup) ~/clawd/skills/office-cam/scripts/wyze-capture shed
š” ESP32-CAM (ESP-NOW Wireless)
No WiFi router needed! Direct wireless between ESP32s.
Architecture:
āāāāāāāāāāāāāāāāāāā ESP-NOW āāāāāāāāāāāāāāāāāāā
ā ESP32-CAM ā āāāāāāāāāāāāāāāāŗ ā ESP32 Base āāāā USB āāāŗ Mac
ā (Camera Node) ā (100m range) ā (Receiver) ā
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā
Battery powered Plugged into computer
Flashing:
Base Station (plain ESP32, plugged into Mac):
cd ~/clawd/skills/office-cam/firmware/espnow-base
pio run --target upload
Camera Node (ESP32-CAM with camera):
cd ~/clawd/skills/office-cam/firmware/espnow-cam-auto
pio run --target upload
How it works:
- Base station broadcasts "beacon" every 2 seconds
- Camera auto-discovers base station
- Camera captures and sends photo wirelessly
- Base receives and saves to SD/outputs to serial
Range: 100+ meters (no WiFi needed!)
Files
| Script | Purpose |
|---|---|
capture.sh | USB webcam |
wyze-capture | Quick Wyze capture |
wyze-dashboard | Multi-cam management |
firmware/espnow-base/ | ESP32 receiver |
firmware/espnow-cam-auto/ | ESP32-CAM transmitter |
Troubleshooting
Wyze "Connection refused":
- Verify RTSP enabled in Wyze app
- Check username/password
- Ensure same WiFi network
ESP32-CAM not connecting:
- Keep within 10 feet for testing
- Check LED: blinking = searching, solid = capturing
- Try resetting both boards
USB webcam not working:
brew install imagesnap- System Settings ā Privacy ā Camera
š¹ ClawCamera ā Multi-Camera Surveillance with AI
Professional-grade office/home monitoring system with motion detection, continuous monitoring (Overwatch), and AI-powered analysis. Built for OpenClaw.
šÆ What It Does
ā Instant snapshots ā Ask "Is anyone here?" and get AI-powered visual answers
ā Motion detection ā Alerts when movement is detected (configurable modes)
ā Overwatch mode ā 24/7 background monitoring with periodic check-ins
ā Smart Overwatch ā Local motion detection (zero cost) ā AI escalation only when needed
ā Multi-camera ā USB webcams, Wyze RTSP, ESP32-CAM all supported
ā Telegram integration ā Instant notifications with images
ā No secrets in git ā Comprehensive .gitignore + env-based config
š Quick Start
1. Install
git clone https://github.com/Snail3D/ClawCamera.git
cd ClawCamera
npm install
2. Configure
# Copy example config
cp .env.example .env
# Add your Telegram credentials for notifications
export TELEGRAM_TOKEN=your_bot_token
export TELEGRAM_CHAT_ID=your_chat_id
3. Use
One-shot capture:
./scripts/capture.sh
# ā Captures photo
# ā Output: Saved to /tmp/capture.jpg
Start Overwatch:
./scripts/overwatch-pro start
# ā Continuous background monitoring
# ā Motion alerts sent to Telegram
# ā Live stream at http://localhost:8080
Smart Overwatch (AI-escalated):
./scripts/smart-overwatch start
# ā Local motion detection (zero API cost)
# ā Creates triggers for AI analysis
# ā AI only runs when motion detected
š Documentation
- SKILL.md ā Full feature list, configuration, and integration guide (for OpenClaw Hub)
- guides/esp32-setup.md ā ESP32-CAM firmware & deployment
- guides/wyze-setup.md ā Wyze camera RTSP configuration
- guides/troubleshooting.md ā Common issues & solutions
šļø Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā User Request (Chat / Voice Command) ā
āāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāā¼āāāāāāāāā
ā Capture ā
ā OR ā
ā Motion Check ā
ā OR ā
ā Overwatch ā
āāāāāāāāāā¬āāāāāāāāā
ā
āāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāā
ā Image Storage ā
ā ~/.clawdbot/overwatch/ ā
āāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāā¼āāāāāāāāāāāāāāāāāāā
ā OpenClaw AI Analysis ā
ā (On-demand via triggers)ā
āāāāāāāāāā¬āāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāā¼āāāāāāāāāāāāāāāāāāā
ā Telegram Notification ā
ā Image + Alert ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
How AI Analysis Works:
- Local motion detection runs continuously using file size comparison (zero API cost)
- When motion is detected, a trigger file is created in
~/.clawdbot/overwatch/triggers/ - OpenClaw detects the trigger and analyzes the image using its configured vision model
- If a person is detected, notifications are sent via Telegram
- If no person, monitoring continues silently
šÆ Monitoring Modes
š“ Overwatch Pro (Full-Featured)
./scripts/overwatch-pro start
- šØ Instant Telegram alerts on motion
- š Live MJPEG stream at http://localhost:8080
- š± Remote commands via Telegram replies
- š¾ Saves all captures to
~/.clawdbot/overwatch/
Telegram Commands (reply to motion alert):
analyzeā Request AI analysis of the imagestreamā Get live stream linkcaptureā Take a fresh photo
š” Smart Overwatch (Cost-Optimized)
./scripts/smart-overwatch start
- š Local motion detection (zero API cost, runs always)
- šØ Motion detected ā creates trigger file
- š¤ AI analyzes only when trigger exists
- š¤ Person found? ā AI starts continuous watching
- š No person? ā Back to local monitoring
šµ One-Shot Capture
./scripts/capture.sh
Instant photo capture on demand. Great for quick checks.
šø Multi-Camera Support
USB Webcam (Instant)
Plug in any USB webcam and capture immediately.
./scripts/capture.sh --device /dev/video0
Requirements:
brew install imagesnap # macOS
Wyze Camera (RTSP)
Stream from Wyze PTZ or v3 cameras over your local network.
export WYZE_IP=192.168.1.100
./scripts/capture.sh --device wyze
Setup:
- Enable RTSP in Wyze app ā Camera Settings ā Advanced Settings
- Set RTSP password
- Use the provided RTSP URL
ESP32-CAM (Wireless)
Deploy an ESP32-CAM to remote locations with OV2640 sensor + WiFi.
# See guides/esp32-setup.md for full firmware & config
./scripts/capture-esp32.sh --ip 192.168.1.50
š Security & Privacy
ā No Secrets in Git
- Comprehensive .gitignore blocks all sensitive files
- API keys stored in .env (never committed)
- Credentials in credentials.h or config.json are ignored
- auth.json, secrets/ folder all blocked
ā Local-First Architecture
- Motion detection runs locally (no cloud calls)
- Images stored in
~/.clawdbot/overwatch/(local filesystem) - AI analysis only happens when triggers are detected
- No continuous API usage or streaming to cloud
ā Configurable Data Retention
Captures are stored locally. Add a cron job for cleanup:
# Delete captures older than 7 days
find ~/.clawdbot/overwatch -name "*.jpg" -mtime +7 -delete
š ļø Requirements
- macOS or Linux
- imagesnap (
brew install imagesnap) for USB webcams - imagemagick (
brew install imagemagick) for motion detection - Python 3 for Overwatch scripts
- Telegram Bot Token for notifications (optional)
š File Structure
ClawCamera/
āāā scripts/
ā āāā capture.sh # One-shot USB webcam capture
ā āāā overwatch-pro # Full monitoring with Telegram
ā āāā smart-overwatch # Cost-optimized AI escalation
ā āāā motion-detect.sh # Basic motion detection
ā āāā wyze-dashboard # Wyze camera management
ā āāā capture-esp32.sh # ESP32-CAM capture
āāā firmware/
ā āāā espnow-base/ # ESP32 receiver firmware
ā āāā espnow-cam-auto/ # ESP32-CAM transmitter firmware
āāā guides/
ā āāā esp32-setup.md
ā āāā wyze-setup.md
ā āāā troubleshooting.md
āāā .env.example # Environment template
āāā .gitignore # Prevents secrets in git
āāā SKILL.md # OpenClaw integration guide
āāā README.md # This file
š¤ OpenClaw Integration
This skill is designed to work with OpenClaw. When properly configured:
- "Show me the office" ā Instant photo + analysis
- "Start overwatch" ā Begin monitoring
- "Is anyone there?" ā One-shot capture + AI check
See SKILL.md for full OpenClaw integration details.
License
MIT
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install office-cam?
Run openclaw add @snail3d/voice-devotional:skills/office-cam/skills/office-cam in your terminal. This installs office-cam into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/snail3d/voice-devotional. Review commits and README documentation before installing.
