OmniClip is a lightweight Windows clipboard manager built with Tauri 2, Rust, React, and TypeScript. It keeps clipboard history in a local SQLite database, provides fast full-text search, supports text, links, and images, and stays available from the system tray with a customizable global shortcut.
The project is designed around a compact desktop workflow. The goal is a dense, practical Windows tool that feels closer to classic utility apps.
The built-in Windows clipboard history is useful, but it has practical limits:
- History is short-lived and limited.
- Search is weak.
- Export and persistent organization are limited.
- It is not designed as a full clipboard workspace.
OmniClip extends that workflow with:
- Persistent local history stored in SQLite.
- Full-text search with FTS5.
- Image preview and save/export flows.
- Favorites.
- Sensitive clip protection with master password locking.
- Automatic locking for likely passwords, tokens, and other secret text.
- History backup export and import.
- Auto-expiry cleanup for older non-starred clips.
- A theme gallery with multiple visual presets.
- Tray-first background behavior.
- A configurable global shortcut.
- Quick open and full window modes.
- Copy back to clipboard and paste-back-to-previous-app flows.
- Captures clipboard changes in the background.
- Stores text clips, URLs, and images.
- Uses content hashing and cleanup logic to reduce duplicate entries.
- Can import older items from Windows Clipboard History when Windows makes them available.
- Stores history in a local SQLite database.
- Uses SQLite FTS5 for fast search over saved text previews.
- Shows a dense history table with favorite state, content type, preview text, and timestamp.
- Keeps favorites pinned above normal items.
- Shows full text preview for text and URL clips.
- Shows image dimensions, file size, and preview for image clips.
Copy Selectedrestores the selected item back to the active Windows clipboard.Paste Selectedrestores the item and attempts to paste it back into the app the user was working in before OmniClip was opened.
- Supports locking individual clips behind a master password.
- Can auto-lock likely passwords, tokens, and other secret-looking text when copied.
- Keeps locked clips blurred or hidden in the list and preview until unlocked.
- Blocks save/export and restore actions for locked clips until the master password is provided.
- Save/export text clips to
.txt. - Save/export image clips to
.png. - Reveal exported files in Explorer after saving.
- Export the full OmniClip history to a backup
.jsonfile. - Import a previously exported OmniClip backup file.
- Auto-delete older non-starred clips using a retention window from Settings.
- Copy the database path from the footer.
- Delete an individual clip from the preview panel.
- Clear OmniClip history from Settings.
- Default shortcut is
Alt+Shift+V. - Supports launch-on-startup for installed desktop builds.
- Starts hidden in the tray on login when startup is enabled.
- Light mode and dark mode.
- Theme gallery with multiple saved visual presets that change the app look and feel.
OmniClip is organized around a Rust desktop backend and a small React frontend:
- A background clipboard monitor checks the Windows clipboard at a fixed interval.
- New clipboard items are normalized, hashed, and stored in SQLite.
- SQLite triggers keep the FTS5 search index in sync.
- The Tauri frontend requests clip summaries, details, status, and settings through commands.
- Tray interactions and the global shortcut show or hide the main window.
- Restore, export, favorite, clear-history, and startup behaviors all route through Tauri commands in Rust.
- Clipboard polling and capture
- SQLite schema and migrations
- FTS5 indexing
- Duplicate cleanup
- Favorite updates
- Sensitive clip detection and lock state updates
- Master password hashing and verification
- Export/save commands
- Backup export and import
- Clip expiry cleanup
- Tray menu and window toggling
- Global shortcut registration
- Autostart registration
- Windows clipboard history import
- Dense list rendering
- Search input and filtering
- Preview rendering
- Locked clip states and unlock flow
- Settings editing
- Theme gallery preview and selection
- Save/export prompts
- Theme switching
- Tauri 2
- Rust
- Windows Win32 / Windows Runtime APIs
- React 19
- TypeScript
- Vite
- Vanilla CSS
- SQLite via
rusqlite - Full-text search via SQLite FTS5
- Clipboard access via
arboard - Image processing via
image
tauri-plugin-global-shortcuttauri-plugin-single-instancetauri-plugin-openertauri-plugin-dialogtauri-plugin-autostart
OmniClip is currently a Windows-focused desktop app.
- Windows 10 or Windows 11
- Node.js 20 or newer
- npm
- Rust stable toolchain
- Microsoft Visual Studio C++ build tools for the MSVC target
- WebView2 runtime available on Windows
git clone https://github.com/eul45/omniclip.git
cd omniclipnpm installnpm run tauri devThis starts:
- the Vite dev server
- the Tauri desktop shell
npx tauri build -b nsisnpx tauri build -b msiomniclip/
|- .github/
| |- workflows/
| |- release.yml
|- src/
| |- App.tsx
| |- App.css
| |- main.tsx
|- src-tauri/
| |- src/
| | |- lib.rs
| |- icons/
| |- tauri.conf.json
| |- Cargo.toml
| |- build.rs
|- docs/
| |- media/
| |- omniclip.png
|- LICENSE
|- README.md
This project is licensed under the MIT License - see the LICENSE file for details.
