camera
Capture photos from MacBook webcams. Use when user asks to take a photo, picture, snapshot, or see them. Two cameras available - Brio (front-facing on monitor) and FaceTime (side angle from MacBook).
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/therohitdas/cameraCamera Skill
Available Cameras
| Camera | Index | Position | Best For |
|---|---|---|---|
| Brio 100 | 0 | On external monitor, facing user directly | Front view, face shots |
| FaceTime HD | 1 | MacBook on right side, angled toward user | Side/profile view |
Capture Commands
Use -loglevel error to suppress ffmpeg spam. Always warm up for 5s (camera needs exposure adjustment).
Brio (front view)
ffmpeg -loglevel error -f avfoundation -framerate 30 -i "0" -t 5 -y /tmp/brio_warmup.mp4 && \
ffmpeg -loglevel error -sseof -0.5 -i /tmp/brio_warmup.mp4 -frames:v 1 -update 1 -y /tmp/brio.jpg
FaceTime (side view)
Must use -pixel_format nv12 to avoid buffer errors.
ffmpeg -loglevel error -f avfoundation -pixel_format nv12 -framerate 30 -i "1" -t 5 -y /tmp/facetime_warmup.mp4 && \
ffmpeg -loglevel error -sseof -0.5 -i /tmp/facetime_warmup.mp4 -frames:v 1 -update 1 -y /tmp/facetime.jpg
Both cameras (parallel)
Run both commands simultaneously for multi-angle shots.
Output
- Photos saved to
/tmp/brio.jpgand/tmp/facetime.jpg - Warmup videos in
/tmp/*_warmup.mp4(can be deleted) - Photos are ~80-100KB each
Gotchas
- Close Photo Booth or other camera apps first (can conflict)
- FaceTime camera REQUIRES
-pixel_format nv12or it fails with buffer errors - 5s warmup is necessary for proper exposure
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-therohitdas-camera": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
transcriptapi
Full TranscriptAPI toolkit — fetch YouTube transcripts, search videos and channels, browse channel uploads, get latest videos, and explore playlists. Use when the user wants to work with YouTube content programmatically, get transcripts for summarization or analysis, find videos, or monitor channels. Triggers on YouTube URLs, "transcript", "transcriptapi", "video summary", "what did they say", "find videos about", "search youtube".
video-transcript
Extract full transcripts from video content for analysis, summarization, note-taking, or research. Use when the user wants a written version of video content, asks to "transcribe this", "get the text from this video", "convert video to text", or shares a video URL for content extraction.
youtube-playlist
Browse YouTube playlists and fetch video transcripts. Use when the user shares a playlist link, asks "what's in this playlist", "list playlist videos", "browse playlist content", or wants to work with playlist videos and get their transcripts.
subtitles
Get subtitles from YouTube videos for translation, language learning, or reading along. Use when the user asks for subtitles, subs, foreign language text, or wants to read video content. Supports multiple languages and timestamped output for sync'd reading.
slack-personal
Read, send, search, and manage Slack messages and DMs via the slk CLI. Use when the user asks to check Slack, read channels or DMs, send Slack messages, search Slack, check unreads, manage drafts, view saved items, or interact with Slack workspace. Also use for heartbeat Slack checks. Triggers on "check slack", "any slack messages", "send on slack", "slack unreads", "search slack", "slack threads", "draft on slack", "read slack dms", "message on slack".