DEV Community

Cover image for Someone asked for an encrypted clipboard. We built it with one prompt and 5 rounds of feedback.
Spare Team
Spare Team

Posted on

Someone asked for an encrypted clipboard. We built it with one prompt and 5 rounds of feedback.

We asked Mac users on Mastodon: "If an AI could build you one small Mac tool in a minute, what would you ask for?"

One reply was short and specific: "a secure searchable clipboard logger."

Fair. The command you copied ten minutes ago, the meeting link from this morning, that SQL snippet — all gone the moment you copy something else. There are plenty of clipboard managers already, but we wanted to see if that one sentence was enough to get a working menu-bar app out of Spare, our Mac app that turns a description into a plugin.

The result is Clipboard Vault. Here's the whole process, including the parts that didn't work the first time.

1. One sentence, then spell out what you assumed

In Spare Mac, open Plugins → Make a plugin and type what you want.

The Make a plugin page in Spare Mac with the Clipboard Vault request typed in

The core idea fits in one sentence. But a one-liner leaves a lot of decisions to the model, so the prompt we actually sent wrote down the things we'd otherwise assume without saying:

  • Shape: a menu-bar plugin called Clipboard Vault, 360×520.
  • Logging: check the clipboard every 500 ms, even while the panel is closed and while the vault is locked. Skip empty text and repeats of the previous clip. Skip clips over 100 KB with a small note. Keep the latest 1,000; pinned clips are never dropped.
  • Encryption: set a passphrase on first run; every clip is stored encrypted, the passphrase itself is never stored. New clips still get logged (encrypted) while the vault is locked.
  • Lock screen: passphrase + Unlock, plus how many clips came in while locked. Auto-lock after 15 minutes idle, and a Lock button.
  • Unlocked view: instant search with highlighted matches, newest first with pinned on top, click a row to copy it back (without logging it again), pin/delete per row, Pause/Resume, Clear all (keeps pinned).
  • Look: clean macOS style, follows light/dark mode.

The bit that saved the most back-and-forth: say when something should not happen, not just what features you want. "Skip repeats" and "don't re-log the clip I just copied back" are one line each in the prompt, and each one is a bug you don't have to report later.

2. Generate, then "Improve with Spare"

Hit Create and the plugin lands in your menu bar. In our case the first version already had the UI, search and pinning working.

Then comes the part we found most interesting: every plugin has an Improve with Spare button. We used Clipboard Vault, found problems, and sent them back in plain words. It took five rounds:

  1. Storage limits and search. Plugin storage is capped at 5 MB, and once it filled up, logging silently stopped. We asked it to drop the oldest unpinned clips and show a note. Same round: searching for amp or < broke the preview (it was highlighting already-escaped HTML), and the "logged while locked" count was counting everything instead of just the clips since the last lock.
  2. Nothing got logged. The encryption step threw an error that was being swallowed. We pasted the error text (InvalidAccessError: CryptoKey doesn't match AlgorithmIdentifier deriveKey) and where it happened.
  3. Still nothing. The fix exposed a second error in the same step — the keys were created with the wrong permissions. Pasted that error too. After this round, logging and encryption worked.
  4. Lock screen stacked two forms. After locking, the "Set your passphrase" form showed up on top of the unlock form. One CSS rule was overriding the one meant to hide it.
  5. Two small leftovers. A clip over 100 KB was counted as "skipped" again on every poll, and clips dropped for space stayed visible until the next unlock.

Each round was: describe what you see (and paste the error if there is one) → send → the new version replaces the old one. We didn't edit a single line of the plugin's code by hand.

Lesson from rounds 2 and 3: paste the exact error message. "It doesn't seem to log anything" gets you a guess; the stack trace gets you a fix.

3. What it's like to use

Clipboard Vault: the clip list, search with highlights, and the lock screen

Day to day:

  • Find a command you copied an hour ago (git rebase -i HEAD~3, a long brew install ...), click it, and it's back on your clipboard.
  • Pin the snippets you paste all the time — an address, a canned reply — so they stay at the top.
  • Hit Lock when you walk away. Anything copied while it's locked is still logged, encrypted, and shows up after you unlock.
  • Hit Pause when you're shuffling throwaway data and don't want it recorded.

If something bugs you, click Improve with Spare and say it: "auto-lock after 5 minutes instead", "group clips by day". One sentence each.

4. Try it yourself

Clipboard Vault is published in the Spare community and free to install:

  1. Get Spare Mac (macOS 14+, Apple silicon) — link below.
  2. On your Mac, open the Clipboard Vault page and click Install on my Mac. Spare asks to confirm; click Install as plugin and a 🔐 appears in your menu bar.
  3. Set a passphrase (8+ characters), click Create Vault, and start copying.

The Install on my Mac button on the community page, and the plugin's first screen

The community also has small games, desk pets and a Pomodoro timer other people made. When you make something you like, you can publish it there or send the plugin file straight to a friend — they open it in Spare and it's installed.

Making plugins is free (fair-use limits apply).

Download Spare Mac: spare.cool/mac

Spare Mac isn't notarized by Apple yet. On first launch, open it once, then go to System Settings → Privacy & Security and click Open Anyway. The download page has step-by-step screenshots.

What would you build?

Clipboard Vault started as one reply to one question. So, same question: what small tool would you add to your Mac? Leave it in the comments — we'll build a few and publish them to the community.


Disclosure: I'm on the team that makes Spare, so this is our own product. This post was drafted with AI assistance and reviewed by the Spare team.

Top comments (0)