Skip to content

πŸ—’οΈ Lightweight clipboard manager for macOS with history, search, export to NotebookLM, and privacy-first design

License

Notifications You must be signed in to change notification settings

kiku-jw/ClipStash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

ClipStash

ClipStash

πŸ—’οΈ Lightweight, privacy-first clipboard history manager for macOS

App Store Product Hunt Build License: AGPL-3.0 macOS 14+

App Store β€’ Website β€’ Documentation β€’ Direct Download


Why ClipStash?

ClipStash is an open-source clipboard manager for macOS that prioritizes privacy and performance. Unlike alternatives that require internet access or heavy frameworks, ClipStash runs completely offline with zero telemetry.

✨ Key Features

Feature Description
πŸ”’ Zero Network Access Sandbox enforced β€” literally cannot connect to internet
⚑ Lightning Search SQLite FTS5 full-text search across thousands of items
πŸ“€ NotebookLM Export Auto-split Markdown files for AI notebooks (unique!)
πŸ” Password-Aware Auto-skips 1Password, Bitwarden, and other managers
πŸͺΆ Ultralight <60MB RAM, <0.5% CPU idle, native SwiftUI
πŸ“Œ Pin & Organize Pin frequently used clips, filter by source app
πŸ–ΌοΈ Image Support Capture and preview images in clipboard history

Comparison with Alternatives

Feature ClipStash Maccy CopyQ PasteBar Ditto
Platform macOS macOS Cross Mac/Win Windows
Open Source βœ… AGPL βœ… MIT βœ… GPL βœ… Apache βœ… GPL
Zero Network βœ… Sandboxed βœ… ❌ βœ… βœ…
FTS5 Search βœ… βœ… ❌ ❌ Regex
NotebookLM Export βœ… Unique ❌ ❌ ❌ ❌
Password Detection βœ… Both flags βœ… Script ❌ ❌
App Filter Export βœ… ❌ ❌ Partial ❌
Native UI βœ… SwiftUI βœ… AppKit Qt Tauri Win32
RAM Usage ~50MB ~40MB ~100MB ~150MB ~30MB
Price Free Free Free Free Free

Bottom line: ClipStash is the only clipboard manager with NotebookLM-optimized export and verifiable zero-network privacy (sandbox enforced, open source).


Installation

App Store (Recommended)

Download on the App Store

Direct Download

⬇️ Download ClipStash.app.zip

  1. Download and unzip
  2. Run in Terminal: xattr -cr ~/Downloads/ClipStash.app
  3. Move ClipStash.app to /Applications and launch

Why xattr? macOS blocks apps not signed with Apple Developer ID. This command removes the quarantine flag. ClipStash is open-source β€” verify the code.

Build from Source

git clone https://github.com/kiku-jw/ClipStash.git
cd ClipStash
open ClipStash.xcodeproj
# Build with ⌘B, Run with ⌘R

Launch at Login

  1. Move ClipStash.app to /Applications
  2. Open Settings β†’ Enable "Launch at Login"

Note: Launch at login requires the app to be in /Applications (macOS restriction).


Usage

Keyboard Shortcuts

Action Shortcut
Open history Click menu bar icon
Navigate ↑ / ↓
Copy to clipboard Enter
Focus search ⌘F
Delete item ⌘⌫
Pin/unpin ⌘P
View full content Double-click

Export to NotebookLM

  1. Click Export... in popover
  2. Select scope: Last 50/100/200/500, Today, Pinned, or by App
  3. Choose format: Markdown (recommended)
  4. Click Export Now

Large exports auto-split at ~400K words (within NotebookLM's 500K word limit).

Settings

Setting Default Description
History Limit 500 Max items to keep (100-50000)
Text Max Size 500 KB Skip text larger than this
Image Max Size 10 MB Skip images larger than this
Save Images On Also capture images
Deduplication On Skip duplicate content
Byte Preserve Off Keep exact whitespace

Ignore List

Add app bundle IDs to exclude from capture (e.g., com.1password.1password).

Privacy

  • No Network: App never makes network requests (sandbox enforced)
  • No Telemetry: Zero analytics or tracking
  • Local Storage: All data in ~/Library/Application Support/ClipStash
  • Sensitive Content: Automatically skips concealed/transient clipboard items
  • Optional Encryption: Pin items and encrypt with AES-GCM

Sensitive Content Detection

ClipStash respects macOS clipboard indicators:

  • org.nspasteboard.ConcealedType β€” password managers
  • org.nspasteboard.TransientType β€” temporary data

Architecture

ClipStash/
β”œβ”€β”€ App/           # Entry point, AppDelegate
β”œβ”€β”€ Core/          # Business logic
β”‚   β”œβ”€β”€ ClipboardMonitor.swift
β”‚   β”œβ”€β”€ StorageManager.swift
β”‚   └── ExportService.swift
β”œβ”€β”€ UI/            # SwiftUI views
└── Utils/         # Helpers

Why Polling?

macOS doesn't provide clipboard change notifications. We poll NSPasteboard.changeCount every 300ms with debounce β€” same approach used by established clipboard managers. This uses negligible CPU.

FAQ

Q: Why not use NSPasteboard notifications? A: macOS doesn't provide them. Polling is the only reliable method.

Q: How do I exclude an app? A: Settings β†’ Ignore List β†’ Add bundle ID (e.g., com.apple.keychainaccess).

Q: Where is data stored? A: ~/Library/Application Support/ClipStash/clipstash.db

Q: How to fully uninstall? A: Delete app + rm -rf ~/Library/Application\ Support/ClipStash

Documentation

Contributing

See CONTRIBUTING.md.

License

AGPL-3.0. Copyright (c) 2025 KikuAI Lab

About

πŸ—’οΈ Lightweight clipboard manager for macOS with history, search, export to NotebookLM, and privacy-first design

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages