Clipboard

Everything you copied, with images; Enter pastes it back

palupdated 2026-10-27ProductivityComes with pal󰌹1 deep link

Open in pal

Comes with pal, so a new install already has it; the button finds it in pal again if you removed it. This page can't see what your pal has installed.

Clipboard: The history with the pane open: pinned first (a named entry by its name), then newest, the source app and the time on the right
The history with the pane open: pinned first (a named entry by its name), then newest, the source app and the time on the right
Clipboard: An image entry: the picture in the pane, under its pixels and size
An image entry: the picture in the pane, under its pixels and size
Clipboard: The Colors filter: a copied colour is its own swatch on the row and in the pane
The Colors filter: a copied colour is its own swatch on the row and in the pane
Clipboard: Paste, Copy, Open link, Edit, Pin, Name, Save as file, Save as snippet, Show as QR code, Delete, Clear history
Paste, Copy, Open link, Edit, Pin, Name, Save as file, Save as snippet, Show as QR code, Delete, Clear history
Clipboard: Edit (cmd+E): the text in a textarea; the submit copies it, so the edited text is the newest entry
Edit (cmd+E): the text in a textarea; the submit copies it, so the edited text is the newest entry
Clipboard: Show as QR code (cmd+shift+K): the entry's text as a code to scan, large in a level
Show as QR code (cmd+shift+K): the entry's text as a code to scan, large in a level
1 of 6

What it does

Everything you copied, text, images and files, searchable and a keystroke from being pasted back into the app in front. Pin what you reuse; edit, name or save an entry, or copy the text out of an image.

  • Text, images and files you copied, searched as you type, with a preview beside the list
  • Pinned entries stay at the top and never expire
  • Filters for text, images, files, links and colours (drawn as swatches)
  • enter pastes into the app in front, cmd+shift+v as plain text, cmd+shift+t copies the text in an image
  • Edit, name, save as a file or snippet, or show as a QR code
  • Password manager copies and excluded apps are never recorded

Palettes 2

  • Clipboardrowsinput

    What is on the clipboard now, as the things it could be: a web address (open, private window, markdown link, QR code), a colour (the picker, every notation), paths (open, reveal, open with), an email, a phone number, JSON (pretty, minified), an expression or a number (the answer, other bases), a timestamp or ISO date (local and relative), hex or base64 that decodes to text, a tracking number (the carrier), a git sha or owner/repo#12 (GitHub), an image (save, copy as file, OCR), and the text itself (counts, case and slug transforms, paste as plain, save as snippet). The root's Clipboard section before you type; Hide keeps it away until the next copy. Only what history recorded is read: a concealed copy or one from an excluded app never shows.

    • ↵What the row is for: open, call, paste as plain, copy the answer
    • ⌘⇧HHide the section until the next copy
    • ⌘⇧OOpen the address in a private window
    • ⌘⇧MCopy as a Markdown link, or minified JSON
    • ⌘SSave the text as a snippet
  • Clipboard Historyhistoryinput

    Every copy, pinned ones first, then newest.

    • ↵Paste into the app in front
    • ⌘↵Copy back to the clipboard
    • ⌘OOpen the link
    • ⌘⇧VPaste as plain text
    • ⌘⇧CCopy an image as a file
    • ⌘⇧TCopy the text in an image (OCR)
    • ⌘EEdit a text entry; the edited text is copied
    • ⌘PPin or unpin
    • ⌘⇧RName or rename the entry to what is typed in the bar
    • ⌘SSave as a file
    • ⌘⇧SSave a text entry as a snippet
    • ⌘⇧KShow a text entry as a QR code
    • ⌘DDelete the entry
    • ⌘⇧DClear history
    • ⇥Text, Images, Files, Links, Colors

Actions

  • PasteHides the panel and pastes the entry into the app that was in front.↵
  • CopyPuts the entry back on the clipboard.⌘↵
  • Open linkOn an entry that is one url.⌘O
  • Paste as plain text⌘⇧V
  • Copy image fileThe PNG the recorder keeps, as a file.⌘⇧C
  • Copy text from imageOCR over the image (Vision on macOS, tesseract on Linux); the text goes on the clipboard.⌘⇧T
  • Edit…On a text entry: a textarea with the text; the submit copies the edited text (a box pastes it too), so it is the newest entry.⌘E
  • Pin / UnpinPinned entries sort first and never expire.⌘P
  • Name / RenameThe name typed in the bar titles the row and is searched like the text; blank clears it.⌘⇧R
  • Save as file…A folder (the Desktop) and a name from the entry: the text, the image's PNG, or the file list as paths. An existing name is refused.⌘S
  • Save as snippetOn a text entry: the Snippets form, pre-filled.⌘⇧S
  • Show as QR codeOn a text entry up to 2000 characters: the code large in a level.⌘⇧K
  • DeleteAsks first.⌘D
  • Delete all unpinnedAsks first; pinned entries stay.
  • Clear historyAsks first; pinned entries included.⌘⇧D

Settings

Extension, [extensions.clipboard]

ocr_concealed
Off boolean
primary_action
Paste into the app in front select

What Enter does on an entry. One of paste, copy.

Clipboard, [palettes.rows]

fetch_titles
On boolean
shortener
empty text

A URL with {url} in it whose response body is the short link, for the Shorten action (https://is.gd/create.php?format=simple&url={url}). Empty: no Shorten action.

private_browser
empty text

Which browser opens a private window: Google Chrome, Brave Browser, Microsoft Edge, Chromium, Vivaldi or Firefox. Empty: the first of those that is installed.

Defaults shown. Change them in pal's settings window or in the config file.

The README

Everything Clipboard does, key by key, from the extension's own README.md

Clipboard History

What you copied, searchable, with images. Text, images and file lists are recorded by a watcher that runs while pal runs; the search is SQLite full-text search over the text, on every keystroke inside the palette (an input palette, so the entries are never at the root). Pinned entries sit in a Pinned section at the top, the rest follow newest first.

The palette opens with the detail pane showing: the app it was copied from over its name, the kind (text, link, color, image, files) and pinned as chips, its numbers large (a text's characters and lines, an image's pixels and size, how many files), then the full text (fenced), the image or the file list, and when it was copied. A row that is a single url gets the site's favicon and an Open link action; a row that is one colour (#hex, rgb()) has the colour itself as its icon. The source app (an image without one: its size) and the time are accessories; a pinned entry sits under Pinned. An entry you have named (cmd+shift+r) is titled by its name from then on, with the text's preview as the subtitle, and a search finds it by the name as well as by the text.

The filter dropdown (Tab cycles it) narrows by kind: All, Text, Images, Files, Links (text that is one url) and Colors.

Keyboard

keys action
enter Paste: hides the panel and pastes the entry into the app that was in front
cmd+enter Copy: puts the entry back on the clipboard
cmd+o Open link, on an entry that is one url
cmd+shift+v Paste as plain text, on a text entry
cmd+shift+c Copy image file, on an image: the PNG the recorder keeps, as a file
cmd+shift+t Copy text from image (OCR), on an image
cmd+e Edit, on a text entry: the text in a textarea; the submit copies the edited text, so it is the newest entry (the original stays); a box pastes it as well
cmd+p Pin / Unpin: pinned entries sort first and never expire
cmd+shift+r Name / Rename: argument name typed in the bar (prefilled with the name the row has); the name titles the row and is searched; blank clears it; a pick without the field asks in a form
cmd+s Save as file: a folder (the Desktop by default) and a name from the entry; the text as it is, an image's PNG copied, a file list as its paths one per line; an existing name is refused
cmd+shift+s Save as snippet, on a text entry: the Snippets form, pre-filled with the text
cmd+shift+k Show as QR code, on a text entry up to 2000 characters: the code large in a level, the text under it
cmd+d Delete the entry; asks first
(action panel) Delete all unpinned: every unpinned entry, one by one; asks first
cmd+shift+d Clear history: every entry, pinned ones included; asks first
tab Cycle the kind filter

Marked entries (cmd-click, shift-click, shift+↓): Paste, Copy and Paste as plain text join their text one per line, Open link opens every link, Copy image file copies every image, Pin, Unpin and Delete go over each. Edit, Name, Save, Snippet, QR and Copy text from image stay one entry's.

primary_action = "copy" swaps the first two, so enter copies and cmd+enter pastes.

Setup

Nothing to install; the recorder is part of pal. Paste needs the Accessibility permission on macOS: the paste is a synthesised Cmd+V, which the system only delivers from a process on the Accessibility list. Without it pal shows the system prompt once per run and a toast, "Paste needs Accessibility. Grant pal in System Settings > Privacy & Security > Accessibility", instead of half-doing it. On Linux the paste is Ctrl+V through wtype, else ydotool (which needs ydotoold running); with neither, paste fails and the toast says so.

What is never recorded: anything a password manager marks as concealed or transient (the org.nspasteboard convention), copies over 10 MB, and copies made while an app in the Clipboard history feature's exclude_apps is in front. Copying something already in history bumps it to the top instead of adding a duplicate.

Retention runs after every copy: unpinned entries older than the feature's max_age_days are deleted, then the unpinned tail past its max_entries. Pinned entries never expire. A search lists at most 200 rows of what is left.

Settings, [extensions.clipboard]:

key type default what
primary_action paste, copy "paste" What enter does on an entry.

What is recorded and kept (exclude_apps, max_entries, max_age_days) is the Clipboard history feature's, [features.clipboard] (Features): the recorder is built into pal, and this extension is its palettes.

What it does not do

  • Record while pal is not running: there is no background agent.
  • Sync between machines, or keep entries past the retention limits unless they are pinned.
  • Edit an entry in place: Edit copies the edited text as a new entry, the original stays as it was recorded.
  • Share through the system share sheet: nothing reaches NSSharingService from the host; Save as file and the file managers' own sharing stand in.
  • Know the source app on Linux: neither X11 nor the Wayland data-control protocol says who owns the selection, so exclude_apps has no effect there and the source accessory is absent.

Platforms

macOS and Linux. Paste needs Accessibility on macOS and wtype or ydotool on Linux; Copy file (cmd+shift+c) writes file URLs on macOS and text/uri-list on Linux (X11, or Wayland with the wlr data-control protocol).