Open source · Native Swift · macOS 14+

Everything you’ve copied, one shortcut away.

Pastiche keeps your clipboard history and brings it up on '. Arrow to the snippet or screenshot you copied an hour ago, press Return, and it lands in the app you were just in.

  • MIT licensed
  • About 2,200 lines of Swift
  • 1.2 MB app

The Pastiche popup: a searchable list of recent clipboard entries, text and images, navigated with the arrow keys.

What it does

A clipboard history, and not much else.

Pastiche does one job. There is no sync, no snippet library, and no stack of settings to work through before it is useful.

One shortcut

' by default, rebindable to anything with a modifier. The popup opens on the screen your pointer is on, and closes when you click away.

Keyboard all the way

Arrows to move, to switch between All, Text and Images, Return to paste, ⌘1⌘0 to jump straight to a row.

Text and images

Snippets show as text. Images show as large previews sized to their own aspect ratio, so a screenshot looks like a screenshot. Filter to either type.

Search as you type

Start typing and the list narrows. Every word has to match, so “png kong” finds what you would expect. Tab jumps into the field if you prefer.

Pastes where you were

Hands focus back to the app you came from and presses ⌘V for you. That needs the Accessibility permission; without it, Pastiche just loads the clipboard.

Forgets on request

Delete an entry with as you navigate, or clear everything. History is saved to disk, capped at 500 items by default, and survives restarts.

Keyboard

Built to be used without the mouse.

The paste key and the delete key are configurable. Everything else works as listed.

Open or close the popup'
Move through the list
Switch All / Text / Images
Paste the selected itemReturn
Paste the numbered row⌘1⌘0
Search (or just start typing)Tab
Clear the search, then closeEsc
Delete the selected item
Clear the whole history
Jump eight rows, or to either endPgUpPgDnHomeEnd

Bare only deletes while the caret is outside the search field, where it has to stay ordinary text editing. deletes from either place.

Privacy

Your clipboard is the most sensitive thing on your Mac.

It is where passwords, tokens and half-written messages pass through. Pastiche is designed around that, and it tells you where the limits are.

  • It never leaves your Mac. The source contains no networking code, and no analytics. You can check, and this finds nothing:grep -rnE "URLSession|NWConnection" Sources
  • Secrets are skipped. Anything an app marks as concealed, the convention password managers use on the pasteboard, is never recorded. Neither are transient or auto-generated items.
  • Ignore any app. Copies made while a listed app is in front are dropped. 1Password, Bitwarden and Keychain Access are pre-filled.
  • Nothing is encrypted at rest. History is plain JSON plus PNG files in ~/Library/Application Support. Treat that folder like any file of your own notes. “Clear history” deletes both.
  • Accessibility is optional. It is used for one thing, pressing ⌘V in the app you came from.

The full policy is on the privacy page.

Check it yourself

Small enough to read.

Thirteen Swift files and about 2,200 lines, with no third-party dependencies. It links Apple frameworks and nothing else, which is a one-line check:

otool -L /Applications/Pastiche.app/Contents/MacOS/*
# AppKit, SwiftUI, Carbon, CryptoKit,
# ServiceManagement… all Apple's.
Coming from Copy ’Em? The repository includes an importer that reads its store read-only and brings over your newest entries, images converted to PNG. Pastiche is not affiliated with Copy ’Em.
Install

Build it in two commands.

You need macOS 14 or later and the Xcode command-line tools. Signed and notarized downloads will be published on the releases page.

git clone https://github.com/bcollard/pastiche.git
cd pastiche && make run
# make install  →  copies it to /Applications
  1. Look for the clipboard icon in your menu bar. There is no Dock icon and no main window.
  2. Copy a few things, then press ' to open the popup.
  3. Grant Accessibility when asked, so Return can paste for you. You can decline and paste with ⌘V yourself.

Builds run on the architecture of the Mac that made them, so one from an Apple silicon Mac is arm64-only.

Questions

Worth answering up front.

Why does it ask for Accessibility?

Only to press ⌘V in the app you came from. macOS treats posting keystrokes to another app as controlling the computer. The popup, the shortcut and the history all work without it; turn off “Paste into the active app automatically” and Pastiche will simply put the item on your clipboard.

Does it record my passwords?

Not from any app that marks its copies as concealed, which is the convention password managers use on the pasteboard; 1Password does. An app that does not mark its secrets is recorded like any other copy. That is what the ignored-apps list is for: 1Password, Bitwarden and Keychain Access are pre-filled, and you can add any other app by its bundle ID. You can also delete an entry with .

Where is my history, and is it encrypted?

In ~/Library/Application Support/Pastiche/: text in history.json, images as PNGs. It is not encrypted. If that matters for your threat model, FileVault covers the disk and the ignored-apps list covers the sources you care about.

Is formatting preserved when I paste?

No. Pastiche keeps plain text and images. Rich text, files and other pasteboard types are not stored, and text pastes back as plain text.

Can I change the shortcut?

Yes. Settings has a recorder for the global shortcut, a choice between Return and Return for pasting, and a choice for the delete key. The history cap is adjustable from 10 to 10,000 items.

Does it sync between Macs?

No, and it is not planned. Everything stays on the Mac that copied it.

Does it run on Intel Macs?

The code is not Apple-silicon specific, but a build made on an Apple silicon Mac is arm64-only. Build on an Intel Mac, or open an issue if you would like universal binaries published.