Documentation
Everything you need to use ClipinVault effectively - from first install to advanced workflows.
Installation
ClipinVault is distributed as a native installer for Windows and a .deb package for Ubuntu/Debian. No runtime or admin rights are required on Windows.
Windows
- Download ClipinVaultSetup.exe from the Downloads section.
- Run the installer- Windows may show a SmartScreen prompt - click More info → Run anyway.
- Choose whether to create a desktop shortcut and whether to start with Windows.
- Click Install. ClipinVault launches automatically when finished.
Ubuntu / Linux
- Download the
.debpackage from the Downloads section. - Install with:
sudo dpkg -i clipinvault_*.deb - If dependency errors appear, run:
sudo apt-get install -f - Launch from your application menu or run
clipinvaultin a terminal.
Upgrading
Run the new installer over the existing installation — it will close the running app, replace the binary, and relaunch. Your database, settings, and all clips are never touched during an upgrade.
First Launch
On first launch ClipinVault creates its data directory and starts monitoring the clipboard immediately. No sign-in, no account, no configuration required.
- The app window opens. Copy anything — a URL, a code snippet, a password — and it appears in the list within a second.
- Click any entry to see its full content in the detail pane on the right.
- Click Use for Paste (or press Enter) to put the clip back on your system clipboard so you can paste it anywhere.
- Close the window. ClipinVault keeps running in the system tray — clips keep being captured.
Clipboard Capture
ClipinVault listens to the OS clipboard event in the background. Every time you copy something — with Ctrl+C, right-click → Copy, or any application's copy action — the content is captured and stored locally.
How capture works
- Debounce: rapid successive copies within 300 ms are merged to prevent duplicate entries from drag-resize or auto-copy applications.
- Deduplication: the SHA-256 hash of each entry is computed before saving. If an identical item already exists, the copy count on the existing entry is incremented — no duplicate is added.
- Size limit: entries up to 5 MB are accepted. Anything larger is silently skipped to prevent performance issues with huge clipboard payloads.
- Minimum length: single-character or empty copies are ignored to reduce noise.
- Plain text, rich text, code, JSON, SQL, URLs, terminal commands
- Screenshots and copied images (stored encrypted, displayed as previews)
- Any text content your applications place on the clipboard
What gets captured
Content Types
Every entry is automatically tagged with a content type the moment it is captured. The type controls how the entry is displayed, coloured, and filtered.
| Type | Badge | Auto-detected when… |
|---|---|---|
| text | text | Default fallback — plain prose, notes, anything not matched below. |
| code | code | Contains keywords like function, const, class, import, def, indentation patterns, or bracket density suggests source code. |
| sql | sql | Starts with SQL keywords: SELECT, INSERT, UPDATE, CREATE, DROP, etc. |
| json | json | Content is valid JSON (object {} or array []). |
| url | url | Content begins with http:// or https://. |
| cmd | cmd | Starts with shell prefixes like $, #, sudo, git, npm, docker, ./, etc. |
| mfa | mfa | Numeric TOTP codes (123456) or alphanumeric one-time codes up to 12 characters (JTKASF, MGA-TGP). Must be uppercase letters and/or digits only — no lowercase. |
| secret | secret | Manually assigned by the user (never auto-detected). Content is masked and encrypted at rest. |
| image | image | Clipboard contained image data (PNG bytes). Captured automatically when you copy a screenshot or image. |
Changing the type manually
Click on the type badge of any entry in the detail pane. A dropdown lets you switch between text, code, sql, json, url, cmd, and secret. Changing to secret will immediately encrypt the content.
Search
ClipinVault uses SQLite FTS5 (Full-Text Search version 5) — the same engine that powers many professional search applications. Results appear as you type with no perceptible delay even across thousands of entries.
How to search
- Click the search bar at the top of the window (or press Ctrl+Shift+V to focus it).
- Type any word, phrase, or fragment. Results update in real time.
- Use the type filter dropdown to narrow results to a specific content type (e.g. only code or only url entries).
Search tips
- Search matches against both the entry content and the custom title you may have set.
- Search is case-insensitive.
- Secret entries are excluded from search results — their content is encrypted and not indexed. You can still find them by switching the type filter to secret.
- Clearing the search bar returns to the full list sorted by most-recent first.
Pinning & Titles
Pinning entries
Click the pin icon on any entry to mark it as pinned. Pinned entries:
- Always appear at the top of the list regardless of age.
- Are never deleted by the Auto-Clean janitor, regardless of retention settings.
- Survive application updates unchanged.
Click the pin icon again to unpin. Unpinned entries return to the normal chronological list.
Custom titles
Every entry can have a user-defined title (max 80 characters). Click the title area of an entry in the detail pane and type a name — for example, "Production DB password" or "Deploy script for staging". The title is searchable and appears as the primary label in the list view.
Pasting Clips
Finding a clip is only half the job — getting it back into your workflow is the other half. ClipinVault offers several ways to paste.
Click to paste
- Select an entry in the list.
- Click Use for Paste in the detail pane.
- Switch to your target application and press Ctrl+V as normal.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| Enter (list focused) | Use the selected entry for paste |
| Ctrl+Shift+1 | Push the most-recent clip to the clipboard immediately |
System tray quick-paste
The system tray icon shows the 5 most-recent clips in its context menu. Click any of them to copy the clip directly to your clipboard without opening the main window.
Secrets Mode
Secrets Mode lets you store sensitive data — passwords, API keys, tokens — inside your clipboard history without exposing them in plain text.
Marking an entry as secret
- Find the entry in your list (it may have been auto-captured as
text). - Open it in the detail pane.
- Click the type badge and choose secret.
- The preview immediately changes to
••••••••and the content is encrypted on disk.
Using a secret
Click Use for Paste on a secret entry. ClipinVault decrypts it in memory, copies the plain text to your clipboard, and you can paste normally. The decrypted content is never logged.
.secrets.clipbundle file. Treat that file like a password — delete it after importing on the destination device.Encryption
ClipinVault uses AES-256-GCM envelope encryption for all secret entries and all image files. This is the same algorithm used in TLS, Signal, and modern storage encryption.
How it works
- Master key: a 32-byte random key is generated on first launch and stored in your OS credential store (Windows Credential Manager on Windows, Secret Service API on Linux, Keychain on macOS). It never touches disk in plain form.
- Per-entry key: each secret entry gets its own unique random data key. The data key is encrypted by the master key (envelope encryption) and stored alongside the ciphertext in the database.
- Nonce: a unique 12-byte nonce is generated for every encryption operation, ensuring that the same plaintext encrypts to different ciphertext each time.
- If someone copies your database file (
ClipinVault.db), they cannot read your secrets without also having your OS master key. - Your secrets are safe even if the app is force-closed mid-write (WAL journal mode ensures atomicity).
- Uninstalling the app and re-installing on the same machine preserves the master key — your encrypted secrets remain readable.
What this means for you
Exporting Clips
The Export feature lets you package your clipboard history into a portable .clipbundle file that you can move to another machine or store as a backup.
How to export
- In the ClipinVault window, click File → Export in the menu bar.
- The Export dialog shows checkboxes for each content type. Select the types you want to include.
- Optionally enable Export secrets (separate file) to include your secret entries.
- Click Export and choose where to save the file.
What gets exported
| Content | Exported? | Notes |
|---|---|---|
| text code sql json url cmd | ✅ Yes (if selected) | Pin status, titles, and usage counts are preserved. |
| secret | ✅ Separate file | Written as plain text to .secrets.clipbundle. See warning below. |
| image mfa | ❌ Never | Images are device-specific. MFA codes expire within 30 seconds. |
Bundle file format
A .clipbundle file is plain JSON. It can be opened with any text editor. The format is stable across ClipinVault versions.
.secrets.clipbundle file contains your secret entries in plain text — no encryption. Transfer it over a secure channel (encrypted drive, SSH, secure messaging) and delete it immediately after import on the destination device.
Importing Clips
Import a .clipbundle or .secrets.clipbundle file to merge clips from another machine into your current vault.
How to import
- Click File → Import in the menu bar.
- Click Select .clipbundle file and pick the bundle you exported.
- A preview shows the number of entries found and their types.
- Click Import to confirm. The merge begins immediately.
What happens during import
- Deduplication: entries whose content hash already exists in your vault are skipped. You will never end up with duplicates.
- Secrets re-encryption: secret entries from a
.secrets.clipbundleare encrypted with this device's master key the moment they are imported. They are never stored as plain text. - Metadata preserved: pin status, custom titles, and usage counts from the bundle are imported alongside the content.
- Images and MFA skipped: even if a bundle somehow contains image or mfa entries, they are silently ignored as a safety guard.
Create Clip
You don't need to copy something to an external app and then come back to ClipinVault — you can create a clip directly inside the app at any time.
How to create a clip manually
- Click the New Clip button at the top of the left sidebar.
- The clip list and detail panel are replaced by a full-panel editor. Only the sidebar remains visible.
- Optionally enter a Title (up to 80 characters) at the top of the editor.
- Type or paste your content in the editor area. Line numbers are shown live; Tab inserts 2 spaces and Enter auto-indents to match the current line.
- Use the type selector at the bottom left to choose a content type (
text,code,sql,json,url,cmd,mfa, orsecret). - Click Save Clip. The new clip appears in the list and is selected automatically.
Edit Clip Content
Captured clips sometimes contain extra whitespace, truncated lines, or content you want to refine. The Edit Content feature lets you update the text of any clip in-place.
How to edit a clip
- Select the clip in the list to open it in the detail pane.
- Click Edit Content at the bottom of the detail pane. The button is only shown for editable types.
- The detail area switches to an edit panel with the current content pre-loaded.
- Make your changes in the text area. You can also change the content type using the type selector.
- Click Save to commit. The list preview and the full-text search index are both updated immediately.
- Click Cancel or press Esc to discard your changes.
Which clips can be edited
| Type | Editable? | Reason |
|---|---|---|
| text code sql json url cmd mfa | ✅ Yes | Plain-text content can be freely modified. |
| secret | ❌ No | Content is encrypted. Editing would require decrypting and re-encrypting, which is a security-sensitive operation handled separately by changing the type. |
| image | ❌ No | Image clips are binary files stored on disk — they cannot be text-edited. |
Auto-Clean
The Auto-Clean janitor runs in the background every hour and removes old clips according to your retention policy. It is disabled by default — nothing is ever auto-deleted until you enable it.
Configuring Auto-Clean
- Open Settings (gear icon in the top bar).
- Enable the Auto-Clean toggle.
- Set Max age (days): clips older than this are deleted. Set to 0 to disable age-based cleanup.
- Optionally set Min usage count: clips with fewer usages than this threshold are also deleted. Set to 0 to disable usage-based cleanup.
What is never auto-deleted
- Pinned entries — the pin flag is an explicit "never delete" signal. Pinned entries survive Auto-Clean regardless of age or usage count.
- Entries with a hard
expires_atdate in the future (reserved for future features).
Keyboard Shortcuts
| Shortcut | Action | Works from |
|---|---|---|
| Ctrl+Shift+Alt+V | Show / hide the ClipinVault window | Anywhere (global hotkey) |
| Ctrl+Shift+1 | Push the most-recent clip to the clipboard for immediate pasting | Anywhere (global hotkey) |
| Ctrl+Shift+V | Focus the clip list / search bar | Inside the app window |
| Enter | Use selected clip for paste | Clip list focused |
| ↑ / ↓ | Navigate the clip list | Clip list focused |
| Esc | Clear search / deselect / cancel New Clip or Edit | Inside the app window |
Troubleshooting
My copies aren't appearing in the list
- Check that ClipinVault is still running — look for the icon in your system tray.
- Content shorter than 2 characters is ignored automatically.
- Content larger than 5 MB is skipped silently.
- Try clicking Refresh in the toolbar to force a reload from the database.
- On Linux, ensure the required clipboard daemon (
xcliporxsel) is installed. - Windows: your Windows account is locked or using a temporary profile. Sign in normally and relaunch ClipinVault.
- Linux: the GNOME Keyring or KWallet service is not running. Start it with
gnome-keyring-daemon --startand relaunch.
Import / Export menu items are greyed out or don't work
http://localhost:5173 in a browser (dev mode), the file-picker API is not available. Always use the installed desktop app for these features.The app says secrets are "locked"
This means the OS keyring is unavailable — your master key cannot be retrieved. Common causes:
Text, code, URL, and image entries remain fully usable — only secret entries are affected.
My data disappeared after an update
This should never happen. The installer only replaces the application binary in the install directory — it never touches your data directory.
If you lost data, the most likely cause was a manual uninstall that deleted %LOCALAPPDATA%\ClipinVault before reinstalling. Use File → Import to restore from a .clipbundle export if you have one.
Large content is not being captured
ClipinVault captures up to 5 MB per entry. Content exceeding this is silently skipped. If you regularly copy very large payloads (e.g. multi-MB log files), consider splitting or compressing them before copying.
Data Location
All ClipinVault data is stored locally on your machine. There is no cloud sync or remote storage of any kind.
Windows
Data directoryLinux
Data directoryFiles inside the data directory
| File / Folder | Contents |
|---|---|
ClipinVault.db | Your entire clipboard history (SQLite database). |
settings.json | App preferences (auto-clean settings, etc.). |
images/ | Encrypted image files for image-type clips. |
logs/ | Daily log files (ClipinVault-YYYY-MM-DD.log). Safe to delete if disk space is tight. |
ClipinVault.db while the app is running. The app uses WAL mode — deleting the file mid-session can corrupt the journal. Close the app first, then manage files.Backing up your data
The safest backup method is File → Export inside the app — it produces a clean, portable bundle. For a full backup including images and settings, copy the entire data directory while ClipinVault is closed.