A native macOS clipboard manager with fast long-history search and ChatGPT-style Markdown/LaTeX preview.
Scopy is a Maccy-inspired macOS clipboard manager for people who copy long answers, research notes, code, screenshots, formatted text, and files all day. It keeps the instant native Mac workflow of a menu bar clipboard tool, then adds a richer preview and export surface for Markdown-heavy work.
The screenshots use Scopy's real native FloatingPanel and hover preview with a temporary fixture database on a clean light background, so the app chrome stays visible without personal clipboard data.
Quick start: Install with Homebrew · Download from Releases · Preview the UI · Read the Markdown/LaTeX details · Check performance evidence
brew tap Suehn/scopy
brew install --cask scopy && xattr -dr com.apple.quarantine /Applications/Scopy.app| Area | What Scopy gives you | Why it matters |
|---|---|---|
| Native macOS shell | SwiftUI menu bar app, global hotkey, translucent FloatingPanel, keyboard navigation, context menus, Settings |
Feels like a Mac utility instead of a web wrapper |
| Deep Mac actions | Copy, paste, pin, delete, AirDrop, Open Containing Folder, file notes, image optimization | Clipboard history stays actionable, not just searchable |
| Long history | Text, RTF, HTML, images, files, pins, deduplication, inline/external payload storage, thumbnails | Store research, code, screenshots, documents, and long answers together |
| Search | Exact, Fuzzy, Fuzzy+, Regex, app filters, type filters, grouped rich-text filters, explicit load-more | Fast recall without making the panel feel heavy |
| Markdown preview | ChatGPT-style Markdown/LaTeX preview, 80%-200% scale, shared preview/export renderer, PNG export | Copy a long answer, inspect it locally, export the same rendered surface |
| Renderer depth | Headings, lists, blockquotes, code, tables, footnotes, definition lists, task lists, safe HTML islands, inline/block math | Long Markdown stays readable and exportable |
| Operability | make build, unit/strict tests, snapshot perf gates, frontend profiles, release metadata validation |
Performance and release claims have repeatable evidence |
Scopy's Markdown preview/export path is the feature that makes it more than another clipboard list.
| Capability | What it means |
|---|---|
| ChatGPT-style reading surface | Local CommonMark/GFM rendering styled from captured ChatGPT/WACZ contracts for headings, paragraphs, lists, blockquotes, code, tables, source citations, and CJK rhythm. |
| Preview/export parity | Hover preview and PNG export share the renderer, so tables, code, math, footnotes, and source pills do not silently change between inspection and export. |
| Layout scale | Markdown hover preview supports 80%-200% scale; export launched from that preview uses the visible profile. |
| Rich syntax | Footnotes, definition lists, task lists, fenced code, syntax highlighting, safe HTML islands, inline and block math, standard tables, and wide-table scroll behavior. |
| Local-first | Renderer assets are bundled locally; image and Markdown PNG compression can use the configured pngquant path. |
Maccy is excellent when you want a minimal, keyboard-first clipboard list. Scopy keeps that baseline expectation, then deliberately targets richer workflows that show up in public clipboard-manager requests:
| Common pain point or request | Scopy design answer |
|---|---|
| Large custom histories can make a popup slow to prepare, especially around 10,000 items (p0deje/Maccy#1372). | Pinned rows load separately, the first recent page stays small, and load-more pages are explicit. |
| Large clippings and long previews can lag (#1080, #1095). | Preview preparation, Markdown rendering, thumbnails, and export have bounded paths and focused tests. |
| Users ask for better image save/draw/share workflows (#1331, #1245, #1348). | Scopy stores image rows, shows thumbnails, previews images, optimizes/compresses, and sends image/file rows via AirDrop. |
| Duplicate suppression and direct reuse matter (#1124, #1306). | Equivalent content is deduplicated at ingest, and keyboard-first select/copy/paste flows are part of the main panel contract. |
Scopy's performance claims are tied to checked-in docs and repeatable commands. Current requirements target interactive search at P95 <= 50ms for <= 5k items and first-page P95 <= 100-150ms for 10k-100k histories.
Representative recorded evidence:
| Evidence | Result |
|---|---|
Real snapshot DB, 6,421 items / 148.6 MB, release bench, cmd Fuzzy+ P95 |
0.21ms |
Real snapshot DB, 6,421 items / 148.6 MB, release bench, cm Fuzzy+ P95 |
9.81ms |
| Historical heavy perf suite, 50k fuzzy P95 | 90.6ms |
| Historical heavy perf suite, 75k fuzzy P95 | 124.7ms |
| v0.7.6 frontend standard profile, real snapshot row display-model P95 | about 0.56ms |
See doc/current/product-spec.md, doc/perf/baselines/perf-baseline-2026-01-27.md, and doc/perf/release-profiles/ for the evidence trail.
brew tap Suehn/scopy
brew install --cask scopy && xattr -dr com.apple.quarantine /Applications/Scopy.appUpgrade:
brew upgrade --cask scopy && xattr -dr com.apple.quarantine /Applications/Scopy.appThe app is currently unsigned. On first launch, right-click Scopy in Applications, choose Open, then confirm.
If Scopy.app does not appear in /Applications:
brew reinstall --cask scopy --appdir=/ApplicationsDownload the latest .dmg from GitHub Releases.
| Action | Shortcut / gesture |
|---|---|
| Open or close panel | Shift + Command + C by default, customizable |
| Search history | Start typing in the panel |
| Navigate | Up / Down |
| Select and paste | Enter |
| Clear search or close | Esc |
| Delete selected item | Option + Delete |
| Open Settings | Command + Comma |
| Context actions | Right-click a row |
| Markdown/LaTeX export | Hover preview, adjust scale if needed, export PNG |
- macOS 14.0 or later
- Swift 5.9
- Xcode 16.0 or later for local development
- Homebrew if you want
make setupto install missing developer tools such asxcodegen
make build
make test-unit
make test-strictRelease build:
make releasePerformance validation uses a realistic clipboard DB snapshot and writes evidence to logs/:
make snapshot-perf-db
make test-snapshot-perf-release
make perf-frontend-profileScopy app shell
AppDelegate, menu bar, floating panel, SwiftUI views, settings
|
v
ClipboardServiceProtocol
|
v
ScopyKit backend
ClipboardMonitor -> ClipboardService -> StorageService -> SearchEngineImpl
|
v
SQLite / FTS5 / external payload files / thumbnails
Important boundaries:
- Views do not directly read database or external storage paths.
- Clipboard ingest, deduplication, cleanup, and safe file handling belong behind backend protocols.
- Preview/export work uses shared renderer paths so visual fixes apply to both hover preview and PNG output.
- Heavy I/O, hashing, indexing, cleanup, thumbnail, preview, and export work should stay off the main thread.
- Suehn
- Codex
MIT License.



