Your clipboard, with a memory.

A small clipboard history tool for Linux, written in Go. A daemon keeps history in a local SQLite database; a CLI and a Unix-socket API get it back out. Nothing leaves your machine.

A personal project, shared under the MIT license.

$ clipd &clipd: watching clipboard $ clipctl list  3  kubectl logs -f deploy/api --tail=50  2  https://go.dev/blog/errors-are-values  1  make build && ./bin/clipd $ echo "password: hunter2" | wl-copyclipd: entry skipped, contains password $ clipctl search kube  3  kubectl logs -f deploy/api --tail=50$ 

Three pieces

clipd

the daemon

Watches the clipboard in the background, stores every change in a local SQLite database, and prunes old entries on a schedule.

./bin/clipd --poll-interval 500ms

clipctl

the CLI

Lists, searches, inspects, and deletes history entries from the terminal, over the same socket the daemon serves.

clipctl search "kubectl"

the socket

the API

A small REST API on a Unix socket with owner-only permissions. Local by construction, scriptable with plain curl.

curl --unix-socket /tmp/clipd.sock http://unix/api/v1/history

Built to learn, shared in case it helps

This started as a learning exercise in Go and clean architecture. It is not a product; expect rough edges. If it looks useful, building it takes about a minute:

git clone https://github.com/geodask/clipboard-manager cd clipboard-manager && make build

Curious how it is put together? The architecture notes walk through the layers.