About this project

Gancho — "hook" in Spanish — is an MIT-licensed, local-first clipboard history and curated snippet library for the Apple platform family. The README describes it as public v0.8.3 in active development toward 1.0, with macOS as the primary creation surface, iPhone/iPad apps with extension support, a planned iPad-compatible visionOS build, and watchOS limited to pins and recent items. Android, Windows and Linux are listed only as future analysis, with no implementation commitment. Capture and privacy on macOS are handled by a pasteboard monitor using adaptive low-power polling that pauses on screen lock and private mode, suppresses its own writes, flags Universal Clipboard items and keeps rich payloads such as text, RTF, HTML, images and file URLs. Pasteboard types marked ConcealedType, TransientType or AutoGeneratedType veto capture before any content is read, and a preloaded password-manager and banking denylist plus an "ignore next copy" action are included. An on-device detector looks for card numbers (Luhn), AWS/Stripe/GitHub/Slack keys, PEM keys and probable passwords, showing masked previews with short expiry. On iOS, iPadOS and visionOS, capture is intentional only — no background pasteboard polling. The project states that clipboard content is never written to logs, telemetry, crash reports, analytics or support bundles. Storage uses GRDB/SQLite with content-addressed disk blobs, lazy thumbnails, paged metadata-only lists, versioned migrations, device-aware deduplication and JSON/CSV export. Search is FTS5-based with exact, fuzzy and regex modes plus filters for kind, source app and date, supported by a 100k-item performance harness. A 512-dimension on-device embedding index powers the "Ask your clipboard" feature and automatic board suggestions, while the main history search remains FTS5. A retention engine applies global and per-kind expiry, sensitive auto-expiry and background purging, with pins exempt. The macOS app is a menu-bar agent with a resizable floating history panel (Shift-Cmd-V), keyboard-first type-to-search, composable filters, editable titles, per-kind previews, a read-only full-content preview, and paste-back through a synthetic Cmd-V. Pins, multi-membership boards and a unified Library for boards and snippets are implemented, along with batch add-to-stack, add-to-board and delete-with-undo, multi-selection, dragging file clips, curated Spotlight donation with structural redaction, and a guided Maccy/CSV history import with a read-only preview, validation, atomic deduplication and cancellation. Raycast is explicitly not an import source, since its documented clipboard API exposes only six recent entries and its encrypted backup has no documented third-party decoding schema. The iPhone and iPad app offers only intentional capture through a Save button, UIPasteControl, a Share Extension and App Intents/Shortcuts, plus a keyboard extension with history, widgets, iPad split view and source-app filtering. Its on-device intelligence stack works with zero network: a deterministic tier-0 classifier recognizing 17 kinds of content in under 5 ms, Apple Intelligence titles, screenshot OCR, semantic indexing, Dev Actions (JWT decode, JSON formatting, Base64, URL parsing, color conversion, UUID formats) also exposed as App Intents, Smart Paste rewrites/translation/PII redaction, grounded Q&A over history, and automatic board suggestions. Each stage has its own toggle on the Intelligence screen. Sync uses CKSyncEngine over the user's private iCloud database behind a SyncEngine boundary, with a visible sync status. Integrations include a gancho CLI, a local opt-in MCP server with expiring and revocable per-client grants, explicit board/time context, independent read/write permissions and a metadata-only access log, plus a VS Code "Save Selection" command. Monetization uses StoreKit 2 purchase, restore and entitlement plumbing with a contextual paywall and free-tier limits; the direct-download build can buy, activate, revalidate and deactivate a Pro license through Lemon Squeezy without embedding a payments secret, and Pro unlocks encrypted iCloud sync. Optional anonymous diagnostics stay disabled until explicit consent, and the Privacy Center's activity receipt keeps bounded per-app totals on the device for 13 rolling months without syncing or exporting. Engineering-wise the project uses XcodeGen, Swift 6 strict concurrency, a bilingual English/Spanish String Catalog gate, accessibility support, and a single SwiftPM package (GanchoKit) containing eight library products plus a CLI. CI covers build, test and lint, an enforced production-source coverage floor, serialized StoreKit automation and scale performance. Building requires macOS 15.4+, Xcode 26+ and XcodeGen, with documented make targets for tests, iOS device installs, packaging, release QA and site checks. The README credits GRDB.swift, SQLCipher, KeyboardShortcuts, Sauce and TelemetryDeck as underlying open-source work. License: MIT, © 2026 Johnny Young.