Windrecorder - app open source para Windows que permite voltar no tempo e pesquisar tudo o que apareceu na tela
(tonoko.notion.site)- Windrecorder é um app open source que armazena localmente gravações da tela do Windows para depois permitir voltar no tempo e pesquisar, funcionando como uma ferramenta pessoal de memória parecida com uma alternativa ao Rewind/Copilot Recall
- A tela é salva em arquivos fragmentados de 15 minutos usando ffmpeg ou capturas de tela em intervalos contínuos, e indexada com a API local de OCR do Windows e embeddings de imagem
- Na Web UI local, é possível encontrar telas passadas por título da janela, palavras-chave de texto e descrições de imagem, e também excluir da gravação programas específicos ou áreas da tela
- O processamento dos dados acontece apenas no computador do usuário, sem nuvem, e como é baseado em Python, é fácil inspecionar e modificar a estrutura, embora o desempenho possa ser lento
- Atualmente, o repositório usa uma estrutura local não criptografada, os recursos de LLM são limitados, e o uso prático se concentra em visões gerais diárias por título e busca
Gravação de tela e busca com retrocesso
- Windrecorder é uma ferramenta pessoal de memória da tela para reencontrar informações como páginas da web, vídeos e mensagens de chat que o usuário viu, mas depois tem dificuldade de localizar
- As principais inspirações foram o app para Mac Rewind e Black Mirror S1E3 “The Entire History of You”
- O método de gravação de tela é simples
- Usa ffmpeg ou capturas de tela em intervalos contínuos
- Salva a tela em arquivos fragmentados de 15 minutos
- Indexa os registros com a API local de OCR do Windows e embeddings de imagem
- O usuário pode definir programas ou áreas da tela que não devem ser gravados
- Na Web UI local, é possível voltar no tempo e pesquisar telas passadas usando as seguintes pistas
- título da janela
- palavras-chave de texto
- descrições de imagem
- Como recursos adicionais, inclui tempo de uso da tela por dia e por período, resumo circadiano e geração de lightbox mensal
Design local-first e limitações atuais
- Todo o processamento acontece apenas no computador do usuário e não parte do pressuposto de armazenamento em nuvem ou assinatura
- Como a estrutura foi montada em Python conectando vários recursos, o funcionamento interno é transparente e fácil de modificar pelo próprio usuário
- Em compensação, o desempenho pode ser lento
- O desenvolvedor não é um programador profissional e criou a ferramenta por interesse pessoal e para uso próprio
- Depois de usá-la por um tempo, concluiu que ela está madura e robusta o suficiente
- Issues, discussões e contribuições são bem-vindas
- As desvantagens atuais também são claras
- O armazenamento de dados é transparente e não criptografado
- O usuário pode aproveitar livremente os dados locais estruturados, mas também precisa ter cuidado com a proteção deles
- Os recursos de LLM não foram muito incorporados
- Atualmente, eles se limitam principalmente a decidir chamadas de API de acordo com a intenção do usuário e ajustar resultados de busca
- Ainda não chegou ao estágio de entender, analisar e recordar diretamente todos os dados, agindo de acordo com a intenção do usuário
- No momento, a visão geral diária por título e os recursos de busca são o alcance que o Windrecorder consegue oferecer
1 comentários
Opiniões no Hacker News
Quase 20 anos atrás, já tinham criado algo parecido, incluindo até a capacidade de voltar a um ponto específico no passado e retomar a execução dali
http://www.cs.columbia.edu/~orenl/papers/sosp07-dejaview.pdf
O DejaView era um gravador pessoal de computador virtual que registrava toda a experiência de uso do desktop, permitindo reprodução, navegação, busca e restauração; ele salvava e indexava, juntos, a saída da tela, checkpoints do estado de aplicações/sistema de arquivos e textos exibidos com contexto
Ele combinava virtualização de display/sistema operacional/sistema de arquivos sem modificar aplicações, sistema de janelas ou kernel do sistema operacional, e os resultados mostravam que era possível fazer gravação contínua e busca/reprodução interativa em apps de desktop reais sem degradação perceptível de desempenho para o usuário
Também existe um projeto open source parecido para macOS
https://rem.ing
https://github.com/jasonjmcghee/rem
O desenvolvedor postou no HN há 3 meses, e houve uma discussão bem interessante
https://news.ycombinator.com/item?id=38787892
Ele tem licença MIT, e também comecei uma versão multiplataforma em Rust, https://github.com/jasonjmcghee/xrem, mas ainda está em estágio inicial e precisa de mais ajuda
Gostaria de contribuir, mas não sei nada de Swift; o que eu fiz era todo em scripts bash rodando via launchd
Seria legal criar algo assim: os Meta Smart Glasses tirariam uma foto a cada 2 segundos, enviariam as imagens para um servidor na nuvem, rodariam OCR e detecção/rotulagem de objetos, e ofereceriam um app para pesquisar ou conversar com o passado
Aí daria para perguntar a um LLM coisas como “onde deixei minha carteira?”, “depois de pagar no restaurante ontem, recebi meu cartão de crédito de volta?” ou “o que estava escrito na camiseta nova da minha filha hoje?”
Se também houver gravação de áudio e transcrição, daria para perguntar sobre o prazo definido em uma reunião, o número de telefone de uma pessoa que você conheceu no parque ou o nome do investidor que encontrou hoje; e seria ainda melhor se isso tivesse acesso até a ligações telefônicas para transcrever e indexar o que a outra pessoa disse
Isso lembra o episódio “The Entire History of You”, de Black Mirror: https://en.wikipedia.org/wiki/The_Entire_History_of_You
Já fiz a pré-compra
Fico curioso se alguém já criou algo assim usando APIs de acessibilidade em vez de OCR, ou junto com OCR
Dá para obter texto diretamente pelas APIs de acessibilidade, então fazer OCR de tudo parece desperdício
Também poderia ser uma boa forma de conectar LLMs à UI, e ferramentas assim poderiam ser um modo de coletar dados de treinamento
O problema do Microsoft Office renderizar seus próprios widgets foi resolvido lendo por OCR o texto de widgets e botões para descobrir seus rótulos
Esse tipo de abordagem acaba sendo necessário muito mais frequentemente do que se imagina. Desenvolvedores muitas vezes decepcionam e não usam as APIs fornecidas
Alguns apps omitem dados essenciais ou implementam incorretamente. Achei que acessibilidade seria fácil, mas, na prática, muitas vezes OCR era mais fácil
Achei que, se essa abordagem fosse realmente válida, Microsoft ou Apple a embutiriam no sistema operacional como parte de um Copilot que lembra de tudo e ajuda com o conhecimento do usuário
O histórico de tela que criei não era tão avançado quanto o app mencionado aqui, e eu mesmo nem cheguei a usá-lo
No Notion aparece uma tela de bloqueio com “JavaScript must be enabled in order to use Notion” e “Please enable JavaScript to continue”; com NoScript, por causa desse método de bloqueio, não dá para ativar JavaScript no site de fato
Eu preferiria que não redirecionassem para uma página estática. Nessa página não há JavaScript para permitir caso a caso, e o redirecionamento é rápido demais para dar tempo de ativar JavaScript na página principal
Mesmo permitindo apenas notion.so em si, não dá para contornar esse bloqueio
Também é surpreendente que HTML permita redirecionamento sem JavaScript
No Windows também existe o TimeSnapper. Não é open source, mas o desenvolvedor aparece às vezes no Hacker News
https://timesnapper.com/
https://www.manictime.com/
Lembro de alguns projetos desse tipo. O primeiro que vi foi o Savant Recall, em 2014; ele não foi selecionado pela YC e acabou sendo liberado como open source
Depois, Ritter, cofundador do Napster, pegou o projeto, renomeou para Atlas Recall, colocou uma nova UI e recebeu US$ 20 milhões em investimento
Mas, um ano depois, foi encerrado de repente, e no LinkedIn consta “adquirido pela Xinova”. Outro de que ouvi falar foi o Apse, em 2019
Repositório que possivelmente contém o código original do Savant: https://bitbucket.org/theluxury/savant/src/master/
Vídeos mostrando como o Atlas Recall funcionava depois: https://www.youtube.com/@atlasinformatics3316/videos
https://www.geekwire.com/2021/invention-network-company-xino...
Parece muito semelhante a https://apse.io/. Esse também usa OCR para transformar tudo o que você viu na tela em um índice pesquisável
Gosto do fato de o windrecorder ser open source
Segundo o README do GitHub, os vídeos ocupam cerca de 100 a 200 GB por ano, então não é tão ruim
Se você tem uma ideia do tipo “por que não existe um app assim?”, implementá-la bem por conta própria, desse jeito, inspira todo mundo
É bom não ser obrigado a usar armazenamento na nuvem; digo isso como alguém que provavelmente em breve deixará de ser cliente pagante