I think I was one of the only people who saw Microsoft’s announced Recall feature and thought it was a good idea. So good of an idea in fact that I had already built something similar, stealing the idea from rewind.ai, which was no doubt the inspiration for Microsoft’s product.

The version I created was ScreenDiary. It fulfilled the basic idea but I found it was too resource intensive to regularly have an instance of tesseract doing OCR on everything on screen. The implementation was also overly complex as I was building it specifically for my KDE layout on Wayland, which has now completely changed in appearance and functionality. I am now using Karousel, a scrolling WM implemented as a KWin Script.

Some number of months later I decided to revisit the idea. I had again found myself in a situation where I had a vague memory of a thing I had read that I wanted to find, and the keywords I was able to remember were not in the title or URL, so history search was useless.

#Redux

I realized at the core of it what I really want is to be able to have full recall on my browser history, as that’s where I consume 99% of the content I interact with daily. This lead me to create Browser Recall.

The idea is pretty simple, a browser extension sends the URL of the page you’re looking at to a backend server which scrapes the page into markdown and stores it all in a SQLite database. Additionally it imports your browser history and backfills those items into the database with a crawler on a scheduled task.

#Re-Redux

The original implementation was a vibe coded hot mess that included a semi-functional UI and a poorly implemented full-text search.

I’ve since blown up the entire project and significantly simplified the implementation. The UI is gone for now but I’ll probably revisit it soon.

#Next Steps

I’ll eventually get a UI around this and a better implementation of FTS that actually works properly, but for now I’m actually focused on a completely different use case for this data.

I am kicking around thoughts on how to implement something like a Spotify Wrapped, but for the content I view in a browser. So at the end of each week I’ll get a nice summary of everything I’ve consumed that week in the browser.

#Security?

I’m sure someone is going to comment something about how this is a security risk. If you’re at a level of access where you can read an arbitrary file (the sqlite database) from my disk, I’m already cooked. At that point you could have just as easily run a tool that does the same exfiltration of my browser history, and so much more…