11 pontos por GN⁺ 2024-04-22 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-04-22
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

    • Fico curioso se eles realmente construíram isso ou se só escreveram o artigo. Também queria saber onde dá para baixar
    • Não sei se a URL está certa. Ao abrir, aparece que o arquivo não foi encontrado
  • 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

    • Sou a pessoa que criou o rem. Seria ótimo se vocês participassem do desenvolvimento
      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
    • Fico curioso se alguém já usou isso por bastante tempo. Quero saber se realmente ajuda
    • Procurei algo assim para Mac por um bom tempo, acabei desistindo e criei eu mesmo um script que tira screenshots a cada 10 segundos e outro que junta tudo em vídeo com ffmpeg
      Gostaria de contribuir, mas não sei nada de Swift; o que eu fiz era todo em scripts bash rodando via launchd
    • Também existe a http://rewind.ai, uma empresa que faz a mesma coisa
  • 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

    • Em geral, episódios de Black Mirror não são feitos como visões de futuro que você deveria querer imitar
    • Um restaurante nunca deveria levar seu cartão de crédito para fora do seu campo de visão. Na verdade, o funcionário nem precisaria tocar no cartão; o certo seria você mesmo passar o cartão no terminal do caixa ao sair
    • O Frame, da Brilliant Labs, está chegando perto de ser um hardware capaz de fornecer realisticamente esse tipo de dado de uma forma amigável ao usuário e bem discreta
      Já fiz a pré-compra
    • É exatamente isso que o tão criticado Humane AI Pin faz
  • 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 Dragon NaturallySpeaking oferece suporte a comandos de voz como “clicar em OK” e de fato reage de acordo
      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
    • Ao criar um gravador de tela parecido com Loom com busca na tela, usei um pouco dos dois, e, para torná-lo independente do sistema operacional, as diferenças entre as APIs de acessibilidade do Mac e do Windows são grandes; mesmo no Windows, a implementação varia muito de app para app, então é difícil determinar o que o usuário realmente “viu”
      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
    • Criei um MVP de gravador de fluxo de trabalho com histórico de tela
      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
    • Seria bom poder salvar junto, como metadados, as informações do app em primeiro plano
  • 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

    • Isso é muito ruim. Pegaram algo que poderia funcionar perfeitamente e usaram do pior jeito possível
      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/

    • Para rastreamento de tempo baseado em capturas de tela e tagging avançado com base em títulos de janelas e, às vezes, documentos abertos, também existe o ManicTime. Só que parece que não tem OCR
      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

  • 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

    • Fico curioso para saber isso considerando uma média de quantas horas por dia. Também fico curioso para saber se ele apaga cenas sem texto, como em filmes ou jogos
  • 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

    • A maneira mais fácil de encontrar um app que faz X é criar um novo e publicar no HN para ver os comentários
    • O rewind.ai também é um exemplo disso; vendo que recentemente eles moveram esses dados para armazenamento somente na nuvem e mudaram o nome para limitless.ai, é bom ver surgir um open source assim
      É bom não ser obrigado a usar armazenamento na nuvem; digo isso como alguém que provavelmente em breve deixará de ser cliente pagante