agentleFS
claude-worldclaude-world/claude-agent/.claude/skills/camera/SKILL.md

camera

Skill5 starsChanged 8 months agoMITView on GitHub

Capture frames or short clips from RTSP/ONVIF network cameras or local webcams using ffmpeg or camsnap. Use when user says "take a snapshot from camera", "capture front door", "grab a frame from the security cam", or any camera capture request involving IP cameras or webcams.

  • Installs packages

7 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use claude-buddy, face-enroll and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • autonomous-aiSkill

    claude-buddy

    Coordinate with the Claude Buddy companion (Claude Desktop + Claude Code on the user's Mac) — voice-approve tool permission prompts and stay aware of Claude activity.

    Also in 3 projects that use this

  • autonomous-aiSkill

    face-enroll

    Manage the device's face recognition roster — enroll new faces (3 paths: user-supplied photo, agent-captured snapshot on user request, or HAL's familiar-stranger prompt) and maintain the enrolled set (status / remove / reset). All enrolled persons are friends; strangers stay unnamed until promoted via one of the enroll flows.

    Also in 3 projects that use this

  • +10 more from autonomous-ai

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Check if ffmpeg is installed first: which ffmpeg

    line 99
  2. Very specific:

    If not installed, show brew install ffmpeg and stop

    line 100
  3. Very specific:

    Always use -y flag to overwrite without prompting

    line 101
  4. Very specific:

    Default output directory: ~/Pictures/ for snapshots, ~/Movies/ for clips

    line 103
  5. Very specific:

    If RTSP connection times out, suggest using -rtsp_transport tcp (already included above)

    line 105
  6. Distinctive:

    If user doesn't provide camera URL, ask for it or list available webcams

    line 106
  7. Distinctive:

    Never log camera credentials in output or memory

    line 107

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Camera Capture

Capture snapshots and clips from IP cameras (RTSP/ONVIF) and webcams.

Prerequisites

Install ffmpeg (required):

brew install ffmpeg

For ONVIF device discovery:

pip install onvif-zeep
# or: brew install gst-plugins-bad  (includes ONVIF support)

Camera stream URLs are typically in these formats:

  • RTSP: rtsp://user:pass@192.168.1.x:554/stream
  • HTTP MJPEG: http://192.168.1.x:8080/video
  • Local webcam (macOS): /dev/video0 or device index 0

Commands

Snapshot — single frame to image

# From RTSP stream
ffmpeg -y -rtsp_transport tcp -i "rtsp://user:pass@IP:554/stream1" \
  -vframes 1 -q:v 2 snapshot.jpg 2>/dev/null

# From HTTP MJPEG
ffmpeg -y -i "http://IP:8080/video" -vframes 1 snapshot.jpg 2>/dev/null

# From local webcam (macOS AVFoundation)
ffmpeg -y -f avfoundation -i "0" -vframes 1 webcam.jpg 2>/dev/null

Clip — short video segment

# 10-second clip from RTSP
ffmpeg -y -rtsp_transport tcp -i "rtsp://user:pass@IP:554/stream1" \
  -t 10 -c copy clip.mp4 2>/dev/null

# 5-second clip from webcam
ffmpeg -y -f avfoundation -i "0" -t 5 webcam_clip.mp4 2>/dev/null

List Available Webcams (macOS)

ffmpeg -f avfoundation -list_devices true -i "" 2>&1 | grep -E "^\[AVFoundation"

Thumbnail from saved video

ffmpeg -y -i input.mp4 -ss 00:00:02 -vframes 1 thumbnail.jpg 2>/dev/null

Usage Examples

"Snapshot from front door camera at 192.168.1.10"

ffmpeg -y -rtsp_transport tcp -i "rtsp://admin:admin@192.168.1.10:554/stream1" \
  -vframes 1 -q:v 2 ~/Pictures/front_door_$(date +%Y%m%d_%H%M%S).jpg 2>/dev/null
echo "Saved to ~/Pictures/"

"Take a photo from my webcam"

ffmpeg -y -f avfoundation -i "0" -vframes 1 ~/Pictures/webcam_$(date +%Y%m%d_%H%M%S).jpg 2>/dev/null

"Record 15 seconds from backyard camera"

ffmpeg -y -rtsp_transport tcp -i "rtsp://user:pass@192.168.1.20:554/stream" \
  -t 15 -c copy ~/Movies/backyard_$(date +%Y%m%d_%H%M%S).mp4 2>/dev/null

Rules

  • Check if ffmpeg is installed first: which ffmpeg
  • If not installed, show brew install ffmpeg and stop
  • Always use -y flag to overwrite without prompting
  • Suppress verbose ffmpeg output with 2>/dev/null — only show the result path
  • Default output directory: ~/Pictures/ for snapshots, ~/Movies/ for clips
  • Auto-append timestamp to filenames to avoid collisions
  • If RTSP connection times out, suggest using -rtsp_transport tcp (already included above)
  • If user doesn't provide camera URL, ask for it or list available webcams
  • Never log camera credentials in output or memory

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.