camsnap — Claude Code skill: what it does, how to install
A skill for snapshots, clips, motion watches, and USB PTZ control across RTSP/ONVIF cameras and local webcams. Use it when an agent needs camera access.
npx skills add openclaw/openclaw --skill camsnap -a claude-codeWhat camsnap does
camsnap works with configured RTSP/ONVIF cameras and local webcams. It can discover devices, save snapshots, record clips, and watch for motion with a threshold and an action. Its configuration file is ~/.config/camsnap/config.yaml.
The camsnap binary and ffmpeg on PATH are required. Add a camera with camsnap add, then use camsnap snap, camsnap clip, or camsnap watch; camsnap doctor --probe probes the setup. On macOS, local devices support USB PTZ status, relative moves, home position, and absolute positioning.
PTZ control needs macOS Camera permission because UVC controls are available while a capture session is open. On-camera AI framing can override a manual position. Install this skill when an agent must operate cameras from the command line; skip it for projects with no camera workflow.
What it helps with
- capture a snapshot from an RTSP camera
- record a clip for a set duration
- watch for motion and run an action
- discover cameras and probe the setup
- move a USB PTZ camera to a position
Example prompts for the agent
- Take a snapshot from the `kitchen` camera and save it as `shot.jpg`.
- Record a `5s` clip from `kitchen` to `clip.mp4`.
- List the available cameras and check PTZ status for device `0`.
How to install camsnap
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill camsnap -a claude-code2Manually: put the files in place
~/.claude/skills/camsnap/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/camsnap/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill camsnap -a codex2Manually: put the files in place
.agents/skills/camsnap/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill camsnap -a cursor2Manually: put the files in place
.cursor/skills/camsnap/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openclaw/openclaw camsnap2Manually: put the files in place
.github/skills/camsnap/SKILL.md1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill camsnap -a gemini-cli2Platform CLI
gemini skills install https://github.com/openclaw/openclaw --path skills/camsnapManually: put the files in place
.devin/skills/camsnap/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill camsnap -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set45
The whole set →Similar
Questions about camsnap
How do I install camsnap in Claude Code?
Run npx skills add openclaw/openclaw --skill camsnap -a claude-code. The skill file is placed at ~/.claude/skills/camsnap/SKILL.md.
What does camsnap do?
camsnap captures snapshots and clips from RTSP/ONVIF cameras and local webcams, watches for motion, and controls USB PTZ cameras.
What does camsnap require?
The camsnap binary and ffmpeg on PATH are required. PTZ control on macOS also needs Camera permission.
Source text
SKILL.md · MIT
---
name: camsnap
description: "Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control."
homepage: https://camsnap.ai
metadata:
{
"openclaw":
{
"emoji": "📸",
"requires": { "bins": ["camsnap"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "steipete/tap/camsnap",
"bins": ["camsnap"],
"label": "Install camsnap (brew)",
},
],
},
}
---
# camsnap
Use `camsnap` to grab snapshots, clips, or motion events from configured cameras.
Setup
- Config file: `~/.config/camsnap/config.yaml`
- Add camera: `camsnap add --name kitchen --host 192.168.0.10 --user user --pass pass`
Common commands
- Discover: `camsnap discover --info`
- Snapshot: `camsnap snap kitchen --out shot.jpg`
- Clip: `camsnap clip kitchen --dur 5s --out clip.mp4`
- Motion watch: `camsnap watch kitchen --threshold 0.2 --action '...'`
- Doctor: `camsnap doctor --probe`
Local webcams (macOS)
- List devices: `camsnap devices`
- Snapshot from a local camera: `camsnap snap --device 0 --out webcam.jpg`
- PTZ position and ranges: `camsnap ptz status --device 0`
- Move a gimbal camera: `camsnap ptz goto --device 0 --pan 45 --tilt -18`
- Also `camsnap ptz move` (relative deltas) and `camsnap ptz home`.
Notes
- Requires `ffmpeg` on PATH.
- Prefer a short test capture before longer clips.
- PTZ needs macOS Camera permission: these cameras only service UVC controls while streaming, so `camsnap` holds a capture session open for the operation.
- Motion commands verify the settled position and exit non-zero if the camera did not reach it. On-camera AI framing can override manual positioning; disable tracking if moves keep missing.
© openclaw · MIT · openclaw/openclaw