A fast, keyboard-driven clipboard manager for Windows built with Tauri (Rust + React). Designed to replace bloated clipboard tools with a minimal, fzf-style experience.
fclip runs in the system tray and silently monitors your clipboard. Press a hotkey to instantly summon a fuzzy-search popup — type a few characters, hit Enter, and the selected item is copied to your clipboard. No mouse required.
- Fuzzy search across full clipboard history (fzf algorithm)
- Keyboard-only workflow (hotkey → search → Enter to select)
- Pin entries with labels to keep them from being pruned
- Configurable hotkey and keybindings
- Light/dark theme support (with OS theme detection)
- Persistent history across restarts (SQLite)
- Event-driven clipboard monitoring (no polling)
- Skips clipboard content larger than 100KB
- System tray with double-click to toggle
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript (Vite) |
| Backend | Rust (Tauri v2) |
| Clipboard monitoring | clipboard-master (WM_CLIPBOARDUPDATE events) |
| Clipboard read/write | clipboard-win |
| Fuzzy search | fuzzy-matcher |
| Storage | SQLite via rusqlite (WAL mode, optimized PRAGMAs) |
| Config | TOML (%APPDATA%\fclip\config.toml) |
npm install
npm run devnpm run buildnpm test # Run Rust tests
npm run check # Compile check only
npm run lint # Run clippy + tsc
npm run clean # Remove build artifacts- fclip starts in the system tray
- Press
Ctrl+Shift+V(default) to open the search window - Type to fuzzy-search your clipboard history
- Press
Enterto copy the selected item to clipboard - Double-click the tray icon to toggle the window
| Key | Action |
|---|---|
Enter |
Select item (copy to clipboard) |
Escape |
Close window |
Ctrl+n / Ctrl+j |
Next item |
Ctrl+p / Ctrl+k |
Previous item |
Ctrl+d |
Delete item |
Ctrl+f |
Pin/unpin item (with label) |
Ctrl+h |
Backspace in search |
Ctrl+t |
Toggle light/dark theme |
Ctrl+e |
Open config file |
Ctrl+? |
Toggle help overlay |
Create %APPDATA%\fclip\config.toml to customize (see examples/config.toml):
[hotkey]
open = "Ctrl+Shift+V"
[behavior]
max_history = 1000
[theme]
mode = "system" # "dark", "light", or "system" (follows OS)
[keybindings]
select = "Enter"
close = "Escape"
delete = "Ctrl+d"
next = "Ctrl+n,Ctrl+j" # comma-separated for multiple bindings
prev = "Ctrl+p,Ctrl+k"
backspace = "Ctrl+h"
clear = "Ctrl+u"
toggle_theme = "Ctrl+t"
help = "Ctrl+?"
open_config = "Ctrl+e"OS Clipboard
↓ WM_CLIPBOARDUPDATE event
Rust backend — clipboard-master → dedup (SHA-256) → SQLite (WAL)
↓ Tauri IPC
React frontend — fuzzy-matcher → ranked list → select on Enter
MIT

