Sobre o projeto

Gancho — "gancho" em espanhol — é uma biblioteca de snippets curados e histórico de área de transferência local-first com licença MIT para a família de plataformas Apple. O README o descreve como v0.8.3 pública em desenvolvimento ativo rumo à versão 1.0, com o macOS como a principal superfície de criação, apps para iPhone/iPad com suporte a extensões, uma build para visionOS compatível com iPad planejada e watchOS limitado a pins e itens recentes. Android, Windows e Linux são listados apenas para análise futura, sem compromisso de implementação. A captura e a privacidade no macOS são gerenciadas por um monitor de área de transferência usando polling adaptativo de baixo consumo que pausa no bloqueio de tela e no modo privado, suprime suas próprias gravações, sinaliza itens do Universal Clipboard e mantém payloads ricos, como texto, RTF, HTML, imagens e URLs de arquivos. Tipos de área de transferência marcados como ConcealedType, TransientType ou AutoGeneratedType vetam a captura antes que qualquer conteúdo seja lido, e estão incluídos uma denylist de gerenciadores de senhas e bancos pré-carregada, além de uma ação de "ignorar próxima cópia". Um detector no dispositivo procura por números de cartão (Luhn), chaves AWS/Stripe/GitHub/Slack, chaves PEM e senhas prováveis, exibindo prévias mascaradas com expiração curta. No iOS, iPadOS e visionOS, a captura é apenas intencional — sem polling de área de transferência em segundo plano. O projeto afirma que o conteúdo da área de transferência nunca é gravado em logs, telemetria, relatórios de erro, analytics ou pacotes de suporte. O armazenamento utiliza GRDB/SQLite com blobs de disco endereçados por conteúdo, miniaturas lazy, listas de apenas metadados paginadas, migrações versionadas, deduplicação ciente do dispositivo e exportação JSON/CSV. A pesquisa é baseada em FTS5 com modos exato, fuzzy e regex, além de filtros por tipo, app de origem e data, suportada por um harness de performance de 100k itens. Um índice de embedding no dispositivo de 512 dimensões alimenta o recurso "Ask your clipboard" e sugestões automáticas de boards, enquanto a pesquisa de histórico principal permanece FTS5. Um motor de retenção aplica expiração global e por tipo, auto-expiração de dados sensíveis e purga em segundo plano, com pins isentos. O app para macOS é um agente de barra de menu com um painel de histórico flutuante redimensionável (Shift-Cmd-V), pesquisa por digitação prioritária via teclado, filtros compostos, títulos editáveis, prévias por tipo, uma prévia de conteúdo completo somente leitura e colagem de retorno através de um Cmd-V sintético. Pins, boards de multi-membro e uma Library unificada para boards e snippets estão implementados, juntamente com adição em lote ao stack, adição ao board e exclusão com desfazer, seleção múltipla, arrasto de clipes de arquivos, doação curada ao Spotlight com redação estrutural e uma importação guiada de histórico Maccy/CSV com prévia somente leitura, validação, deduplicação atômica e cancelamento. O Raycast não é explicitamente uma fonte de importação, pois sua API de área de transferência documentada expõe apenas seis entradas recentes e seu backup criptografado não possui esquema de decodificação de terceiros documentado. O app para iPhone e iPad oferece apenas captura intencional através de um botão Save, UIPasteControl, uma Share Extension e App Intents/Shortcuts, além de uma extensão de teclado com histórico, widgets, split view no iPad e filtragem por app de origem. Sua pilha de inteligência no dispositivo funciona com zero rede: um classificador tier-0 determinístico que reconhece 17 tipos de conteúdo em menos de 5 ms, títulos via Apple Intelligence, OCR de capturas de tela, indexação semântica, Dev Actions (decodificação JWT, formatação JSON, Base64, parsing de URL, conversão de cores, formatos UUID) também expostos como App Intents, Smart Paste para reescrita/tradução/redação de PII, Q&A fundamentado sobre o histórico e sugestões automáticas de boards. Cada estágio possui seu próprio interruptor na tela de Intelligence. A sincronização utiliza CKSyncEngine sobre o banco de dados iCloud privado do usuário atrás de um limite de SyncEngine, com status de sincronização visível. As integrações incluem uma CLI do gancho, um servidor MCP local opt-in com concessões por cliente expiráveis e revogáveis, contexto explícito de board/tempo, permissões de leitura/escrita independentes e um log de acesso apenas de metadados, além de um comando "Save Selection" no VS Code. A monetização utiliza a infraestrutura de compra, restauração e entitlement do StoreKit 2 com um paywall contextual e limites de nível gratuito; a build de download direto pode comprar, ativar, revalidar e desativar uma licença Pro através do Lemon Squeezy sem embutir um segredo de pagamentos, e o Pro desbloqueia a sincronização criptografada do iCloud. Diagnósticos anônimos opcionais permanecem desativados até o consentimento explícito, e o recibo de atividade do Privacy Center mantém totais por app limitados no dispositivo por 13 meses rolantes sem sincronizar ou exportar. Em termos de engenharia, o projeto usa XcodeGen, Swift 6 com concorrência estrita, um gate de String Catalog bilíngue Inglês/Espanhol, suporte a acessibilidade e um único pacote SwiftPM (GanchoKit) contendo oito produtos de biblioteca mais uma CLI. O CI cobre build, teste e lint, um piso de cobertura de código de produção obrigatório, automação serializada do StoreKit e performance de escala. A compilação requer macOS 15.4+, Xcode 26+ e XcodeGen, com targets de make documentados para testes, instalações em dispositivos iOS, empacotamento, QA de release e verificações de site. O README credita GRDB.swift, SQLCipher, KeyboardShortcuts, Sauce e TelemetryDeck como trabalhos de código aberto subjacentes. Licença: MIT, © 2026 Johnny Young.