Cross-platform clipboard manager built with Tauri 2, Rust, and React/TypeScript.
This project is licensed under the MIT License. See LICENSE.
- Global hotkey popup (
Cmd/Ctrl+Shift+Pby default) - Clipboard history with full-text search (SQLite + FTS5)
- Item types: text, image, file/folder path
- Favorite and pinned items
- Filters:
All,Favorites,Pinned - Preview modal per item type
- Copy-to-clipboard with self-write guard (2s)
- Local-only storage (no cloud services)
- Desktop shell: Tauri 2
- Backend: Rust
- Frontend: React + TypeScript + Vite
- Database: SQLite (rusqlite, bundled)
src-tauri/: Rust backend and Tauri app configsrc-tauri/src/clipboard/: OS-specific clipboard detection and capture pipelinesrc-tauri/src/storage/: SQLite models, migration, search/filter APIsui/: React frontend
./run.shBuild release:
./run.sh --build# backend check
cd src-tauri && cargo check
# backend tests
cd src-tauri && cargo test
# frontend build
npm --prefix ui run buildGitHub Actions workflows included:
CI(.github/workflows/ci.yml)- Runs on push and pull request
- Builds frontend and runs Rust checks/tests on Linux, macOS, Windows
Release(.github/workflows/release.yml)- Runs on tag push (
v*) - Builds Tauri bundles and publishes installable artifacts to GitHub Releases
- Runs on tag push (
Create a version tag to trigger a release:
git tag v0.1.0
git push origin v0.1.0- Windows: event-driven listener (
AddClipboardFormatListener,WM_CLIPBOARDUPDATE) - macOS: polling using
NSPasteboard.changeCount - Linux: polling (best effort)
- File/folder payload
- Text
- Image
On macOS, file/folder copy is read from native pasteboard file URLs to avoid false image classification from Finder icon previews.
items columns:
id,created_at,kind,text,fingerprintimage_rgba,image_width,image_heightfavorite,pinned,deleted
- Keep cross-platform behavior behind feature flags and
cfg(target_os = ...)modules. - Add regression tests for clipboard classification before changing the capture pipeline.
- Preserve backwards-compatible DB migrations (never remove previously shipped columns without migration plan).
- Linux clipboard behavior varies by desktop environment/compositor.
- Wayland clipboard access may be limited by session policies.
- File-path detection outside macOS still relies on text payload heuristics.
If you discover a vulnerability, please open a security advisory or private report before publishing details.