Skip to content
LockycPublic

About

macOS screenshot tool: capture, scrolling capture and annotation, plus a cut tool that removes the middle of a screenshot and marks it with a torn seam

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

excerpt

excerpt

Platform Swift License

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.

A 64-row invoice sheet in Excerpt's editor: rows 8 to 60 cut out, the header and totals joined by a torn seam

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.

Install

Needs macOS 15 or later.

curl -fsSL https://raw.githubusercontent.com/lockyc/excerpt/main/install.sh | bash

The 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.

Use

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.

The cut invoice sheet with the two overdue rows highlighted, numbered 1 and 2, and their client names blurred

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.

Build from source

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 launch

Signing 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.

License

MIT

About

macOS screenshot tool: capture, scrolling capture and annotation, plus a cut tool that removes the middle of a screenshot and marks it with a torn seam

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages