Sobre o projeto

## O que é Snoop é uma ferramenta open source de registro de atividade de teclado e mouse para desktop, posicionada como local-first: todos os dados são gravados em um único arquivo SQLite na máquina local, e o README afirma explicitamente que nada é enviado pela rede. Compatível com Windows 10/11 e macOS 10.15+, pertence à marca Feedra e tem como mascote um gato. Seu objetivo é responder a algumas perguntas do dia a dia: quais aplicativos consomem mais tempo, em quais horários do dia há mais atividade, como varia a curva de intensidade de teclado e mouse e o quanto a rotina de uma semana difere da percepção subjetiva. ## Limites de privacidade (declarados no README) A ferramenta registra apenas frequência e intensidade de teclado e mouse, sem registrar: - a sequência de valores específicos das teclas pressionadas (portanto senhas, conteúdo de conversas e termos de busca não são capturados) - área de transferência, capturas de tela, microfone, câmera - qualquer conteúdo que exija envio pela rede A granularidade no banco de dados é: determinado aplicativo, em determinado intervalo de 5 segundos, recebeu N pressionamentos de tecla e o mouse se moveu X pixels. O mapa de calor do teclado baseia-se na contagem, sem sequência, de quantas vezes cada posição de tecla foi pressionada; segundo o README, não é possível reconstruir o conteúdo digitado. ## Principais módulos de funcionalidades - Visão geral / Instantâneo do dia: cartão de status do aplicativo atual e da faixa de intensidade, resumo numérico do dia, ranking de tempo de uso por aplicativo e barra de calor de intensidade por faixa de 24 horas. - Linha do tempo: gráfico de Gantt em faixas, com uma linha por aplicativo, eixo horizontal representando o tempo e blocos coloridos com cores fixas por aplicativo; suporta zoom com a roda do mouse, arrastar para deslocar e troca de data; intervalos vazios superiores a 2 horas são comprimidos em blocos cinza. - Mapa de calor do teclado: renderizado conforme o layout real de teclado, com diversos layouts internos alternáveis, como 40/60/68/87/98/104; permite filtragem por aplicativo e por período; os blocos de teclado, mouse e teclas mais usadas são interligados; a coloração usa faixas por quantis, evitando que teclas muito frequentes (como Enter) se sobreponham às demais. - Insights / Relatório entre semanas: gráfico de barras de tendência semanal, ranking de aplicativos com variação em relação ao período anterior e grade de calor de rotina 7x24. - Outros: ícone permanente na bandeja, inicialização automática com o sistema (desativável), temas claro e escuro, lista de aplicativos ignorados, chave de comentários do gato e ajuste do nível de sarcasmo, exportação e limpeza dos dados com um clique. ## Instalação e execução Baixe o pacote de instalação da plataforma correspondente na página de Releases: - Windows: Snoop_x.y.z_x64-setup.exe; se o SmartScreen bloquear, escolha Mais informações, Executar mesmo assim. - macOS Apple Silicon: Snoop_x.y.z_aarch64.dmg; macOS Intel: Snoop_x.y.z_x64.dmg. - No macOS, a primeira execução exige autorização em Ajustes do Sistema, Privacidade e Segurança, Acessibilidade, usada para a escuta global de teclado e mouse; se o Gatekeeper bloquear na primeira vez, abra com o botão direito. A atualização automática já é integrada: no Windows, o download ocorre em segundo plano e o menu da bandeja exibe a opção de reiniciar para instalar; no macOS, é exibido um aviso para abrir a página de download e sobrescrever manualmente. ## Implementação e desempenho A stack técnica é Tauri 2 + React 19 + TypeScript + Vite (frontend), com Rust no backend, usando rusqlite para armazenamento, rdev/Raw Input para coleta, e código específico de plataforma isolado por #[cfg]. A interface é feita com componentes próprios e variáveis CSS semânticas, com dois temas, claro e escuro. O README afirma que a escuta global usa canais nativos do sistema operacional (Raw Input no Windows e canal de eventos de baixo nível no macOS); os callbacks de eventos apenas contam em memória e gravam em lote no banco a cada 5 segundos, com uso de CPU diário inferior a 1%. A versão para Windows deliberadamente não usa low-level hook, para evitar conflito com mecanismos antitrapaça como EAC e Vanguard; o Snoop não injeta DLLs, não lê a memória de outros processos e não envia entradas simuladas. Local de armazenamento dos dados: no Windows, %APPDATA%\org.feedra.snoop\; no macOS, ~/Library/Application Support/org.feedra.snoop/. ## Compilar a partir do código-fonte Requer Node 22+, Rust stable e o conjunto de ferramentas de compilação da plataforma correspondente. O README alerta que o Vite 7 exige Node 20.19+/22.12+; usar Node 18 provoca o erro crypto.hash is not a function, impedindo a inicialização do servidor de desenvolvimento. npm ci npm run tauri dev (modo de desenvolvimento) npm run tauri build (gerar o pacote de instalação) A compilação no Windows requer o Visual Studio Build Tools (carga de trabalho de desenvolvimento para desktop com C++); no macOS, requer o Xcode Command Line Tools. O fluxo de empacotamento e publicação está em docs/打包与发布.md no repositório. ## Limitações conhecidas e licença O Linux ainda não é suportado, e o README explica que não é o alvo atual de lançamento. Não há suporte a sincronização com celular ou nuvem, o que o autor descreve como uma decisão de projeto. A marca e os direitos autorais pertencem à Feedra (© 2026). O código é open source, mas o README pede que a marca Snoop e o mascote não sejam usados em produtos do mesmo tipo. Os termos formais de licença ainda não foram definidos e o arquivo LICENSE está pendente.