SnapClip: Building the Clipboard Manager macOS Deserves

The Problem: Why I Built This

When I switched from Windows to macOS three years ago, I felt like I'd been transported from modern technology back to the medieval era.

On Windows: Press Win+V, see your last 1000 clipboard items, click one, it pastes. Done.

On macOS: One clipboard slot. Copy something new? The previous item vanishes. Forever.

Sure, third-party solutions exist - ClipMenu, Pasty, Alfred. But they're all flawed:

  • Heavy and RAM-hungry
  • Complicated to configure
  • Don't feel native to macOS
  • Many require subscriptions or have dark patterns

I wanted something fast, lightweight, and native - something that feels like it belongs in macOS.

When no project appeared in the ecosystem, I started coding.

SnapClip menu bar
SnapClip in Menu Bar
Empty clipboard
Clean Start

The Vision: Menu Bar, Not Dock

SnapClip lives in the menu bar, not the Dock. This is intentional.

Menu bar apps are invisible until you need them. Zero visual clutter. But press Alt+Cmd+/ and boom - your entire clipboard history.

Why this approach wins:

  • Zero visual noise - Menu bar apps stay invisible until invoked
  • Always accessible - Global hotkey works everywhere: VS Code, Safari, Slack, Notes
  • Feels native - SF Symbols, dark mode support, system-level integration
  • Lightweight - No Electron, no bloat
Clipboard history
Auto-saved History
Pinned items
Pinned Items (Teal)

Building SnapClip: Technical Challenges

Challenge 1: Global Hotkeys on macOS

Unlike Windows, macOS doesn't provide a simple system API for global hotkeys in modern Swift. The solution? Carbon Events - 90s API that still works like magic.

var hotKeyRef: EventHotKeyRef = 0
var gMyHotKeyID = EventHotKeyID(signature: OSType(utf8: "mapp"), id: 1)

InstallEventHandler(GetEventDispatcherTarget(), 
                   { (nextHandler, theEvent, userData) in
    // Handle Alt+Cmd+/ globally
    return noErr
}, 1, &spec, nil, nil)

It works everywhere - inside VS Code, Chrome, even fullscreen apps. No focus required.

Challenge 2: Accessibility Permissions

To monitor clipboard changes and respond to global hotkeys, macOS requires Accessibility permissions. Instead of failing silently, I implemented an elegant startup check:

func checkAccessibilityPermissions() {
    if !AXIsProcessTrusted() {
        // Auto-prompt on first launch
        // Direct link to System Settings
        openSystemSettings()
    }
}

Rather than silently failing, SnapClip tells users exactly what's needed and why.

Challenge 3: Pin and Sorting Logic

A key feature is pinning - keeping important clips at the top while maintaining chronological order for recent items:

let pinnedItems = clipboardHistory.filter { $0.isPinned }
let recentItems = clipboardHistory.filter { !$0.isPinned }
                  .sorted { $0.timestamp > $1.timestamp }

let displayOrder = pinnedItems + recentItems

This simple logic provides powerful workflow control - pin API keys, error messages, code snippets, frequently-used responses.

Multiple paste 1
Step 1: Copy Multiple Items
Multiple paste 2
Step 2: Access History
Multiple paste 3
Step 3: Paste Instantly

SnapClip in Action

User scenario: You're copying text fragments from Wikipedia to paste into Notes.

Without SnapClip:

  1. Copy text 1
  2. Copy text 2
  3. Copy text 3
  4. "Wait, I needed text 1"
  5. Navigate back to Wikipedia
  6. Find text 1
  7. Copy again

With SnapClip:

  1. Copy text 1, 2, 3 (auto-saved)
  2. Press Alt+Cmd+/ to open history
  3. Click text 1
  4. Pasted to Notes
  5. Done. 5 seconds total.

Menu Bar Features

Menu bar apps have minimal attack surface - only essentials:

  • Show History - Toggle the window
  • Always on Top - Keep window visible
  • Launch at Login - Auto-start with system
  • Quit - Close SnapClip

No subscriptions. No upsell. No "premium features". Just functionality you need.

Why This Matters for macOS

macOS prides itself on elegant, focused design. Yet clipboard management was left to third parties for over a decade.

SnapClip proves that native tools can be lightweight and elegant. No Electron. No subscriptions. No dark patterns.

Just Swift + AppKit + good design.

Metric Value
Binary size ~5 MB
Memory usage <50 MB
macOS support 12+ (Monterey+)
External dependencies 0
License MIT

Open Source Matters

I released SnapClip on GitHub (MIT License) because:

  • Transparency - Users can verify security (no cloud, no tracking)
  • Trust - Source code is auditable
  • Community - Developers can contribute improvements
  • Longevity - If I stop maintaining it, others can fork it

This is the opposite of subscription software that disappears when the company fails.

Download SnapClip v1.0.0

Production Ready Menu Bar Clipboard Manager

Download SnapClip

Installation:

  1. Download SnapClip.app
  2. Double-click to install
  3. Grant Accessibility permissions on first launch
  4. Press Alt+Cmd+/ - ready!

Requirements:

  • macOS 12+ (Monterey+)
  • Accessibility permissions (auto-prompt)

Roadmap

  • v1.1: Search and filtering
  • v1.2: iCloud sync - synchronize clips across your Macs
  • v2.0: Multiple workspaces and tabs
  • Later: Custom hotkey configuration, keyboard-only navigation

About SnapClip

SnapClip is a lightweight, native menu bar clipboard history manager for macOS 12+. It monitors your clipboard, stores unlimited history, and provides instant access via global hotkey Alt+Cmd+/.

Features include pinning important clips (API keys, error messages, code snippets), chronological sorting, and zero tracking or cloud uploads. Everything stays local and private.

SnapClip is released under the MIT License and is available on GitHub at github.com/janjedrzejak/SnapClip

About the Development

Built with: Swift 5.7+, AppKit, Carbon Events API

Development time: Several months focused on native APIs, minimal dependencies, and user-first design

Key principles: Privacy-first (no cloud), lightweight (5MB binary), native feel (SF Symbols, dark mode), zero external dependencies

Continue the Conversation on LinkedIn

Interested in native macOS development, lightweight tools, or how to solve problems that Apple overlooks? Share your thoughts and let's discuss the future of macOS applications.

Connect on LinkedIn

Join the conversation with digital professionals exploring macOS development, software engineering, and open-source tools.