User Guide

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

  1. Download ClipinVaultSetup.exe from the Downloads section.
  2. Run the installer- Windows may show a SmartScreen prompt - click More info → Run anyway.
  3. Choose whether to create a desktop shortcut and whether to start with Windows.
  4. Click Install. ClipinVault launches automatically when finished.
ℹ️
WebView2 Runtime is required. It comes pre-installed on Windows 10 21H2+ and all Windows 11 versions. If missing, the installer will prompt you to download it from Microsoft.

Ubuntu / Linux

  1. Download the .deb package from the Downloads section.
  2. Install with: sudo dpkg -i clipinvault_*.deb
  3. If dependency errors appear, run: sudo apt-get install -f
  4. Launch from your application menu or run clipinvault in 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.

  1. The app window opens. Copy anything — a URL, a code snippet, a password — and it appears in the list within a second.
  2. Click any entry to see its full content in the detail pane on the right.
  3. Click Use for Paste (or press Enter) to put the clip back on your system clipboard so you can paste it anywhere.
  4. Close the window. ClipinVault keeps running in the system tray — clips keep being captured.
💡
Press Ctrl+Shift+Alt+V from any application to bring the ClipinVault window back to the front.

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.
  • What gets captured

    • 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
    • ℹ️
      ClipinVault does not capture clipboard content from other ClipinVault paste operations — re-pasting a clip does not create a duplicate entry.

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.

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

  1. Select an entry in the list.
  2. Click Use for Paste in the detail pane.
  3. 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

  1. Find the entry in your list (it may have been auto-captured as text).
  2. Open it in the detail pane.
  3. Click the type badge and choose secret.
  4. 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.

⚠️
Important: Secret entries are excluded from export by default. When you do export secrets, they appear as plain text in the .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.
  • What this means for you

    • 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.
    • ℹ️
      If your OS keyring becomes unavailable (locked, corrupted, or moved to a new machine), secret entries will appear locked. Regular text, code, and image entries are unaffected.

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

  1. In the ClipinVault window, click File → Export in the menu bar.
  2. The Export dialog shows checkboxes for each content type. Select the types you want to include.
  3. Optionally enable Export secrets (separate file) to include your secret entries.
  4. Click Export and choose where to save the file.

What gets exported

ContentExported?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 export creates a plaintext file. The .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

  1. Click File → Import in the menu bar.
  2. Click Select .clipbundle file and pick the bundle you exported.
  3. A preview shows the number of entries found and their types.
  4. 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.clipbundle are 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.
  • 💡
    Import is non-destructive. Your existing clips are never modified or removed during an import — only new, unique entries are added.

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

  1. Click the New Clip button at the top of the left sidebar.
  2. The clip list and detail panel are replaced by a full-panel editor. Only the sidebar remains visible.
  3. Optionally enter a Title (up to 80 characters) at the top of the editor.
  4. 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.
  5. Use the type selector at the bottom left to choose a content type (text, code, sql, json, url, cmd, mfa, or secret).
  6. Click Save Clip. The new clip appears in the list and is selected automatically.
💡
Press Esc at any time to cancel and return to the normal list view without saving.
ℹ️
Manually-created clips are not deduplicated against existing entries — if you create the same content twice it will be stored as two separate clips. This is intentional so you can keep distinct copies with different titles or types.
⚠️
MFA clips expire automatically after 60 seconds regardless of whether they were captured or created manually. Do not use the MFA type for codes you want to keep.

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

  1. Select the clip in the list to open it in the detail pane.
  2. Click Edit Content at the bottom of the detail pane. The button is only shown for editable types.
  3. The detail area switches to an edit panel with the current content pre-loaded.
  4. Make your changes in the text area. You can also change the content type using the type selector.
  5. Click Save to commit. The list preview and the full-text search index are both updated immediately.
  6. Click Cancel or press Esc to discard your changes.

Which clips can be edited

TypeEditable?Reason
text code sql json url cmd mfa✅ YesPlain-text content can be freely modified.
secret❌ NoContent is encrypted. Editing would require decrypting and re-encrypting, which is a security-sensitive operation handled separately by changing the type.
image❌ NoImage clips are binary files stored on disk — they cannot be text-edited.
ℹ️
Editing content recomputes the SHA-256 hash stored in the database and updates the full-text search index. Searches for your updated keywords will work immediately.

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

  1. Open Settings (gear icon in the top bar).
  2. Enable the Auto-Clean toggle.
  3. Set Max age (days): clips older than this are deleted. Set to 0 to disable age-based cleanup.
  4. 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_at date in the future (reserved for future features).
  • ℹ️
    The janitor only runs while the app is open. If you close ClipinVault for a week and reopen it, the janitor runs once when the app starts and catches up on all overdue deletions.

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 (xclip or xsel) is installed.
  • Import / Export menu items are greyed out or don't work

    ⚠️
    Import and Export require the native Wails app window. If you open 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:

    • 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 --start and relaunch.
    • 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 directory
%LOCALAPPDATA%\ClipinVault\

Linux

Data directory
~/.local/share/ClipinVault/

Files inside the data directory

File / FolderContents
ClipinVault.dbYour entire clipboard history (SQLite database).
settings.jsonApp 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.
⚠️
Never manually delete or move 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.