Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clipd

English · 中文

Platform Swift License Stars

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.

Clipd — a full-width card bar summoned at the bottom of the screen

Features

  • 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.

Install (downloaded build)

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.

Requirements

  • macOS 14 (Sonoma) or later
  • Xcode 16 or later (Swift 6)
  • XcodeGen — brew install xcodegen

Build & Run

xcodegen generate          # generate Clipd.xcodeproj from project.yml
open Clipd.xcodeproj        # then Run (⌘R) in Xcode

Or from the command line:

xcodebuild -project Clipd.xcodeproj -scheme Clipd -configuration Release build
xcodebuild -project Clipd.xcodeproj -scheme Clipd -destination 'platform=macOS' test

The generated Clipd.xcodeproj is not committed — project.yml is the source of truth. Re‑run xcodegen generate after pulling changes.

Code signing

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)

First run

  1. Launch Clipd — a clipboard icon appears in the menu bar.
  2. Copy some text or an image; it is captured into the history.
  3. 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.
  4. For automatic paste, grant Accessibility in System Settings → Privacy & Security → Accessibility. Without it, Clipd falls back to copy‑only (you press ⌘V yourself).

Architecture

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.

Tech stack

Swift 6 (strict concurrency) · SwiftUI + AppKit · SwiftData · macOS 14+. Dependencies: KeyboardShortcuts and Sauce (both MIT).

Privacy

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.

Roadmap

  • 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

Possibly later

  • Preserve rich-text / HTML formatting (currently plain text only)
  • ⌘1–⌘9 to paste one of the most recent items

Contributing

Issues and pull requests are welcome.

brew install xcodegen
xcodegen generate && open Clipd.xcodeproj

Run the tests with xcodebuild -project Clipd.xcodeproj -scheme Clipd -destination 'platform=macOS' test.

License

Released under the MIT License — see LICENSE.

About

A fast, native macOS menu-bar clipboard history manager — search, filter, pin and paste back. Built with SwiftUI + SwiftData.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages