How to keep copied images after a restart

Storing a screenshot properly is harder than it looks. Here is what actually breaks.

A copied image lives in memory, so a reboot ends it. The macOS pasteboard is a running process, not a file on disk, and nothing in the system writes copied pixels down for later. If you want a screenshot to still exist tomorrow, either save it as a file or use an app that stores the bytes itself.

The free version of that is one modifier. ⇧⌘4 saves the shot to your Desktop as a PNG. ⌃⇧⌘4 puts it on the clipboard instead, and that is the one that disappears. On macOS 26 the Spotlight clipboard history survives a reboot, but it holds plain text only, so images are outside it.

Why a copied image file breaks too

Copy a PNG in Finder and the clipboard does not receive an image. It receives a file URL, a path string pointing at the original. Every preview and every paste then depends on that file still being where it was, still named what it was named, and still readable.

Under App Sandbox, that last condition is the one that fails. An app gets access to a file through the copy event, and that access does not automatically survive a relaunch. The path is still in the database and the file is still on disk, and the app can no longer open it.

The bytes being on disk is what makes everything else on an image possible later. Text recognition runs at paste time, on the stored image, so a screenshot from three weeks ago still reads.

Storage is deduplicated by content hash. Copy the same screenshot four times, in four different apps, and one copy of those bytes exists on disk. Copying a large image also does its hashing and writing off the main thread, so the paste you are in the middle of does not stall.

What Klipto does instead

Klipto reads the image bytes at the moment you copy, while the pasteboard access is still valid, and writes them into a local store keyed by a SHA-256 hash of the content. The database row points at that file. Nothing depends on your original screenshot staying put, so previews and pastes work after a restart, and after you rename or delete the file.

I spent a full day on this and it was harder than it looks. Image bytes cannot go inline into the database, because SwiftData's external-storage attribute crashes when you touch a detached object during a delete. So the store is hand-written: hash, write, deduplicate, sweep orphans at launch.

One honest gap. Snippets and saved Stack items still keep image data inline in the database rather than in that store. They survive a restart, which is the part that matters here, but they do not get the deduplication. That is on the list.

The trap: a thumbnail is not the image

Some tools keep a small preview and drop the original. The history row looks fine, then the paste comes out at 240 pixels wide or does not come out at all. Klipto stores full bytes, so what you paste is what you copied.

The other quiet failure is retention. History has limits you set yourself: a number of items, an age in days, a size in megabytes. A screenshot from four months ago is gone because you told the app to remove it, not because storage broke.

What I use

Klipto for anything I might want twice, which is most reference screenshots. For a single image I am definitely keeping, ⇧⌘4 and a real file in a real folder is still the correct answer, and it costs nothing.

Klipto began on Maccy's open-source core and has gone its own way since. Persistent image storage, and the recognition that rides on it, is one of the places it went.

Frequently asked questions

Why do copied images disappear when I restart my Mac?

The pasteboard keeps them in memory. macOS does not write copied images to disk, so they end with the session.

Does the macOS 26 clipboard history keep images?

No. The Spotlight clipboard history is plain text only. It survives a reboot, but a copied screenshot will not be in it.

Why does an image copied from Finder stop pasting?

The clipboard held a file path, not pixels. Move, rename or delete the file, or relaunch under sandbox restrictions, and the path stops resolving.

Where does Klipto store image bytes?

In a local file store inside its own container, deduplicated by content hash. It stays on your Mac and is never uploaded.

Get Klipto for Mac

Free for 14 days · no card, no account required · 5 MB

Download Klipto