English · 中文
A fast, native clipboard‑history manager for macOS. Clipd lives in your menu bar, remembers everything you copy, and brings it back with a single keystroke.
- Menu‑bar app — no Dock icon. Summon a card bar from the bottom of the screen with a global hotkey (default ⌘⇧C, customizable). The menu‑bar icon can be hidden for a hotkey‑only setup.
- Captures every kind — plain text, code, links, colors (hex), images and files. Each type gets its own card layout.
- Keyboard‑first
- ← → move selection · ⌘← / ⌘→ jump to first / last
- Space to preview the selected item (Quick Look style)
- ⏎ or double‑click to paste into the frontmost app — pasted items jump back to the top
- ⌘⌫ delete · ⌘P pin / unpin · esc close
- Search & filter — type to search; filter by All / Pinned / Text / Links / Images / Colors / Files.
- Pin favorites — pinned items stay forever and are exempt from cleanup.
- Tags & quick actions — right-click a card to copy, delete or tag it; create tags on the fly and filter the bar by any tag.
- Automatic cleanup — keep the last N days (default 7) and at most N items (default 1000); pinned items are never removed.
- Privacy‑respecting — honors the
org.nspasteboard.*markers used by password managers; concealed / transient / auto‑generated content is never stored. All data stays on your Mac. - Light & dark — adapts to the system appearance, with a choice of accent colors.
- Efficient storage — text lives in a local SwiftData store; images are written to disk with small thumbnails, so the database stays tiny.
Download the latest .dmg from the Releases page. Builds are signed with a development certificate but not notarized, so macOS Gatekeeper blocks them on first launch. Open the DMG, drag Clipd to Applications, then clear the quarantine flag once:
xattr -dr com.apple.quarantine /Applications/Clipd.app(Or right‑click the app → Open → Open.) Building from source has no such restriction.
- macOS 14 (Sonoma) or later
- Xcode 16 or later (Swift 6)
- XcodeGen —
brew install xcodegen
xcodegen generate # generate Clipd.xcodeproj from project.yml
open Clipd.xcodeproj # then Run (⌘R) in XcodeOr from the command line:
xcodebuild -project Clipd.xcodeproj -scheme Clipd -configuration Release build
xcodebuild -project Clipd.xcodeproj -scheme Clipd -destination 'platform=macOS' testThe generated
Clipd.xcodeprojis not committed —project.ymlis the source of truth. Re‑runxcodegen generateafter pulling changes.
The committed configuration uses ad‑hoc signing, so anyone can build locally without an Apple account. If you want the Accessibility permission to survive rebuilds, put your own identity in Config/Local.xcconfig (git‑ignored):
DEVELOPMENT_TEAM = XXXXXXXXXX
CODE_SIGN_IDENTITY = Apple Development: you@example.com (XXXXXXXXXX)
- Launch Clipd — a clipboard icon appears in the menu bar.
- Copy some text or an image; it is captured into the history.
- Press ⌘⇧C to open the card bar; type to search, ← → to select, Space to preview, ⏎ or double‑click to paste. Right‑click a card to copy, delete or tag it.
- For automatic paste, grant Accessibility in System Settings → Privacy & Security → Accessibility. Without it, Clipd falls back to copy‑only (you press ⌘V yourself).
App/ @main entry, AppDelegate, AppCoordinator (composition root)
ClipdCore/
Models/ Sendable domain types
Persistence/ SwiftData @Model + @ModelActor repository
Storage/ on-disk blob store, paths
Clipboard/ polling monitor, privacy filter, capture, thumbnails, trimming
Paste/ pasteboard write-back, key mapping, paste service
Hotkeys/ global hotkey
Permissions/ Accessibility
Panel/ NSPanel + menu-bar status item
Features/ SwiftUI card bar & settings
ClipdTests/ unit tests
Built for Swift 6 strict concurrency: domain types are Sendable, all SwiftData access is isolated to a @ModelActor, and UI/clipboard code runs on the main actor.
Swift 6 (strict concurrency) · SwiftUI + AppKit · SwiftData · macOS 14+. Dependencies: KeyboardShortcuts and Sauce (both MIT).
Everything Clipd captures is stored locally under ~/Library/Application Support/Clipd/ and never leaves your machine. Content marked concealed/transient/auto‑generated by other apps (e.g. password managers) is skipped, so passwords are not recorded.
- Capture text, images, links, colors, code and files
- Bottom card bar with search, type filters and pinning
- Space to preview the selected item (Quick Look style)
- Recently pasted items move back to the top (MRU)
- Time- and count-based cleanup; privacy markers honored
- Settings: retention, launch at login, appearance, accent, shortcut, hide menu-bar icon
- Right-click a card to copy or delete it
- Tags: create, assign and filter by tag
- Preserve rich-text / HTML formatting (currently plain text only)
- ⌘1–⌘9 to paste one of the most recent items
Issues and pull requests are welcome.
brew install xcodegen
xcodegen generate && open Clipd.xcodeprojRun the tests with xcodebuild -project Clipd.xcodeproj -scheme Clipd -destination 'platform=macOS' test.
Released under the MIT License — see LICENSE.
