
If you have a use-case where in you want to capture an image (photo) using the Macbook webcam using a Terminal Command, well you can do so easily by using a tool called imagesnap
You can install the imagesnap package using brew,
% brew install imagesnap
Usage Example:
Once installed, open the Mac Terminal App and simply type imagesnap on the shell prompt when ready to capture an image,
% imagesnap
Capturing image from device "FaceTime HD Camera"...snapshot.jpg
For the first use you will be asked - "Terminal.app" would like to access the camera. say OK

The image you captured will be saved as snapshot.jpg to the current location you are in (pwd)
To save the image with a custom image name, pass in an argument with the file-name.jpg
Example:% imagesnap mike-2023-01-23.jpg
If you have multiple camera devices attached to your device, make use of the -l option to list them,
% imagesnap -l
Video Devices:
=> FaceTime HD Camera (Built-in)
=> USB 3.0 Camera
=> bitCam
You can set the custom camera to click a photo using the -d option followed by the device name,
Example:% imagesnap -d bitCam
Check out the help to know more,
% imagesnap -h
USAGE: imagesnap [options] [filename]
Version: 0.2.15
Captures an image from a video device and saves it in a file.
If no device is specified, the system default will be used.
If no filename is specfied, snapshot.jpg will be used.
JPEG is the only supported output type.
-h This help message
-v Verbose mode
-l List available video devices
-t x.xx Take a picture every x.xx seconds
-n num Limit to snapshots in -t timelapse mode
-q Quiet mode. Do not output any text
-w x.xx Warmup. Delay snapshot x.xx seconds after turning on the camera (default 3sec)
-d device Use named video device
Github Page: https://github.com/rharder/imagesnap
You can easily use this package in a Python Script to fit in a use-case such as
- Take class attendance using photo capture and face recognition.
- Take a photo after submitting an application form.
- Take photo before a git commit
Have Questions? Post them here!
- How to Open Finder using Mac Terminal
- How to install maven in macOS using Terminal Command
- How to install iTerm2 Mac Terminal Alternative
- Find Mac version using terminal command
- Zsh Shell: Custom alias that you may find useful
- How to Uninstall Brew on Mac
- Go to Specific file path using Mac Finder
- How to open new tabs macOS Terminal
- fix macOS: The digital signature on the update is missing or invalid. Ventura
- ls: .: Operation not permitted - Mac Terminal ZSH Error
- Closest Alternate to Notepad on Mac
- How to Open Trash on Mac
- How to uninstall Microsoft Outlook on Mac
- [fix] macOS Ventura xcrun: error: invalid active developer path missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
- [Vi/Vim] How to move cursor to the start of a line
- macOS 13 Ventura - The New About this Mac Window
- Best Free Gif screen capture app now available for M1 Chip Mac - LICECap
- 30+ Zoom video communications application shortcuts for macOS
- How to create alias in macOS
- How to install Node using Brew on Mac
- How to start/boot macOS in safe mode - Big Sur 11.0, Catalina 10.15, or Mojave 10.14
- Cant find System Preferences... under macOS Ventura Apple Menu?
- Mac turn dark mode on or off using terminal command
- How to Close Safari in Mac using Keyboard shortcut
- How to Upgrade Mac from Monterey to macOS Ventura
- How to uninstall/remove or disable Microsoft Teams - Teams
- Best way to calculate elapsed time in Java using Java 8 Duration & Instant Class with Nanoseconds precision - Java
- View in File Explorer option missing in SharePoint Online Edge browser - SharePoint
- Install Java 17 (LTS) JDK on ARM based M1/M2 Mac Natively - MacOS
- The package must have at least one . separator [Android Studio] - Android-Studio
- Resolve System.IO.PathTooLongException [Sharepoint C# .Net] - SharePoint
- [Fix] Instant java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Years - Java
- How to Insert an Inverted Question Mark on Mac ¿ - MacOS