Open source · macOS native

Your clipboard, but with a memory.

A native macOS clipboard manager. Lives in the menu bar. Opens with ⌘` - pastes with Enter.

Download .dmg View on GitHub

macOS 14 Sonoma or newer · Free · Open source (MIT)

Search history
Favorites All Folders Links Images Colors Code
S https://developer.apple.com/design/human-interface-guidelines Safari · Human Interface Guidelines - Apple Developer
{ } const panel = NSPanel(.nonactivatingPanel) VS Code · MaCopyPanel.swift CODE
#5E5CE6 Figma · Brand / Indigo COLOR
N Pick up oat milk, sparkling water, and a clipboard manager. Notes · Shopping list
>_ ./build-app.sh && open "MaCopy by ilkome.app" Terminal · zsh - macopy CODE
↵ Paste ⇧↵ Copy ⌘S Favorite 5 items

Four ideas that make a history worth keeping.

Tabs, folders, comments and link previews - the difference between a pile of old clips and something you can actually find your way around.

Tabs

Every type, already sorted.

The moment something lands on the clipboard, MaCopy reads what it is - a link, a colour, a snippet of code, an image, plain text - and drops it into the right tab. Favorites and Folders sit alongside for the things you keep.

  • Nothing to tag or file - detection runs the instant you copy.
  • Hunting for that one hex code? The Colors tab is already just colors.
  • ← → flicks between tabs without lifting a hand off the keyboard.
FavoritesAllFoldersLinksImagesColorsCode
S developer.apple.com/design LINK
#5E5CE6 COLOR
{ } NSPanel(.nonactivatingPanel) CODE
Screenshot 2026-06-26 IMG
Folders

Collections that cut across types.

Tabs sort by what a clip is. Folders sort by what it's for. Gather the link, the screenshot and the snippet for one project into a single folder - even though each lives in a different tab.

  • One clip can live in many folders at once - no copies, no clutter.
  • Create a folder and drop the clip in, all from a single ⌘L sheet.
  • Folders open in a three-pane view: folders, their clips, a live preview.
Q3 launch checklist
ilkome/macopy
#5E5CE6
Add to folder
Project Aurora
Read later
Snippets
Brand & color
+ Create folder…
Comments

Leave yourself a note.

A bare hex value or an API token tells you nothing in a week. Attach a comment and the clip gets a name in your own words - one that search can find even when the content itself is gibberish.

  • Give a cryptic token or hex value a name you'll actually recognise.
  • Comments are searchable - find a clip by the note, not just its text.
  • Saves itself as you type. ⌘W jumps straight to the note field.
N eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Notes · staging token
Comment
Staging JWT - expires Friday, ask Sam to rotate
⌘W to edit Saves as you type
Links

A link that looks like the page.

A URL on its own is just a string. MaCopy fetches the page's title, description, image and favicon, so you recognise a link at a glance - and the Links tab groups your history by the site it came from.

  • Title, description, image and favicon - pulled via OpenGraph.
  • The Links tab folds your history by site, newest and busiest first.
  • Previews are fetched over HTTPS only; private addresses are blocked.
https://github.com/ilkome/macopy
GitHub
ilkome/macopy
Your clipboard, but with a memory. A native macOS clipboard manager.
Grouped by site
github.com 47
developer.apple.com 23
stripe.com 12

Thoughtful where it counts.

The details you only notice when they're missing - reading, searching, guarding and cleaning up after itself.

On-device OCR

Apple's Vision framework reads English and Russian text inside screenshots. Search finds words that only ever existed as pixels.

Fuzzy search

One field filters across content, OCR text, your comments and link titles - even the app a clip came from. As you type.

Smart type detection

URLs, colors, code, images and plain text are recognized the instant you copy. That's the engine behind every tab.

Private-data filter

Honors org.nspasteboard.ConcealedType, so passwords from 1Password and Bitwarden never reach the history.

Secret detection

API keys, tokens and JWTs are caught by pattern and entropy, and kept out of your history automatically.

Encrypted on disk

History and images are stored with AES. The key lives in your Keychain and is unlocked only on this Mac.

Doesn't steal focus

A non-activating panel. The caret stays in your original field, so ⌘V lands exactly where you were typing.

Quick Look

Tap Space on any image to see it full-size, straight from the panel. No app switch, no detour.

Tidies itself

Recent clips stay; the oldest items and stale link previews are pruned automatically. The history never balloons.

Built for hands that never leave the keyboard.

Open, search, paste - the whole loop happens before your fingers reach the trackpad.

⌘` Show / hide panel (configurable)
Navigate the list
Switch tabs
Paste into the previous app
Copy without pasting
S Toggle favorite
L Add to folder
W Edit comment
E Edit the clip's text
D Duplicate a text clip
Open a link in the browser
Delete from history
Space Quick Look for images
Esc Hide the panel

Three keys. That's the whole workflow.

01

Press ⌘` to open

The panel floats above your work without taking focus from the app underneath.

02

Type to search

Fuzzy matching narrows the history instantly - including text recognized inside screenshots.

03

Hit Enter

It pastes straight into the app you came from. The caret never moved.

Everything stays on your Mac.

No accounts, no telemetry, no cloud sync. OCR runs on-device through Apple's Vision framework. The history is a local SQLite file - and the source code is on GitHub.

No accounts No telemetry No cloud sync On-device OCR

Install in a minute, or build it yourself.

Direct download

Grab the signed .dmg from GitHub Releases, drag it into Applications, and right-click → Open on first launch.

Download .dmg

From source

Swift 6 toolchain (Xcode 16+). One script builds, bundles and signs the app.

git clone https://github.com/ilkome/macopy
cd macopy
./build-app.sh

Updates

Automatic through Sparkle. MaCopy checks the appcast, verifies the EdDSA signature and updates itself - or trigger it from the menu bar.

Check for Updates →