v0.1.0CLIPBOARD HISTORY FOR GNOME

Everything you copied, one keypress away.

Stash keeps a searchable history of text, images, files, links and colors on GNOME Wayland, and pastes any of it back from the keyboard.

Rust · GTK4 · libadwaita · GNOME Shell extension · SQLite · SQLCipher · D-Bus
Stash icon
Stash main window
Why An Extension

Built for the clipboard GNOME keeps private.

Mutter gives background apps no way to watch the clipboard. Stash uses a small GNOME Shell extension inside gnome-shell to capture clips and hands them to a Rust daemon over D-Bus.

Features

What Stash does

🔎

Fuzzy search everything

Text, rich text, images, files, links and colors in one history, filtered by type as you type.

📋

Paste plain or transformed

Paste as plain text, or transform on paste: upper case, lower case, trim, or pretty JSON.

🖼

Find screenshots by words

Image clips are read in the background with tesseract OCR, so search finds them by their text.

🔒

Encrypted at rest

Optional SQLCipher encryption, with the key held in the login keyring and never written to disk.

📌

Pins, snippets, collections

Keep important clips pinned, save reusable snippets and group items into collections.

⏸

Privacy pause and retention

Pause capture with one click and choose how long history is kept.

The Popup

Search, pick, paste, all from the keyboard

  • Arrow keys to move, Enter to paste, 1 to 9 for quick paste
  • Type chips for text, images, files, links, colors and pinned
  • Live image thumbnails and drag-out at original fidelity
  • Source app and time shown on every clip
Search, pick, paste, all from the keyboard
Colors And Images

Clips that understand what they hold

  • Copied colors show a swatch with hex and RGB values
  • Images keep size and format and can be dragged back out
  • OCR text from screenshots is folded into search
Clips that understand what they hold
Under The Hood

Four parts, one small native app

  • GNOME Shell extension in GJS reads St.Clipboard
  • stashd daemon stores history in SQLite
  • GTK4 and libadwaita UI talks to it over D-Bus
Four parts, one small native app
By the numbers
~9,800lines of Rust
4crate workspace
43tests