Skip to content
Pocket Homelab
Get the appComing soon to the App Store

Pocket Clips

Your clipboard history, snippets and quicklinks from Pocket Clips, the way Raycast keeps them: what you copied on every device, searchable, by type, pinned; the Mac records every copy and pastes from a floating window; snippets expand with their placeholders and quicklinks take a query, on the phone and the Mac.

iPhoneMac
On this page

Pocket Clips is a free, open-source (MIT), self-hosted clipboard history, snippet library and quicklink list: the three things Raycast keeps on one Mac, as a small Go server with one SQLite file, so the history survives a reinstall and every device sees the same list. It is made by the author of Pocket Homelab as its clipboard companion. Pocket Homelab is the client: the Mac records what you copy and shows the history in a floating window over any app, where ↩ pastes; the iPhone reads the same history and can add what is on its clipboard; both browse, make and use the snippets and quicklinks. Users, tokens and retention stay in the web app.

Install Pocket Clips

If you do not run it yet, the project on GitHub has the setup for Docker and bare metal. The shortest way is the container:

mkdir pocket-clips && cd pocket-clips
curl -O https://raw.githubusercontent.com/abjelosevic88/pocket-homelab-clips/main/docker-compose.yml
docker compose up -d

Open it in the browser and create your account. Retention (a week to forever) and the cap per user are under its Settings → General.

Set up

  1. In Pocket Clips, open Settings → API tokens and create a token, one per device so a lost one can be revoked on its own. Copy it: it starts with pc_ and is shown once.
  2. In Pocket Homelab: Settings → Services → Pocket Clips, paste the base URL and the token, then Test connection. It reads the dashboard and answers with how many clips there are, how many today and how many are pinned.
  3. Turn on the Clipboard tab in Settings → Tabs if you want it in the tab bar, and add the Clipboard card to Home under Settings → Home layout (how many clips today, the latest one; or all clips, or the latest clip as the headline). On the Mac the Clipboard workspace appears in the sidebar, the card is in the Home dashboard’s picker, and ⌃⌥⌘V opens the floating window.
Environment keys
KeyFieldRequiredSecretWhere to get it
CLIPS_URLPocket Clips URLRequired—Base address of your Pocket Clips server, for your clipboard history from every device: what you copied, searchable, with pins. Leave empty to hide it.
CLIPS_API_KEYPocket Clips API tokenRequired—A token from Pocket Clips → Settings → API tokens (starts with pc_). Stored in the Keychain.

Recording on the Mac

With Pocket Clips connected, the Mac app records every copy while it runs, in the menu bar or as a window: the text, link, colour, file paths or image, the app it came from and this Mac’s name. The same thing copied twice is one entry moved to the top, and the server counts the copies. A copy that cannot be sent waits and goes with the next one.

What is never recorded: anything a password manager marks as concealed or transient (1Password, Bitwarden and the system Passwords app do), copies from the apps on the ignore list (Clipboard settings in the workspace; the password managers and Keychain Access are there to start with), and what Pocket Homelab itself puts on the clipboard when you copy from the history. Text clips stop at 2 MB and images at 20 MB, the server’s limits.

Recording can be switched off per Mac under Clipboard settings; the history from other devices still shows. This Mac’s name is the computer’s name unless you give another one there.

Images. A copied picture (a screenshot, an image from a browser or Preview) goes up as PNG and the server keeps it once by content. Two switches in Clipboard settings decide the rest: Upload pictures copied in the Finder (on to start with) sends a copied PNG, JPEG, GIF, WebP, TIFF or HEIC file as an image, up to five per copy and 20 MB each, with other files recorded as paths; Record the picture too when a copy has text and a picture (off to start with) keeps both for a copy from a web page, where otherwise only the text is recorded, as Raycast does.

The floating window

⌃⌥⌘V opens the history over whatever app you are in, without raising Pocket Homelab or switching Spaces, the way Raycast’s clipboard history does. Every opening starts fresh: the filter is empty and the newest entry is selected, whatever you chose the last time:

  • Type to filter entries. Every word is matched as a prefix on the server (inv num finds Invoice number), over the content, the titles and the app names. The All Types menu at the right keeps one type: text, links, colours, images or files (⌘1 … ⌘6).
  • The list at the left, grouped by day with the pinned entries first; an image shows its thumbnail, a colour its swatch. ↑ / ↓ move.
  • The preview at the right: the text as copied, the image fit to the space (click it, or press Space, to see it full size, where you pinch, press ⌘+ and ⌘−, or double-click to zoom into the details and drag to pan; ⌘0 fits it again, ⌘1 is actual size, Esc puts it away), a colour as a swatch with its hex and RGB values, a link with its page title and address. Under it Information: the source app (with its icon when it is running), the device, the type, the dimensions or characters and words, the size, when it was copied and how often.
  • ↩ pastes into the app that was in front when the window opened (its name and icon are on the button), and the window closes. ⌘↩ copies without pasting; ⌥↩ pastes and keeps the window open. Esc closes it.
  • Actions (⌘K), a list you can type into: Paste, Copy to Clipboard, Paste and Keep Window Open, Open Link (⌘O), Share…, Rename Entry… (⇧⌘E), Pin or Unpin (⌘P), Save as Snippet… (⇧⌘S), Open in Pocket Homelab, Open Pocket Clips, Delete Entry (⌘⌫), Clear History…. A right-click on an entry offers the same.

Every action answers with a small dark pill near the bottom of the screen, the way Raycast does: Copied to clipboard, Pasted to Safari, Pinned, Deleted, Saved as a snippet, and a warning in orange when the server refused. It shows over any app, so the floating windows can close on ↩ and you still see what happened.

Pasting into another app means pressing ⌘V there on your behalf, which macOS allows only with the Accessibility permission: the first ↩ copies the entry and offers to open System Settings → Privacy & Security → Accessibility; once Pocket Homelab is allowed there, ↩ pastes. Without it the window copies and you paste by hand. The key is registered only with Pocket Clips connected, and it can be changed under Settings → Quick Actions → Shortcuts.

The Clipboard workspace

The Clipboard section of the Mac sidebar is one page with a History / Snippets / Quicklinks switch at the top; the three share the layout: the search capsule with the type or folder menu, the list grouped in a card on the left, the selected item in a card on the right with its facts, and the key hints under them (↩, ⌘K Actions, ⌘N New). The bar’s blue button makes a new one for whatever is shown: Add entry on History opens a card to type or paste text, give it a title, or record what the clipboard holds now; New snippet and New quicklink open their editors. History is the floating window’s view, where ↩ copies; its bar says whether this Mac is recording and has the way to Clipboard settings, the web app and Refresh. Snippets and Quicklinks show their text or link with the placeholders in colour, what they ask for and the facts; ↩ copies a snippet expanded or opens a quicklink, ⌘↩ copies it as written or copies the link, ⌘N makes a new one, ⌘E edits, ⌘P pins, ⌘⌫ deletes. New and Edit open a card over the page, as does a snippet or quicklink that asks for a value.

On the iPhone

The Clipboard tab has three pages, chosen with the switch at the top of the list: History, Snippets and Quicklinks.

History reads what every device copied: search at the top, the type under ⋯, the list grouped by day with the pinned clips first. A clip opens with its preview (tap an image for it full screen, where you pinch to zoom into the details and double-tap to zoom in or back), the actions (Copy, Open link, Pin, Rename, Share, Save as snippet, Delete) and the information about it; swipe a row to pin, copy or delete it. iOS lets no app watch the clipboard, so the phone records nothing by itself: + sends what is on the clipboard now, text or an image, with the phone’s name as the device. A Shortcut can do the same from the Share Sheet or the Action button, see the server’s clients page.

Snippets

The snippet library, on the phone’s second page, under Snippets in the Mac workspace’s switch, and in its own floating window on ⌃⌥⌘S, where ↩ pastes the expanded snippet straight into the app that was in front (with the same Accessibility permission as the history’s paste) and ⌘↩ copies it: your snippets and the ones other users share, pinned first, then by folder, searched by the server. A tap opens one with its text, the placeholders in colour, what it asks for and how often it was used.

  • Copy expands it on the server, so {date}, {time}, {uuid}, {clipboard} (what this device has copied) and nested {snippet name="…"} come out filled, and puts the result on the clipboard. A snippet with {argument name="x"} and no default asks for x first.
  • + makes a new snippet: name, keyword, folder, the text, and an Insert placeholder menu with Raycast’s placeholders. On the Mac, typing { in the text pops the same list under the caret, as the web editor does: keep typing to narrow it, ↑ / ↓ pick, ↩ or Tab inserts with the caret inside the quotes, and after {snippet name=" it offers your existing snippets. Shared lets other users of your server see and use it; Pinned puts it first.
  • The owner edits, pins, shares and deletes; someone else’s shared snippet offers Duplicate to mine.

The quicklinks, on the phone’s third page, under Quicklinks in the Mac workspace’s switch, and in their own floating window on ⌃⌥⌘L, where ↩ opens one and the window goes away: a page you open all the time, with a keyword, an emoji and a {Query} where what you type goes. A tap opens it; a link with a {Query} or an argument asks for it first, then the server fills it in, encodes it and counts the use. On the phone it opens in the in-app browser, on the Mac in your browser. Long-press (right-click on the Mac) for Edit, Pin, Share, Copy link and Delete; + makes a new one with name, link, keyword, icon, “open with”, folder, shared and pinned. A keyword also makes the link https://clips.example.com/go/<keyword>?q=…, which any browser accepts as a custom search engine.

What stays in the web app

Users, API tokens, retention and the cap, backups and the JSON import and export that round-trips with Raycast’s Snippets and Quicklinks exports. Favicons of quicklinks without an emoji show in the web app only.