What It Does
The motivating use case: copying one column out of an HTML table in an email. The boring solution is to copy the whole table, paste it somewhere, and trim it back to the column you wanted. CopyLens makes “this column I’m looking at” the same gesture as “this whole table” — you just draw a tighter box.
Hit your shortcut, drag a rectangle, release. A transparent overlay covers every connected display while you draw. CopyLens captures that rectangle at native pixel density via ScreenCaptureKit and runs Apple’s Vision framework over it. You get one of two outcomes:
- Text found — joined and placed on the clipboard as plain text, sorted top-to-bottom and left-to-right in reading order.
- No text found — the cropped image is placed on the clipboard as PNG + TIFF, ready to paste into any app that accepts images.
Because the gesture is the same regardless of content, you don’t have to decide ahead of time whether you want text or an image. Draw the box; CopyLens does the right thing.
Two Gestures, Same Hotkey
One column from a table. Draw a tight rectangle that covers just one column’s width. Vision only sees text inside the rectangle, so the result is exactly that column — top to bottom, one line per row, plain text. Paste anywhere. Tables in Mail, in browser pages, in PDFs, in screenshots-of-PDFs — all the same gesture.
A region of a diagram. Draw a rectangle around a chart, a panel of an image, a UI mockup. Vision finds no text (or filters out as noise anything it does), so CopyLens drops the cropped image on the clipboard instead. Paste into Notes, into a message, into a Keynote slide.
Controls
| Action | Result |
|---|---|
| controloptionshiftcommand\ | Open the selection overlay (default hotkey — configurable). Pairs naturally with HyperCaps as Hyper-\. |
| Drag | Draw a rectangle around the content you want to capture |
| Release mouse | Commit the capture |
| escape | Cancel without capturing |
A brief HUD confirms which path ran (“Copied 247 chars” / “Copied image 320×180”). Both outputs are paste-targetable immediately.
Multi-Display
The overlay covers every connected screen at once; you can drag your rectangle starting on whichever screen you’re working on. The capture is taken from the screen containing the rectangle’s midpoint, so a rectangle that physically straddles two screens captures from the screen it’s mostly on — a deliberate simplification, since straddling captures are rare enough not to warrant the per-display composition cost.
Settings
Right-click the menu bar icon and choose Settings… to configure:
- Hotkey — click the field and press the combination you want. Default is controloptionshiftcommand\ (Hyper-\); change it to anything that includes at least one modifier.
- Show feedback HUD — toggle the toast that appears after each capture. Off if you’d rather work silently.
- OCR languages — read-only display. CopyLens picks recognition languages from your system’s preferred language list, intersected with Vision’s supported set, with English always appended as a fallback. If your Mac is set to French, you’ll see
fr-FR, en-UShere and both will be recognised on every capture. - Launch at Login — start automatically when you log in.
All settings persist immediately, no Save/OK button.
Auto-updates are handled by Sparkle. Use the “Check for Updates…” menu item to check on demand; Sparkle’s prompt offers an “Automatically download and install updates in the future” checkbox the first time an update is available. CopyLens checks for new versions automatically once a day in the background.
Permissions
Screen Recording is the only permission CopyLens requests — it has to read pixels off your screen to OCR them; macOS prompts on first capture.
Accessibility is not required. The hotkey uses Carbon’s RegisterEventHotKey, which doesn’t need AX.
Privacy
- No telemetry. No usage reporting, no log file unless you explicitly turn one on, no network requests beyond Sparkle’s appcast fetch.
- No camera, microphone, or network access. Captures stay on-device — Vision OCR runs locally; pasteboard writes are local.
- Updates are EdDSA-signed. Your copy will only install genuine Jorvik Software releases.
Installation
Two formats on every release — both signed and notarised, pick whichever suits:
- Installer (
.pkg) — recommended for first-time installs. Double-click to run; macOS Installer placesCopyLens.appin/Applicationswithout quarantine or App Translocation. - Download (
.zip) — unzip and dragCopyLens.appto your Applications folder.
After installation, launch CopyLens and grant Screen Recording permission when prompted.
Building from Source
CopyLens builds via the shared Jorvik release.mk. With the jorvik-release sibling repo cloned alongside it and GNU Make 4 installed:
- Clone the repo:
git clone https://github.com/PerpetualBeta/CopyLens.git - Local install (signed with the Jorvik Developer ID):
gmake dev-build - Run the freshly-built copy:
gmake run - Signed, notarised, stapled
.zip+.pkgready to ship:gmake release
Requirements
macOS 14 (Sonoma) or later. Universal binary (Apple Silicon and Intel).