A terminal clipboard manager with a TUI interface. It watches your system clipboard, keeps a searchable history in a local SQLite database, and lets you recall, label, filter, and concatenate past entries.
- Clipboard history — automatically captures every text you copy, stored locally in SQLite
- Labels — annotate entries with short labels for easier retrieval
- Filter — search entries by content or label
- Concat mode — select multiple entries in order and copy their concatenation to the clipboard, with a configurable separator (nothing, empty line, or comma + space)
- Sorting — toggle between newest-first and oldest-first
- Theming — Catppuccin Mocha palette by default, fully customizable via a TOML file
You need the Rust toolchain (cargo, rustc). If you don't have it yet, install it via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shFollow the on-screen instructions, then restart your shell (or run source "$HOME/.cargo/env").
The just install command requires just, a command runner. Install it with:
# macOS
brew install just
# Arch Linux
pacman -S just
# Debian / Ubuntu
apt install just
# Windows
winget install Casey.Just
# or via cargo (any OS)
cargo install justjust is optional — you can also build and install manually (see below).
# with just
just install
# or manually
cargo build --release
cp target/release/termclip ~/.local/bin/Make sure ~/.local/bin is in your PATH.
Launch with:
termclip| Key | Action |
|---|---|
↑ / k |
Move up |
↓ / j |
Move down |
Enter |
Copy selected entry to clipboard |
l |
Edit label on selected entry |
m |
Enter concat mode |
F |
Open filter dialog |
c |
Clear active filter (when filtered) |
s |
Toggle sort order |
d |
Delete selected entry |
q / Esc |
Quit |
Select multiple entries to concatenate them into a single clipboard value.
| Key | Action |
|---|---|
↑ / k |
Move up |
↓ / j |
Move down |
Space |
Toggle entry selection |
Tab |
Cycle separator (nothing / empty line / comma + space) |
Enter |
Copy concatenation to clipboard |
Esc / q |
Cancel |
| Key | Action |
|---|---|
Tab |
Switch between content / label filter |
Enter |
Apply filter |
Esc |
Cancel |
The default theme uses the Catppuccin Mocha palette. To customize, create a theme file at:
~/.config/termclip/theme.toml
All fields are optional — only override what you want to change. Colors are specified as hex strings.
[list]
time_fg = "#6c7086"
separator_fg = "#45475a"
label_fg = "#f9e2af"
content_fg = "#cdd6f4"
selected_bg = "#313244"
selected_fg = "#cdd6f4"
border_fg = "#45475a"
title_fg = "#b4befe"
[status]
fg = "#a6e3a1"
[help]
key_fg = "#89b4fa"
text_fg = "#a6adc8"
[popup]
border_fg = "#cba6f7"
title_fg = "#cba6f7"
input_fg = "#cdd6f4"
active_fg = "#181825"
active_bg = "#94e2d5"
inactive_fg = "#6c7086"
confirm_fg = "#f38ba8"
[concat]
marker_fg = "#a6e3a1"
marker_empty_fg = "#45475a"Clipboard history is stored in a SQLite database at:
~/.local/share/termclip/termclip.db