Snap-O is a fast, tidy macOS app for capturing screenshots and screen recordings from Android devices and emulators.
It runs on macOS 15 or later and requires adb
from the Android Platform Tools.
Taking screenshots for teammates or pull requests adds many small paper cuts. You might like Snap-O if you've ever wished you could:
- Share screenshots and recordings without littering your disk with throwaway files
- Preview a recording instantly without saving it first
- Scrub frame by frame to confirm an animation behaves as expected
- Use something that feels faster than the default capture tools
I've built variations of this tool a few times over the last decade; this is the first one I'm open-sourcing.
- Shows a screenshot the moment the window opens
- Instantly preview screen recordings, and step through frame-by-frame.
- Lets you drag and drop captures anywhere without saving them first
- Multi-device support
- Supports multiple windows of captures at once
- Keeps your disk uncluttered by cleaning up after itself
- Integrates with Android Studio External Tools
- Connect an Android device with USB debugging enabled or start an emulator
- Launch Snap-O
- Enjoy the immediate screenshot
⌘R
to refresh the screenshot.⇧⌘R
to start a screen recording.
Snap-O talks to the ADB server directly without running adb
.
If the ADB server is not running, Snap-O asks you to pick your adb
binary so it can restart the server for you.
Note: Snap‑O uses the macOS Hardened Runtime. It will run the adb
binary you select, so always choose a trusted adb
from the official Android Platform Tools.
After you capture a screenshot or screen recording, you can drag and drop it without saving first. Drop the capture straight into a GitHub pull request, a Slack message, or any app that accepts images and video.
Action | Shortcut |
---|---|
New screenshot | ⌘R |
Start recording | ⇧⌘R |
Start live preview | ⇧⌘L |
Stop recording / preview | ⎋ |
Save as | ⌘S |
Copy image to clipboard | ⌘C |
Previous device | ⌘[ |
Next device | ⌘] |
Use Android Studio’s External Tools to trigger Snap-O directly from the IDE.
- In Android Studio, open
Settings
→Tools
→External Tools
(orPreferences
on macOS). - Click
+
and add a new tool named "Snap-O Screenshot".- Program:
open
- Arguments:
snapo://capture
- Program:
- Repeat to add "Snap-O Recording" with the same Program and the Arguments
snapo://record
. - The new tools appear under
Tools
→External Tools
. - Assign keymap shortcuts if you like, e.g.
⇧⌘S
to activate a screenshot.
Running these tools launches Snap-O (or brings it to the foreground) and immediately starts a capture or recording.
There is currently no support for choosing a specific device/emulator when starting Snap-O in this way.
Snap-O uses AVKit because it gives a polished video player on macOS and keeps the download small. VLC-based playback felt clunky and the viewing experience suffered. When Compose Multiplatform lets us use a native player with the same quality, we'll revisit the design.
Snap-O currently has only basic "Live Preview" support.
For a more feature-rich live preview, take a look at scrcpy.
Snap-O is a small side project kept alive when time allows. If it works for you, great! If it doesn't, feel free to open an issue or fork it to fit your needs.
Building requires Xcode 16 or later.
- Install the Android Platform Tools (via Android Studio or
brew install android-platform-tools
). - Open
Snap-O.xcodeproj
in Xcode. - Build and run.
If you need to notarize the app yourself:
- Copy
Config/Signing.xcconfig.sample
→Config/Signing.xcconfig
. - Edit the new file with your Apple Developer Team ID and signing certificate name.
- Archive (⌘B) or upload as usual. The file is ignored by Git, so your credentials remain private.
Bug reports and small patches are welcome, but there is no formal roadmap. If you do decide to contribute, please take a quick look at CONTRIBUTING.md and the CODE_OF_CONDUCT.md.
This project is licensed under the Apache License 2.0, Copyright 2025 OpenAI. See the LICENSE file for details.