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
- soilmass/motion-design-agenttheir own version, first seen Nov 8, 2026
- autonomous-ai/lampOStheir own version, first seen Oct 15, 2026
- blockcell-labs/blockcelltheir own version, first seen Oct 8, 2026
- enigmatic-saini/AI_WAY_OF_BUILDING_V1their own version, first seen May 30, 2026
- autonomous-ai/autonomous-ostheir own version, first seen Mar 30, 2026
- autonomous-ai/Physical-AI-Operating-Systemtheir own version, first seen Mar 30, 2026
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-aiSkillclaude-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-aiSkillface-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
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- autonomous-ai/autonomous-os★ 569same name
- autonomous-ai/lampOS★ 569same name
- autonomous-ai/Physical-AI-Operating-System★ 569same name
- blockcell-labs/blockcell★ 262same name
- tomo3141592653/ayumu-oss★ 9same name
- soilmass/motion-design-agent★ 7same name
- enigmatic-saini/AI_WAY_OF_BUILDING_V1★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository51 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- apple-notesSkill
- apple-remindersSkill
- bear-notesSkill
- brainstormSkill
- content-creatorSkill
- context-healthSkill
- daily-briefingSkill
- deep-readSkill
- draft-messageSkill
- emailSkill
- exa-searchSkill
- gh-issuesSkill
- gif-searchSkill
- github-opsSkill
- google-workspaceSkill
- hue-lightsSkill
- image-genSkill
- imessageSkill
- memory-managerSkill
- migrate-openclawSkill
- notionSkill
- obsidianSkill
- password-managerSkill
- pdf-editorSkill
- peekabooSkill
- placesSkill
- podcast-makerSkill
- quick-researchSkill
- rss-monitorSkill
- security-auditSkill
- session-logsSkill
- setupSkill
- skill-creatorSkill
- slack-opsSkill
- smart-bedSkill
- sonosSkill
- speech-to-textSkill
- spotifySkill
- summarizeSkill
- task-trackerSkill
- text-to-speechSkill
- things-macSkill
- tmux-controlSkill
- trelloSkill
- trend-scoutSkill
- video-extractSkill
- weatherSkill
- whatsappSkill
- x-twitterSkill
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
- Very specific: line 99
Check if ffmpeg is installed first: which ffmpeg
- Very specific: line 100
If not installed, show brew install ffmpeg and stop
- Very specific: line 101
Always use -y flag to overwrite without prompting
- Very specific: line 103
Default output directory: ~/Pictures/ for snapshots, ~/Movies/ for clips
- Very specific: line 105
If RTSP connection times out, suggest using -rtsp_transport tcp (already included above)
- Distinctive: line 106
If user doesn't provide camera URL, ask for it or list available webcams
- Distinctive: line 107
Never log camera credentials in output or memory
“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.
Files
Camera Capture
Capture snapshots and clips from IP cameras (RTSP/ONVIF) and webcams.
Prerequisites
Install ffmpeg (required):
brew install ffmpegFor 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/video0or device index0
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/nullClip — 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/nullList 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/nullUsage 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/nullRules
- Check if ffmpeg is installed first:
which ffmpeg - If not installed, show
brew install ffmpegand stop - Always use
-yflag 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
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
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.

