Skip to content

8tp/Recopy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Recopy

A native macOS menu bar app that remembers everything you copy.
Lightweight clipboard manager built entirely with system frameworks.

macOS 14+ Swift 5.9+ MIT License Zero Dependencies No network

No account. No subscription. No telemetry. Just your clipboard.


Why Recopy?

Paste Maccy macOS Built-in Recopy
Price $30 Free N/A Free
Menu bar native Yes Yes No Yes
Search history Yes Yes No Yes
Full-fidelity images Yes No No Yes
Rich text paste Yes No No Yes
Pin clips Yes No No Yes
Excluded apps Yes Yes No Yes
Source app tracking No No No Yes
Keyboard navigation Yes Yes No Yes
Zero dependencies No No Yes Yes
Open source No Yes No Yes

Features

Clipboard Monitoring

  • Automatic capture -- Starts monitoring at launch, no interaction required. Polls the system pasteboard every 0.5s using only public APIs
  • Text, images, rich text -- Captures plain text, RTF formatting, and PNG/TIFF images at full fidelity
  • Smart deduplication -- Recopying the most recent text updates its timestamp instead of creating a duplicate
  • Source app tracking -- Records which app each clip was copied from, with icon and name
  • Self-capture suppression -- The app's own pasteboard writes (paste/copy actions) are never re-captured into history

Menu Bar Popover

  • Instant access -- Click the menu bar icon or press βŒ˜β‡§V globally to toggle the popover
  • Real-time search -- Filter clips instantly by substring match
  • Pinned section -- Pin important clips to the top of the list
  • Timestamps -- Relative time ("3 min ago") and clock time on every entry, plus source app name
  • Single-click paste -- Click a clip to paste it directly into the frontmost app via ⌘V simulation
  • Context menu -- Right-click for Copy, Pin/Unpin, and Delete
  • Liquid glass design -- NSVisualEffectView vibrancy, glassy cards, smooth hover animations

Keyboard Navigation

  • Arrow keys -- Move selection up/down through the clip list
  • Return -- Paste the selected clip into the frontmost app
  • Backspace -- Delete the selected clip (edits search when search has text)
  • Escape -- Clear search text, or close the popover
  • Typing -- Automatically enters the search field

Privacy & Security

  • Password manager exclusion -- Auto-skips clips from 1Password, KeePassXC, and other vaults
  • Concealed content -- Respects org.nspasteboard.ConcealedType for sensitive fields
  • Excluded apps list -- Add any app's bundle ID prefix to block clipboard capture
  • Fully offline -- Zero network calls, ever

Settings

  • History limit -- Keep 50 to 1,000 clips (default 200), auto-prunes oldest non-pinned
  • Launch at login -- Native SMAppService integration
  • Sound on copy -- Optional audio feedback when a clip is captured
  • Global hotkey -- βŒ˜β‡§V to toggle the popover from anywhere
  • Clear all history -- Inline confirmation, preserves pinned clips

Keyboard Shortcuts

Shortcut Action
βŒ˜β‡§V Toggle clipboard history popover
↑ ↓ Navigate clip list
↡ Paste selected clip
⌫ Delete selected clip / edit search
βŽ‹ Clear search / close popover
Click Paste clip into frontmost app
Right-click Context menu (Copy, Pin, Delete)

Installation

Build from Source

git clone https://github.com/huntermeherin/cliphist.git
cd cliphist/Recopy
xcodebuild -scheme Recopy -configuration Release build

Open in Xcode

cd cliphist/Recopy
open Recopy.xcodeproj
# Set signing to "Sign to Run Locally"
# Build and run (Cmd+R)

Requirements

  • macOS 14 (Sonoma) or later
  • Xcode 15+ (for building)
  • Accessibility permission (for paste simulation -- prompted on first use)

Architecture

Recopy/Recopy/
  RecopyApp.swift                App entry + AppDelegate (NSStatusItem + NSPopover)
  Models/
    ClipItem.swift               SwiftData model with full-fidelity image storage
  Services/
    ClipboardMonitor.swift       NSPasteboard polling, dedup, pruning, self-suppression
    PasteService.swift           Pasteboard write + CGEvent ⌘V simulation
    HotkeyManager.swift          Global βŒ˜β‡§V via NSEvent monitors
    AppDetector.swift            Frontmost app detection + icon resolution
  Views/
    ClipboardPopoverView.swift   Main popover with keyboard handling + vibrancy
    ClipRowView.swift            Clip row with glassy hover/selection states
    SearchBar.swift              Glass-styled search input
    SettingsView.swift           Card-based preferences panel
  Utilities/
    TimeFormatter.swift          Relative date strings
    ImageUtils.swift             Background-safe thumbnail compression
graph TD
    A[AppDelegate] --> B[NSStatusItem]
    A --> C[NSPopover]
    A --> D[ClipboardMonitor]
    A --> E[HotkeyManager]
    D --> F[NSPasteboard Polling]
    D --> G[SwiftData Store]
    C --> H[ClipboardPopoverView]
    H --> I[SearchBar]
    H --> J[ClipRowView]
    H --> K[SettingsView]
    J -->|Click/Enter| L[PasteService]
    L --> M[CGEvent ⌘V]
    E -->|βŒ˜β‡§V| C
Loading

Tech Stack

Layer Technology
UI Framework SwiftUI + AppKit
Data Persistence SwiftData
Clipboard NSPasteboard
Paste Simulation CGEvent (Accessibility API)
Global Hotkey NSEvent (global + local monitors)
Launch at Login SMAppService
Image Processing NSBitmapImageRep (background thread)
Vibrancy NSVisualEffectView

Privacy

Recopy makes zero network calls. All clipboard data is stored locally in a SwiftData database on your Mac. No accounts, no analytics, no tracking. Your data never leaves your machine.


Contributing

Pull requests welcome. Please open an issue first to discuss larger changes.


License

MIT -- free for personal and commercial use.


Built with Swift, SwiftUI, and AppKit. Zero dependencies. No compromises.

Releases

No releases published

Packages

 
 
 

Contributors

Languages