Sobre o projeto
GridSnap é um utilitário de desktop de código aberto construído com Tauri v2, React 18, TypeScript e Rust. Ele apresenta dados sensíveis — comandos SSH, credenciais, chaves de API, strings de conexão e trechos de código — em uma grade virtualizada semelhante a uma planilha que pode ser invocada com uma hotkey global (padrão Ctrl+Shift+Space).
Motor de grade: grade virtualizada 1000×26; navegação por teclado (teclas de seta, Tab, Enter, Escape); edição por digitação; seleção múltipla de células por clique-arrasto ou Shift+Seta; cópia via botão de hover ou Ctrl+C (formato TSV para intervalos); Ctrl+V cola dados TSV na grade; redimensionamento de colunas e linhas; pesquisa em todas as células com destaque instantâneo; salvamento manual com Ctrl+S; e um painel de ajuda integrado com atalhos e dicas.
Folhas: múltiplas folhas com abas coloridas; adicionar, remover e renomear com confirmação de exclusão; arrastar para reordenar; troca Ctrl+Tab e Ctrl+Shift+Tab; salto direto Ctrl+1-9; paleta de troca rápida Ctrl+K; ações de clique com o botão direito na aba. As folhas suportam mascaramento (toda a folha mostra ●●●●), mascaramento/desmascaramento por célula e senhas opcionais por folha. Folhas protegidas por senha são bloqueadas a cada troca de aba, a pesquisa é desativada em folhas bloqueadas e a exclusão de uma folha protegida requer confirmação de senha. A proteção contra força bruta impõe um cooldown de dois minutos após 10 tentativas erradas, persistido entre reinicializações.
Segurança: sem senha por padrão, com um vault JSON em texto simples até que uma senha seja definida. Uma senha mestra opcional criptografa o vault. Senhas por folha usam AES-256-GCM com derivação de chave Argon2id (64MB de memória, 3 iterações, 4 paralelismo) e armazenam um token de verificação em vez de hashes em texto simples. O formato de armazenamento é salt (16B) | nonce (12B) | ciphertext | tag (16B). As chaves são zeradas após o uso via zeroize do Rust. O aplicativo não faz conexões de rede de saída e não inclui telemetria ou componente de nuvem.
Integração com o desktop: janela sem borda sempre no topo com barra de título personalizada; bandeja do sistema com mostrar/ocultar; hotkey global configurável; o botão de fechar minimiza para a bandeja; lançamento opcional na inicialização do sistema; tamanho do pacote relatado em torno de 8,5MB e RAM em torno de 30MB.
Tematização: 11 temas integrados selecionáveis em Configurações — Carbon (padrão), Midnight, Ocean, Aurora, Deep Teal, Light, Velvet, Nordic, Rose, Terminal e Slate. Os temas usam propriedades personalizadas do CSS e podem ser estendidos adicionando uma entrada em src/theme/themes.ts.
Construção a partir do código-fonte: pré-requisitos Node.js 18+ e Rust 1.70+. Clone o repositório, então no diretório gridsnap execute npm install, npm run tauri dev para desenvolvimento ou npm run tauri build para produção.
Uso: a primeira execução abre diretamente; navegue clicando ou usando as teclas de seta; edite com duplo clique ou Enter; copie com o botão de hover ou Ctrl+C; cole dados TSV com Ctrl+V; salve com Ctrl+S; crie folhas via a aba +; troque de folhas por clique na aba, atalhos de teclado ou pesquisa Ctrl+K; reordene arrastando as abas; mascare folhas ou células via clique com o botão direito; defina senhas de folha ou mestra conforme necessário; oculte com Ctrl+Shift+Space ou o botão de fechar; saia do menu do ícone da bandeja.
Pilha de tecnologia: shell Tauri v2 usando o webview nativo do SO; frontend React 18 + TypeScript; CSS Modules com propriedades personalizadas; renderizador de grade virtualizado personalizado (soma de prefixo mais busca binária); estado Zustand; build Vite 6; criptografia AES-256-GCM + Argon2id em Rust; vault JSON criptografado no sistema de arquivos local.
O projeto é licenciado sob MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.