Об этом проекте
Gancho (в переводе с испанского — «крючок») — это локальный менеджер истории буфера обмена и курируемая библиотека сниппетов для семейства платформ Apple, распространяемый под лицензией MIT. Согласно README, проект находится в активной разработке (версия v0.8.3) с целью достижения версии 1.0. Основной платформой разработки является macOS; также доступны приложения для iPhone/iPad с поддержкой расширений, планируется сборка для visionOS, совместимая с iPad, а версия для watchOS ограничена закрепленными и последними элементами. Android, Windows и Linux указаны только как объекты будущего анализа без обязательств по реализации.
Захват данных и конфиденциальность в macOS обеспечиваются монитором буфера обмена с адаптивным энергоэффективным опросом, который приостанавливается при блокировке экрана и в приватном режиме, подавляет собственные записи, помечает элементы Universal Clipboard и сохраняет насыщенные данные (текст, RTF, HTML, изображения и URL-адреса файлов). Типы буфера обмена, отмеченные как ConcealedType, TransientType или AutoGeneratedType, блокируют захват до чтения содержимого. В систему включены предустановленный черный список менеджеров паролей и банковских приложений, а также действие «игнорировать следующее копирование». Локальный детектор ищет номера карт (Luhn), ключи AWS/Stripe/GitHub/Slack, PEM-ключи и вероятные пароли, отображая маскированные превью с коротким сроком действия. В iOS, iPadOS и visionOS захват происходит только намеренно — фоновый опрос буфера обмена отсутствует. Проект заявляет, что содержимое буфера обмена никогда не записывается в логи, телеметрию, отчеты об ошибках, аналитику или пакеты поддержки.
Хранение реализовано на базе GRDB/SQLite с использованием адресованных по содержимому дисковых блобов, ленивых миниатюр, постраничных списков только с метаданными, версионных миграций, дедупликации с учетом устройства и экспорта в JSON/CSV. Поиск основан на FTS5 с режимами точного, нечеткого и регулярного поиска, а также фильтрами по типу, приложению-источнику и дате, что подтверждено тестами производительности на 100 тыс. элементов. Индекс встроенных эмбеддингов (512 измерений) обеспечивает работу функции «Ask your clipboard» и автоматические предложения досок, в то время как основной поиск по истории остается на FTS5. Механизм хранения применяет глобальное и потиповое истечение срока действия, автоматическое удаление конфиденциальных данных и фоновую очистку; закрепленные элементы исключены из этого процесса.
Приложение для macOS представляет собой агент в строке меню с изменяемым плавающим окном истории (Shift-Cmd-V), поиском по мере ввода, комбинируемыми фильтрами, редактируемыми заголовками, превью по типам, полноэкранным просмотром содержимого и вставкой через синтетический Cmd-V. Реализованы закрепления, доски с множественным членством и единая библиотека для досок и сниппетов, а также пакетное добавление в стек/доску, удаление с отменой, мультивыбор, перетаскивание файловых клипов, курируемая передача данных в Spotlight со структурным редактированием и управляемый импорт истории из Maccy/CSV с предварительным просмотром, валидацией, атомарной дедупликацией и возможностью отмены. Raycast явно не является источником импорта, так как его API буфера обмена предоставляет только шесть последних записей, а зашифрованный бэкап не имеет документированной схемы декодирования для сторонних приложений.
Приложение для iPhone и iPad предлагает только намеренный захват через кнопку «Save», UIPasteControl, расширение «Поделиться» и App Intents/Shortcuts, а также расширение клавиатуры с историей, виджеты, разделенный экран на iPad и фильтрацию по приложению-источнику. Стек локального интеллекта работает без сети: детерминированный классификатор уровня 0 распознает 17 типов контента менее чем за 5 мс, Apple Intelligence создает заголовки, работает OCR скриншотов, семантическое индексирование и Dev Actions (декодирование JWT, форматирование JSON, Base64, парсинг URL, конвертация цветов, форматы UUID), которые также доступны как App Intents. Функции Smart Paste позволяют переписывать, переводить или удалять PII (персональные данные), реализованы ответы на вопросы по истории и автоматические предложения досок. Каждый этап имеет собственный переключатель в меню Intelligence.
Синхронизация использует CKSyncEngine через приватную базу данных iCloud пользователя за границей SyncEngine с отображением статуса синхронизации. Интеграции включают CLI gancho, локальный MCP-сервер (по выбору) с истекающими и отзываемыми разрешениями для каждого клиента, явным контекстом доски/времени, независимыми правами чтения/записи и логом доступа только к метаданным, а также команду «Save Selection» для VS Code. Монетизация реализована через StoreKit 2 (покупка, восстановление и права доступа) с контекстным пейволлом и лимитами бесплатного уровня; сборка с прямой загрузкой позволяет покупать, активировать, перепроверять и деактивировать Pro-лицензию через Lemon Squeezy без встраивания секрета платежей. Pro-версия разблокирует зашифрованную синхронизацию iCloud. Опциональная анонимная диагностика отключена до явного согласия, а Центр конфиденциальности хранит общие итоги активности по приложениям на устройстве в течение 13 месяцев без синхронизации или экспорта.
С технической стороны проект использует XcodeGen, Swift 6 strict concurrency, двуязычный (английский/испанский) String Catalog, поддержку специальных возможностей и единый пакет SwiftPM (GanchoKit), содержащий восемь библиотечных продуктов и CLI. CI охватывает сборку, тестирование и линтинг, контролирует минимальный порог покрытия исходного кода для продакшена, автоматизацию StoreKit и масштабируемую производительность. Для сборки требуются macOS 15.4+, Xcode 26+ и XcodeGen, с документированными make-целями для тестов, установки на iOS-устройства, упаковки, QA-релиза и проверки сайта. В README указаны GRDB.swift, SQLCipher, KeyboardShortcuts, Sauce и TelemetryDeck как используемые open-source решения. Лицензия: MIT, © 2026 Johnny Young.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.