Skip to content

obazin/termclip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

termclip

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.

Features

  • 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

Install

Prerequisites

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 | sh

Follow 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 just

just is optional — you can also build and install manually (see below).

Build & install

# with just
just install

# or manually
cargo build --release
cp target/release/termclip ~/.local/bin/

Make sure ~/.local/bin is in your PATH.

Usage

Launch with:

termclip

Keybindings

Normal mode

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

Concat mode

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

Filter dialog

Key Action
Tab Switch between content / label filter
Enter Apply filter
Esc Cancel

Theming

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"

Data storage

Clipboard history is stored in a SQLite database at:

~/.local/share/termclip/termclip.db

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages