Windrecorder: una app open source para Windows que permite rebobinar y buscar todo lo que aparece en pantalla
(tonoko.notion.site)- Windrecorder es una app open source que guarda localmente el historial de pantalla de Windows para poder rebobinarlo y buscarlo más tarde; es una herramienta de memoria personal cercana a una alternativa a Rewind/Copilot Recall
- La pantalla se guarda en archivos fragmentados de 15 minutos mediante ffmpeg o capturas de pantalla a intervalos continuos, y se indexa con la API local de OCR de Windows y embeddings de imagen
- Desde una Web UI local se pueden encontrar pantallas pasadas por título de ventana, palabras clave de texto o descripción de imagen, y también es posible excluir de la grabación programas específicos o áreas de la pantalla
- Todo el procesamiento de datos ocurre únicamente en la computadora del usuario, sin nube; al estar basada en Python, su estructura es fácil de revisar y modificar, aunque el rendimiento puede ser lento
- Actualmente, el repositorio usa una estructura local sin cifrar; las funciones de LLM son limitadas, y el alcance práctico de uso son el resumen diario de títulos y la búsqueda
Grabación de pantalla y búsqueda con rebobinado
- Windrecorder es una herramienta de memoria de pantalla personal para volver a encontrar información que el usuario vio pero que luego resulta difícil ubicar, como páginas web, videos o mensajes de chat
- Sus principales inspiraciones son la app para Mac Rewind y “The Entire History of You”, el episodio S1E3 de Black Mirror
- El método de grabación de pantalla es simple
- Usa ffmpeg o capturas de pantalla a intervalos continuos
- Guarda la pantalla en archivos fragmentados de 15 minutos
- Indexa el historial con la API local de OCR de Windows y embeddings de imagen
- El usuario puede especificar programas o zonas de la pantalla que no desea registrar
- En la Web UI local, se pueden rebobinar y buscar pantallas pasadas usando las siguientes pistas
- Título de la ventana
- Palabras clave de texto
- Descripción de imagen
- Como funciones adicionales, incluye tiempo de uso de pantalla diario y periódico, resúmenes circadianos y generación de lightboxes mensuales
Diseño local-first y limitaciones actuales
- Todo el procesamiento se realiza únicamente en la computadora del usuario y no presupone almacenamiento en la nube ni suscripción
- Como está construido conectando varias funciones en Python, su funcionamiento interno es transparente y es fácil que el usuario lo modifique por su cuenta
- A cambio, el rendimiento puede volverse lento
- El desarrollador no es un desarrollador profesional; creó la herramienta por interés personal y para su propio uso
- Después de usarla durante un tiempo, considera que ya es lo suficientemente madura y sólida
- Se agradecen issues, debates y contribuciones
- Las desventajas actuales también son claras
- El almacén de datos es transparente y no está cifrado
- El usuario puede aprovechar libremente los datos locales estructurados, pero también debe tener cuidado con su protección
- Las funciones de LLM no están incorporadas de forma amplia
- Actualmente, las funciones de LLM se limitan principalmente a decidir llamadas a la API según la intención del usuario y a ajustar resultados de búsqueda
- Todavía no llega a la etapa de entender, analizar y recordar directamente todos los datos, ni de actuar según la intención del usuario
- El resumen diario de títulos y la función de búsqueda disponibles actualmente son el alcance realizable en Windrecorder
1 comentarios
Opiniones en Hacker News
Hace casi 20 años ya habían creado algo parecido, e incluso incluía la función de rebobinar hasta un momento específico del pasado y reanudar la ejecución desde ahí.
http://www.cs.columbia.edu/~orenl/papers/sosp07-dejaview.pdf
DejaView era una grabadora personal de computadoras virtuales que registraba toda la experiencia de uso del escritorio y permitía reproducirla, navegarla, buscarla y restaurarla; almacenaba e indexaba en conjunto la salida de pantalla, puntos de control del estado de aplicaciones/sistema de archivos y texto visible con contexto.
Combinaba virtualización de pantalla/sistema operativo/sistema de archivos sin modificar las aplicaciones, el sistema de ventanas ni el kernel del sistema operativo, y sus resultados mostraban que era posible tener grabación continua y búsqueda/reproducción interactiva en apps de escritorio reales sin degradación perceptible de rendimiento para el usuario.
También hay un proyecto open source parecido para macOS.
https://rem.ing
https://github.com/jasonjmcghee/rem
El desarrollador lo publicó en HN hace 3 meses, y hubo una discusión bastante buena.
https://news.ycombinator.com/item?id=38787892
Tiene licencia MIT, y también empecé una versión multiplataforma hecha en Rust, https://github.com/jasonjmcghee/xrem, pero todavía está en una etapa temprana y hace falta más ayuda.
Me gustaría contribuir, pero no sé nada de Swift; lo que hice eran puros scripts bash corriendo con launchd.
Sería genial construir algo así: unas Meta Smart Glasses que tomen una foto cada 2 segundos, envíen las imágenes a un servidor en la nube, ejecuten OCR y detección/etiquetado de objetos, y luego ofrezcan una app para buscar en el pasado o conversar con él.
Así podrías preguntarle a un LLM cosas como “¿dónde dejé la cartera?”, “¿me devolvieron la tarjeta de crédito después de pagar ayer en el restaurante?” o “¿qué decía la camiseta nueva de mi hija hoy?”.
Si además tuviera grabación de audio y transcripción, podrías preguntar por la fecha límite acordada en una reunión, el número de teléfono de alguien que conociste en el parque o el nombre del inversionista que viste hoy; y sería todavía mejor si pudiera acceder a las llamadas telefónicas para transcribir e indexar lo que dijo la otra persona.
Me recuerda al episodio “The Entire History of You” de Black Mirror: https://en.wikipedia.org/wiki/The_Entire_History_of_You
Ya hice la preventa.
Me pregunto si alguien ha hecho algo así usando la API de accesibilidad en lugar de OCR, o junto con OCR.
Se puede obtener el texto directamente desde la API de accesibilidad, así que hacer OCR de todo parece un desperdicio.
También podría ser una buena forma de conectar LLMs con la UI, y una manera de que estas herramientas recopilen datos de entrenamiento.
El problema de que Microsoft Office renderizara sus propios widgets se resolvió leyendo con OCR el texto de los widgets y botones para identificar sus etiquetas.
Este enfoque termina siendo necesario con mucha más frecuencia de lo que uno pensaría. Los desarrolladores suelen decepcionar y no usar las API proporcionadas.
Algunas apps omiten datos clave o lo implementan mal. Pensé que la accesibilidad sería fácil, pero en la práctica muchas veces OCR resultó más sencillo.
Si este enfoque de verdad funciona, supuse que Microsoft o Apple lo integrarían de forma nativa en el sistema operativo como parte de un Copilot que recuerda todo y ayuda con el conocimiento del usuario.
Mi historial de pantalla no era tan avanzado como la app mencionada aquí, y yo tampoco lo usaba personalmente.
En Notion aparece una pantalla de bloqueo con “JavaScript must be enabled in order to use Notion” y “Please enable JavaScript to continue”, pero si usas NoScript, por esta forma de bloqueo en realidad no puedes habilitar JavaScript para el sitio.
Ojalá no redirigieran a una página estática. En esa página no hay JavaScript que puedas permitir caso por caso, y la redirección ocurre tan rápido que no te da oportunidad de habilitar JavaScript en la página principal.
Permitir solo notion.so tampoco permite saltarse ese bloqueo.
También me sorprende que HTML permita redirecciones sin JavaScript.
En Windows también existe TimeSnapper. No es open source, pero el desarrollador aparece de vez en cuando en Hacker News
https://timesnapper.com/
https://www.manictime.com/
Recuerdo varios proyectos de este tipo. El primero que vi fue Savant Recall en 2014; no fue aceptado en YC y terminó liberándose como open source
Después Ritter, cofundador de Napster, lo tomó, le cambió el nombre a Atlas Recall, le agregó una nueva UI y recibió una inversión de 20 millones de dólares
Pero un año después cerró de repente, y en LinkedIn figura como “adquirida por Xinova”. Otro del que oí hablar fue Apse, de 2019
Repositorio que posiblemente contiene el código fuente original de Savant: https://bitbucket.org/theluxury/savant/src/master/
Videos que muestran cómo funcionaba Atlas Recall después: https://www.youtube.com/@atlasinformatics3316/videos
https://www.geekwire.com/2021/invention-network-company-xino...
Se ve muy parecido a https://apse.io/. Ese también usa OCR para convertir todo lo visto en pantalla en un índice buscable
Me gusta que windrecorder sea open source
Según el README de GitHub, los videos ocupan alrededor de 100~200 GB al año, así que no está tan mal
Si tienes una idea del tipo “¿por qué no existe una app así?”, implementarla bien por tu cuenta de esta forma inspira a todos
Es bueno no verse obligado a usar almacenamiento en la nube, y lo digo como alguien que probablemente pronto dejará de ser cliente de pago