ClipVault is a fast, offline clipboard manager for text and images.
Built with Electron + React + Vite + SQLite (better-sqlite3).
Opens with a global shortcut, supports search, pinning, tags, themes, and keyboard-first navigation.
Author: Ing Muyleang
License: MIT
brew tap muyleanging/quantum-clipboard
brew install --cask quantum-clipboardxattr -dr com.apple.quarantine "/Applications/Quantum Clipboard.app"See Homebrew Installation for full details.
For other platforms or building from source, see below.
- Lightweight popup-style clipboard history
- 100% local (no cloud, no tracking)
- Stores both text and images
- Secure Electron architecture with contextBridge IPC
- Cross-platform: macOS (Intel & Apple Silicon), Windows, Linux
- Clipboard history (text + images)
- Global shortcut popup (default:
⌘⇧V/Ctrl+Shift+V) - Search (text content or
imageto filter images) - Pin important items
- Add tags
- Delete / Clear all
- Tray / menu bar access (Open, Quit, version)
- Custom themes (accent color, background)
- Fully keyboard navigable
- Clone & enter directory
git clone https://github.com/YOUR_USERNAME/clipvault.git
cd clipvault- Install dependencies
npm install- Rebuild native modules
npm run postinstall- Start dev mode
npm run devOpen popup
CommandOrControl + Shift + V
Keyboard shortcuts
- ↑ / ↓ Navigate
- Enter Copy selected item
- Esc Close
- Cmd/Ctrl + K Focus search
Copying items
- Copy text/image normally
- Open popup
- Select → Enter / click Copy
Local SQLite database.
Locations
- macOS:
~/Library/Application Support/clipvault/clipvault.sqlite - Windows:
%APPDATA%\clipvault\clipvault.sqlite - Linux:
~/.config/clipvault/clipvault.sqlite
Reset database (close app first)
macOS:
rm -f ~/Library/Application\ Support/clipvault/clipvault.sqlite*Linux:
rm -f ~/.config/clipvault/clipvault.sqlite*Windows (PowerShell):
Remove-Item "$env:APPDATA\clipvault\clipvault.sqlite*" -ErrorAction SilentlyContinuenpm run distOutputs go to dist/ (installers + unpacked apps). See detailed Production Build section below.
ClipVault uses electron-builder.
After npm run dist:
Output location: dist/ (customizable in package.json → "directories": {"output": "releases"})
macOS ("target": ["dmg"]):
ClipVault-0.1.0.dmgmac-arm64/ClipVault.app(or universal)
Windows ("target": ["nsis"]):
ClipVault Setup 0.1.0.exewin-unpacked/ClipVault.exe
Linux ("target": ["AppImage", "deb"]):
ClipVault-0.1.0.AppImageclipvault_0.1.0_amd64.deb
Test tips, platform-specific builds, and customization → see earlier detailed notes.
package.json targets:
"mac": { "target": ["dmg"], "icon": "build/icon.icns" },
"win": { "target": ["nsis"] },
"linux": { "target": ["AppImage", "deb"] }Create build/icon.png (1024×1024), convert to .icns (macOS), etc. (see your original steps).
Branch → npm run dev → PR with description + screenshots.
Unsigned app — on first launch:
- Right-click → Open → confirm
OR
xattr -dr com.apple.quarantine "/Applications/Quantum Clipboard.app"Quantum Clipboard is available via custom tap.
- Add tap & install
brew tap muyleanging/quantum-clipboard
brew install --cask quantum-clipboard- Bypass Gatekeeper (once)
xattr -dr com.apple.quarantine "/Applications/Quantum Clipboard.app"- Launch
Double-click in Applications or:
open -a "Quantum Clipboard"Uninstall:
brew uninstall --cask quantum-clipboard
brew untap muyleanging/quantum-clipboardWhy xattr? No paid Apple Developer ID for notarization — common for open-source Electron apps.
MIT © Ing Muyleang