mac-camera

star 5

Take a photo using the MacBook's built-in camera and analyze it with Claude's vision. Use this skill whenever the user wants to capture a photo from their webcam/camera, see what's in front of the camera, take a selfie, snap a picture, or visually inspect something using the laptop camera. Also trigger when users say things like "look at this", "what do you see", "take a picture", "use my camera", "capture what's on my desk", or any request that involves using the MacBook's physical camera to see the real world. This is specifically for the built-in laptop camera — not screenshots or screen capture.

vincentor By vincentor schedule Updated 3/5/2026

name: mac-camera description: >- Take a photo using the MacBook's built-in camera and analyze it with Claude's vision. Use this skill whenever the user wants to capture a photo from their webcam/camera, see what's in front of the camera, take a selfie, snap a picture, or visually inspect something using the laptop camera. Also trigger when users say things like "look at this", "what do you see", "take a picture", "use my camera", "capture what's on my desk", or any request that involves using the MacBook's physical camera to see the real world. This is specifically for the built-in laptop camera — not screenshots or screen capture.

Mac Camera — Capture & Analyze Photos

Take a photo with the MacBook camera, then analyze it with Claude's vision. No permission prompt needed — the user installed this skill and macOS enforces its own camera permission.

Capture & Verify (single Bash call)

Run the entire capture in one Bash call. The script detects the available tool, takes the photo, verifies it, and retries once on failure:

PHOTO_PATH="/tmp/camera_$(date +%Y%m%d_%H%M%S).jpg"
ERR_LOG="/tmp/camera_err_$$.log"

capture_imagesnap() {
  imagesnap -w 2 "$PHOTO_PATH" 2>"$ERR_LOG"
}

capture_ffmpeg() {
  ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -t 2 -update 1 -y "$PHOTO_PATH" 2>"$ERR_LOG"
}

verify() {
  if [ -f "$PHOTO_PATH" ] && [ "$(stat -f%z "$PHOTO_PATH" 2>/dev/null || stat -c%s "$PHOTO_PATH" 2>/dev/null)" -gt 5000 ]; then
    return 0
  fi
  return 1
}

# Detect tool
if command -v imagesnap &>/dev/null; then
  TOOL=imagesnap
elif command -v ffmpeg &>/dev/null; then
  TOOL=ffmpeg
else
  echo "NO_TOOL: install imagesnap (brew install imagesnap) or ffmpeg"
  exit 1
fi

# Attempt capture (with 1 retry)
for attempt in 1 2; do
  [ "$attempt" -eq 2 ] && echo "Retry..." && sleep 1
  "capture_$TOOL"
  if verify; then
    echo "OK path=$PHOTO_PATH size=$(stat -f%z "$PHOTO_PATH" 2>/dev/null || stat -c%s "$PHOTO_PATH" 2>/dev/null) tool=$TOOL"
    rm -f "$ERR_LOG"
    exit 0
  fi
done

echo "CAPTURE_FAILED after 2 attempts. Error log:"
cat "$ERR_LOG"
rm -f "$ERR_LOG"
exit 1

Analyze the Photo

Use Claude's Read tool on the photo path printed by the script:

Read(file_path="<the PHOTO_PATH from output>")

Describe what you see naturally. Do not ask "want to know anything specific?" — just describe the scene and let the user follow up if they want.

Troubleshooting

Problem Likely cause Fix
Black/dark image Camera warmup insufficient Increase -w to 3s (imagesnap) or -t to 3s (ffmpeg)
"No camera found" Camera in use by another app Close FaceTime, Zoom, etc.
Permission denied macOS camera permission not granted System Settings > Privacy & Security > Camera > enable Terminal/iTerm
ffmpeg device error Wrong device index Run ffmpeg -f avfoundation -list_devices true -i "" 2>&1 and try index "1" or "2"
File <5KB Corrupted capture Script auto-retries; if still fails, check error log output
Install via CLI
npx skills add https://github.com/vincentor/claude-code-plugins --skill mac-camera
Repository Details
star Stars 5
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator