otter-copy and otter-paste, native utilities that talk to data-control directly. In packaged installs they shadow wl-copy and wl-paste, so existing apps and scripts route through Otter’s implementation without changes.
Starting the Daemon
Run the daemon once per session.CLI Commands
| Command | Description |
|---|---|
otter-clip popup | Open the Super+V history popup |
otter-clip popup query | Open the popup with a search term pre-filled |
otter-clip list | Print all stored history entries |
otter-clip search query | Filter history and print matching entries |
otter-clip add some text | Manually append a text entry to history |
otter-clip clear | Delete all history entries |
otter-clip pin 0 | Pin an entry by its index so it is not evicted |
otter-clip unpin 0 | Remove the pin from an entry |
otter-clip select 0 | Copy a history entry by index to the clipboard |
popup command opens otter-launcher --query "clip ...". Selecting a row calls otter-clip select INDEX to copy that item back to the clipboard. Pressing Enter in the popup is the same as running otter-clip select on the highlighted entry.
Copying and Pasting
otter-copy and otter-paste replace wl-copy and wl-paste. They communicate with Wayland data-control directly.
otter-copy and otter-paste at a custom history file with --file /path/to/store when you want an isolated clipboard store for scripting.
Configuration
otter-clip reads~/.config/otter-shell/otter-clip.conf at daemon startup.
history_path: absolute path for history storage. Empty uses$XDG_CACHE_HOME/otter-shell/otter-clip-history
Privacy and Password Managers
otter-clip skips clipboard entries that carry password manager or secret MIME hints before reading their data. Credentials copied from password managers do not end up in plain text history. Wayland data-control does not expose the source application ID for copied data, so app-ID filtering only applies when a source ID is available to the caller.

