A macOS screenshot tool that can cut the middle out of a screenshot. Keep a spreadsheet's header rows and its totals, drop the thousand rows between, and the join is marked with a torn seam. It works across columns too, and on long scrolling captures of web pages and forms.
It also does everything you'd expect of a screenshot tool: area, window, fullscreen and scrolling capture, copying the text out of a capture (OCR), a floating preview after each capture, and an editor for arrows, text and highlights. It records an area, window or display as a GIF (or MP4) small enough for GitHub, Slack and Google Chat, with the shortcuts you press and the clicks you make drawn in, and an editor to trim and blur it.
Needs macOS 15 or later.
curl -fsSL https://raw.githubusercontent.com/lockyc/excerpt/main/install.sh | bashThe installer downloads the latest release, checks that it is signed by Excerpt's developer and
notarized by Apple, then installs /Applications/Excerpt.app and starts it in the menu bar. It
asks for your password only when /Applications isn't writable. From a clone of this repo,
Claude Code's /excerpt:install runs the same install.
Updates install themselves: Excerpt checks daily, and Check for Updates… in its menu checks now. Running the installer again also updates.
Uninstall by quitting Excerpt, deleting /Applications/Excerpt.app, running
defaults delete com.lockyc.excerpt, and removing Excerpt from Screen Recording,
Accessibility and Input Monitoring in System Settings → Privacy & Security. Your captures stay
where they were saved.
| Default hotkey | Capture |
|---|---|
| ⌘⇧3 | Window |
| ⌘⇧4 | Area (the screen freezes while you select) |
| ⌘⇧5 | Text — OCR and QR codes straight to the clipboard, no file |
| ⌘⇧6 | Select an area, adjust it, then pick area, scrolling, text, window, fullscreen or record from a bar over it |
| ⌘⇧7 | Record — select an area, click a window or press F for the display, then Return; ⌘⇧7 again stops |
| ⌥4 | Recent Captures — your last seven captures in a floating panel: click copies, double-click opens, drag it out, hover to edit |
macOS's own screenshot shortcuts hold ⌘⇧3 to ⌘⇧5 until they are turned off in System Settings → Keyboard → Keyboard Shortcuts → Screenshots, or Excerpt's are rebound in its Settings. Excerpt's menu flags any shortcut macOS still holds.
The first capture asks for Screen Recording (System Settings → Privacy & Security → Screen & System Audio Recording); reopen Excerpt after granting it. Scrolling capture's auto-scroll also asks for Accessibility; scrolling the selected region yourself doesn't need it. Excerpt stitches as you go, and your own scrolling takes over from auto-scroll at any point. The first recording asks for Input Monitoring to show the shortcuts you press; without it the clip shows clicks only.
A recording starts after a 3-2-1 countdown. A bar below the area shows the time, with Pause, Stop and Discard; the menu bar can stop it too. Esc cancels only during the countdown — after that it belongs to the app you're recording, so Discard is how to throw a recording away. A recording stops at 5 minutes, and quitting Excerpt stops and saves one in progress.
Each capture is saved to ~/Documents/Screenshots/ (a setting), copied to the clipboard and
shown as a thumbnail with Edit and Close; clicking the thumbnail opens the capture. Files in that folder older
than 30 days move into YYYY/MM-Month/ folders, names unchanged (also a setting). The editor has
arrow, rectangle, path (click or freehand lines and outlines, optionally filled), text (plain or
on a background of its colour), numbered steps, highlight, blur,
crop and cut (C); a selected item's colour, size and options float beside it, and the
colour control's eyedropper samples any colour from the capture. Text takes any size, bold,
Sans, Mono or Serif and an alignment, and text placed on the capture's own text matches its
size, weight, font and colour. To conceal
text, patch (E) it with the colour around it; to change it, Replace (X) patches a
line and lets you retype it in the same size, weight and colour. To cut,
drag across the rows or columns to remove; the join becomes a torn seam. Cut and blurred
content never reaches the saved file. The original and your edits are kept in a separate
… original.png, so you can reopen a capture from Recent Captures (⌥4) and
adjust them. Border frames the image in a solid line of your colour and width, added
around it rather than over its edge, so a
screenshot pasted into an email stands apart from the text around it. Drawing or dragging
something past the edge grows the picture to hold it, filled with the window backdrop colour
from Settings. Save (⌘S) saves, copies the image and closes the editor.
Several captures taken in a row open together with the newest thumbnail's Edit All, or by
choosing several in Open Capture…: one editor, a filmstrip along the bottom, ⌘[ / ⌘] to move
between them. Step numbers carry on from one capture to the next, and any capture can
Restart at 1. Save writes them all and copies every image, in order.
A recording is saved as a GIF fitted to GitHub's 10 MB limit, or as an MP4 (a setting); one too
long for that GIF is saved as MP4, and its thumbnail says so. Its full-resolution
… original.mov is kept beside it. A recording's
Edit opens the recording editor: drag the timeline's ends to trim, draw blurs over the whole
clip or a span of it, turn the drawn Shortcuts and Clicks on or off, and choose GIF or
MP4.
Known limits: Capture Text reads side-by-side columns on one background across, line by line, so their text interleaves; scrolling capture stops on pages with large animations or video; a recording covers one display, a recorded window is the fixed area it covered when you clicked it, and a recording's blurs stay where they're drawn rather than following moving content.
Needs Xcode or the Command Line Tools with Swift 6, just,
and shellcheck for the gate.
just gate # shellcheck, format check, build, tests
just run # build the signed app and launch it
just install # build, install to /Applications and launchSigning uses a Developer ID Application identity from your keychain; set
APPLE_SIGNING_IDENTITY when more than one is present. Without one,
APPLE_SIGNING_IDENTITY=- just run signs ad hoc, and macOS then asks for Screen Recording again
after each rebuild.
What's planned is in docs/roadmap.md.
MIT

