Skip to content

Repository files navigation

OmniClip

OmniClip App

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.

Why OmniClip

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.

Current Feature Set

Clipboard Capture

  • 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.

Search And History

  • 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.

Preview And Restore

  • Shows full text preview for text and URL clips.
  • Shows image dimensions, file size, and preview for image clips.
  • Copy Selected restores the selected item back to the active Windows clipboard.
  • Paste Selected restores the item and attempts to paste it back into the app the user was working in before OmniClip was opened.

Sensitive Clip Protection

  • 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.

Export, Backup, And Cleanup

  • 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 .json file.
  • 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.

Desktop Workflow

  • 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.

Personalization

  • Light mode and dark mode.
  • Theme gallery with multiple saved visual presets that change the app look and feel.

Architecture

OmniClip is organized around a Rust desktop backend and a small React frontend:

  1. A background clipboard monitor checks the Windows clipboard at a fixed interval.
  2. New clipboard items are normalized, hashed, and stored in SQLite.
  3. SQLite triggers keep the FTS5 search index in sync.
  4. The Tauri frontend requests clip summaries, details, status, and settings through commands.
  5. Tray interactions and the global shortcut show or hide the main window.
  6. Restore, export, favorite, clear-history, and startup behaviors all route through Tauri commands in Rust.

Backend Responsibilities

  • 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

Frontend Responsibilities

  • 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

Technology Stack

Desktop

  • Tauri 2
  • Rust
  • Windows Win32 / Windows Runtime APIs

Frontend

  • React 19
  • TypeScript
  • Vite
  • Vanilla CSS

Storage And Processing

  • SQLite via rusqlite
  • Full-text search via SQLite FTS5
  • Clipboard access via arboard
  • Image processing via image

Tauri Plugins

  • tauri-plugin-global-shortcut
  • tauri-plugin-single-instance
  • tauri-plugin-opener
  • tauri-plugin-dialog
  • tauri-plugin-autostart

Requirements

OmniClip is currently a Windows-focused desktop app.

Runtime Target

  • Windows 10 or Windows 11

Development Requirements

  • Node.js 20 or newer
  • npm
  • Rust stable toolchain
  • Microsoft Visual Studio C++ build tools for the MSVC target
  • WebView2 runtime available on Windows

Getting Started

1. Clone The Repository

git clone https://github.com/eul45/omniclip.git
cd omniclip

2. Install Frontend Dependencies

npm install

3. Run The App In Development

npm run tauri dev

This starts:

  • the Vite dev server
  • the Tauri desktop shell

Build And Packaging

Build An NSIS Installer

npx tauri build -b nsis

Build An MSI Installer

npx tauri build -b msi

Repository Structure

omniclip/
|- .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

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Smart, clipboard management tool designed to streamline productivity.

Resources

Stars

12 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages