A lightweight screenshot capture and annotation tool for macOS, written in Go.
- Region Selection - Click and drag to select any screen region
- Annotation Tools - Add arrows and rectangles to highlight areas
- Quick Export - Copy to clipboard or save to file
- Global Hotkey - Trigger capture from anywhere (default:
Cmd+Shift+X) - Menu Bar App - Runs quietly in your menu bar
brew tap owenrumney/tools
brew install --cask schnappitDownload the latest .dmg from the Releases page.
- Open the
.dmgfile - Drag Schnappit to Applications
- Launch from Applications
Note: On first launch, macOS may show a security warning because the app isn't notarized. To open it:
- Right-click (or Control-click) on Schnappit in Applications
- Select "Open" from the context menu
- Click "Open" in the dialog
Alternatively, run this in Terminal:
xattr -cr /Applications/Schnappit.app# Clone the repository
git clone https://github.com/owenrumney/schnappit.git
cd schnappit
# Build the application bundle
make bundle
# Copy to Applications
cp -r build/Schnappit.app /Applications/
# Or run directly
make run- macOS 14.0 (Sonoma) or later
- Go 1.21 or later (for building from source)
- Launch - Start Schnappit from Applications or run
make run - Capture - Press
Cmd+Shift+Xor click the menu bar icon and select "Capture Screenshot" - Select Region - Click and drag to select the area you want to capture
- Annotate - Use the toolbar to add arrows or rectangles
- Export - Click the copy icon to copy to clipboard, or save icon to save to file
| Action | Shortcut |
|---|---|
| Capture Screenshot | Cmd+Shift+X (configurable) |
| Confirm Selection | Enter |
| Cancel Selection | Escape |
Schnappit stores its configuration at ~/.config/schnappit/config.json.
{
"hotkey": "cmd+shift+x"
}Hotkeys are specified as modifier keys plus a key, separated by +:
Modifiers: cmd, ctrl, shift, alt (or option)
Keys: a-z, 0-9, f1-f12, space, enter, escape, tab, delete
Examples:
cmd+shift+x- Command + Shift + Xctrl+alt+s- Control + Option + Scmd+shift+4- Command + Shift + 4
You can also override the config file using the SCHNAPPIT_HOTKEY environment variable.
Schnappit requires the following macOS permissions:
-
Screen Recording - To capture screenshots
- System Settings → Privacy & Security → Screen Recording → Enable Schnappit
-
Accessibility - For global hotkey support
- System Settings → Privacy & Security → Accessibility → Enable Schnappit
You'll be prompted to grant these permissions on first use.
Screenshots are saved to ~/Pictures/schnappit/ with timestamp-based filenames:
schnappit-2024-01-15-143052.png
# Run in development mode
make dev
# Run tests
make test
# Format code
make fmt
# Lint code
make lintMIT License - see LICENSE file for details.
Built with:
- Fyne - Cross-platform GUI toolkit
- golang.design/x/hotkey - Global hotkey support
- golang.design/x/clipboard - Clipboard access