skills$openclaw/office-cam
snail3d4.9kā˜…

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.

4.9k stars5.4k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026data analytics

Skill Snapshot

nameoffice-cam
descriptionMulti-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.
ownersnail3d
repositorysnail3d/clawforgodpath: skills/office-cam/skills/office-cam
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @snail3d/clawforgod:skills/office-cam/skills/office-cam
last updatedFeb 7, 2026

Maintainer

snail3d

snail3d

Maintains office-cam in the OpenClaw Skills directory.

View GitHub profile
File Explorer
4 files
office-cam
scripts
wyze-capture.py
2.3 KB
README.md
7.9 KB
SKILL.md
7.2 KB
SKILL.md

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

TypeReliabilitySetupBest For
šŸ–„ļø USB Webcam⭐⭐⭐⭐⭐ InstantPlug & playDesk, office
šŸ“¹ Wyze PTZ/v3⭐⭐⭐⭐⭐ ReliableRTSP streamRooms, garage, shed
šŸ“” ESP32-CAM⭐⭐⭐ ExperimentalESP-NOW wirelessDIY, 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:

  1. šŸ‘€ Local motion detection (file size comparison, zero API cost, runs always)
  2. 🚨 Motion detected → creates trigger file in ~/.clawdbot/overwatch/triggers/
  3. šŸ¤– I detect the trigger → analyze image with vision model (only when motion happens)
  4. šŸ‘¤ Person found? → Send alert & optionally continue watching
  5. šŸ“Š 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:

  1. I instantly capture from your webcam
  2. Analyze for clear faces/activity
  3. 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 see
  • stream - I'll send you the live stream link
  • capture - 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:

  1. Enable RTSP in Wyze App:

    • Open Wyze app → Camera Settings → Advanced Settings
    • Enable RTSP, set password
    • Copy the RTSP URL
  2. Add to system:

    ~/clawd/skills/office-cam/scripts/wyze-dashboard add
    # Enter camera name (e.g., "shed")
    # Enter RTSP URL
    
  3. 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:

  1. Base station broadcasts "beacon" every 2 seconds
  2. Camera auto-discovers base station
  3. Camera captures and sends photo wirelessly
  4. Base receives and saves to SD/outputs to serial

Range: 100+ meters (no WiFi needed!)


Files

ScriptPurpose
capture.shUSB webcam
wyze-captureQuick Wyze capture
wyze-dashboardMulti-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
README.md

šŸ“¹ 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

šŸ—ļø 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:

  1. Local motion detection runs continuously using file size comparison (zero API cost)
  2. When motion is detected, a trigger file is created in ~/.clawdbot/overwatch/triggers/
  3. OpenClaw detects the trigger and analyzes the image using its configured vision model
  4. If a person is detected, notifications are sent via Telegram
  5. 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 image
  • stream — Get live stream link
  • capture — 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:

  1. Enable RTSP in Wyze app → Camera Settings → Advanced Settings
  2. Set RTSP password
  3. 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/clawforgod: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/clawforgod. Review commits and README documentation before installing.