stash/README.md
NotAShelf d9029ef8b7
docs: update README with the watch feature
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I6a6a69640e1c77cc479b40f276ba77b736040504
2025-08-12 19:07:39 +03:00

2.4 KiB

Stash

Wayland clipboard "manager" with fast persistent history and multi-media support. Stores and previews clipboard entries (text, images) on the command line.

Features

  • Stores clipboard entries with automatic MIME detection
  • Fast persistent storage using SQLite
  • List, search, decode, delete, and wipe clipboard history
  • Backwards compatible with Cliphist TSV format
    • Import clipboard history from TSV (e.g., from cliphist list)
  • Image preview (shows dimensions and format)
  • Deduplication and entry limit control
  • Text previews with customizable width

Usage

Command interface is only slightly different from Cliphist. In most cases, it will be as simple as replacing cliphist with stash in your commands, aliases or scripts.

Store an entry

echo "some clipboard text" | stash store

List entries

stash list

Decode an entry by ID

stash decode --input "1234"

Delete entries matching a query

stash delete --type query --arg "some text"

Delete multiple entries by ID (from a file or stdin)

stash delete --type id < ids.txt

Wipe all entries

stash wipe

Watch clipboard for changes and store automatically

stash watch

This runs a daemon that monitors the clipboard and stores new entries automatically.

Options

Some commands take additional flags to modify Stash's behavior. See each commands --help text for more details. The following are generally standard:

  • --db-path <path>: Custom database path
  • --max-items <N>: Maximum number of entries to keep (oldest trimmed)
  • --max-dedupe-search <N>: Deduplication window size
  • --preview-width <N>: Text preview max width for list

Tips & Tricks

Migrating from Cliphist

Stash is designed to be backwards compatible with Cliphist. Though for brevity, I have elected to skip automatic database migration. Which means you must handle the migration yourself, with one simple command.

$ cliphist list --db ~/.cache/cliphist/db | stash --import-tsv
# > Imported 750 records from TSV into SQLite database.

Alternatively, you may first export from Cliphist and then import the database.

$ cliphist list --db ~/.cache/cliphist/db > cliphist.tsv
$ stash --import-tsv < cliphist.tsv
# > Imported 750 records from TSV into SQLite database.