8 ms·
Ask HN: Full-text browser history search forever?
My biggest force-multiplier is my fish shell history, going on 7 years of command line history.
I want to do the same thing for my web browser. At first I looked at Memex but they disabled browser history search. You have to save or annotate an article first before it becomes searchable. My brain, naturally, does not know ahead of time what could be useful in the future.
Is there any product out there that creates a fully searchable full-text history forever with little fuss?
I'm using Firefox on Linux but could switch to another browser (but not OS) if needed.
- encima 5y agohistre.com does this
- emptysongglass 5y agoPlease correct me if I'm wrong but it looks like Histre requires an explicit save action.
- kirubakaran 5y agoHistre[0] automatically saves your browsing history (customizeable[0] of course). No explicit save action needed. [0] https://histre.com/ https://histre.com/ [1] https://histre.com/articles/customize-logging/ https://histre.com/articles/customize-logging/
- pseingatl 5y agoSubscription fatigue.
- roneoo 5y agoPromnesia is meant for that (I didn't test it though): https://beepb00p.xyz/promnesia.html https://beepb00p.xyz/promnesia.html
- ysegun 5y agoFalcon does this. https://addons.mozilla.org/en-US/firefox/addon/falcon_extension/ https://addons.mozilla.org/en-US/firefox/addon/falcon_extens...
- pjerem 5y agoLooks cool but ... 7 users ?
- danuker 5y agoIn Chrome, you can install it from source: https://github.com/CennoxX/falcon#transparent-installation https://github.com/CennoxX/falcon#transparent-installation As for Firefox, you can right-click the "Add to Firefox" button and save and inspect the extension.
- pjerem 5y agoIt's not that I don't trust it but that the value of this extensions looks to be on a long period, you need it to be maintained for months/years to be useful.
- ysegun 5y agoIt was only added to Firefox addons site recently but one could always install it manually for a long time. On Chrome, it has 2000+ users - https://chrome.google.com/webstore/detail/falcon/mmifbbohghecjloeklpbinkjpbplfalb https://chrome.google.com/webstore/detail/falcon/mmifbbohghe.... It works for me since I only use it to search recent history
- danuker 5y agoI see there is no easy way to back up / restore the index. Looks like uninstalling and reinstalling the extension makes it lose the history.
- phil294 5y agoI had a look into the extension's source: It's stored inside web extensions `storage.local` area, as `[time]: { text }` objects. It also keeps both a time index (timestamp of all existing entries) and a two week "preloaded cache" for quick access, which means all visited sites from the past 14 days are permanently in your browser memory. This could theoretically lead to memory problems, as the websites' texts are never truncated. If you search for text older than that, all entries for the specified time frame (determined using the time index) are retrieved from storage (again, possibly large amount of memory) and then processed. This is all pretty clever and a reasonable implementation imo. I'm not sure what better way there could be using web extensions (that support FTS) - the only thing I could think of is a WASM SQLite module.
- ComodoHacker 5y agoI don't think this could be useful to you. SNR would be too low. The fact you were convinced to click on a link someday doesn't mean the link contains anything useful. EDIT: Perhaps ranking by how much time you've spent reading the content could help with that. On the other hand, your shell history is already filtered by your brain, it contains mostly potentially useful things.
- Farow 5y agoNot exactly what you're asking for but you can setup SingleFile[1] to automatically save each page you visit. Then there's also ArchiveBox[2] which can convert your browser history into various formats. [1] https://github.com/gildas-lormeau/SingleFile https://github.com/gildas-lormeau/SingleFile [2] https://github.com/ArchiveBox/ArchiveBox https://github.com/ArchiveBox/ArchiveBox
- graderjs 5y agoHey. My project Diskernet does this: full text search over browser history. Put it in "save" mode when using Chrome (linux is fine) and it automatically saves every page you browse (so you can read it offline), and also indexes it for full text search. It's a work in progress and there are bugs (so my advice initialize a git repo in your archive directory, and make regular syncs to a remote in case of failure -- that also gives you a nice snapshotted archive). Anyway, best of luck to you! :) Diskernet: https://github.com/crisdosyago/Diskernet https://github.com/crisdosyago/Diskernet
- danuker 5y agoThe claims are impressive: that the network requests are saved, not the document after the page is loaded. I will certainly give it a try! One downside: only works with Chrome-based browsers. Perhaps a way to implement this more generally is as a proxy server.
- 12907835202 5y agoHow does it work with a JS heavy app? With an SPA the article might not appear on initial request, but later requests would be JSON which presumably you don't want to return in a search
- graderjs 5y agoIt doesn't index each resource. Only the page text of the URLs you actually navigate to in a tab. So this is fine. It won't index a JSON response in an SPA, as search result (tho it does save it), but it will index (and re index) the actual page content, as you browse it and as it updates (eg dynamically loads in an SPA). Try it out, you'll have an easier time understanding how it works (as long as the current tag release works, heh :) if not try a previous tag).
- rattray 5y agoA screencast would be tremendously helpful!
- _dain_ 5y agoYou can use Archivebox. Set it to grab URLs from your browser history database and it will archive them all to disk in whatever formats you want. You can then use whatever tools you want on those local files. https://archivebox.io/ https://archivebox.io/
- Hnrobert42 5y agoI go the opposite direction. I delete browser history on close. My BASH history isn’t reliable. I am curious how having your history is your greatest force multiplier.
- dewey 5y ago> I am curious how having your history is your greatest force multiplier. Doing a ctrl + r to fuzzy search the history is very powerful. I could honestly not imagine working without that. Do you never have to type the same command twice, or re-use common commands?
- hwers 5y agoI tend to just make a habit of memorizing commands that I repeatedly use. That or I make a script to automate it if I find myself repeating the same action.
- shiomiru 5y agoI've seen somebody with a 1k+ lines long bashrc. They apparently put every useful command in there. Not sure how much better that approach is, I suppose it's similar to using bookmarks vs browsing history.
- deleted 5y ago[deleted]
- Hnrobert42 5y agoIf it is something I used recently, I use ctrl+R or up arrow, but if it’s not there anymore, I just retype. It’s not so bad for me.
- subutux 5y agoIf it’s just the metadata that you want, you can use activity watcher [1]. They have a browser plug-in. [1] https://activitywatch.net/ https://activitywatch.net/
- danuker 5y agoOP wanted full text indexing and search, ActivityWatch does not do that. It is designed for time tracking, and it only saves limited metadata. The browser plugin in particular: time of loading/switching, time spent on page, URL, title, whether the page is audible or incognito, and the tab count.
- whiterock 5y agohttps://minbrowser.org/ https://minbrowser.org/ has full-text search on every website you ever visited if I understand correctly.
- nojito 5y agoAutosaving internet browsing history is largely a waste of time. I adopted a save/print to pdf + full text pdf search in case I need something in the future.
- ochicial 5y agoI use Recoll[1] to search through my local files. Haven't tried it myself, but they also have a extension for Firefox[2] that does what you are looking for. Edit: I just tested it, and it's pretty neat! However they note in their Documentation[3] that this is a web cache and not intended to be an archive. It can simply be turned into an archive though by configuring a large cache size. [1] https://www.lesbonscomptes.com/recoll/ https://www.lesbonscomptes.com/recoll/ [2] https://addons.mozilla.org/en-US/firefox/addon/recoll-we/ https://addons.mozilla.org/en-US/firefox/addon/recoll-we/ [3] https://www.lesbonscomptes.com/recoll/faqsandhowtos/IndexWebHistory.html https://www.lesbonscomptes.com/recoll/faqsandhowtos/IndexWeb...
- thraxil 5y agoProbably not helpful, but I built a setup like that for myself years ago. I had a local proxy, originally written with Python Twisted, but later ported to Go, and set my browser to use that, so all requests went through it. Every URL that the proxy saw, it logged and for text/plain or text/html, it also took a copy of the request body and posted that to a web service that I was running. The web service was a Django app with a simple model that would track the URL, timestamp, and some other basic metadata. It would also save a gzipped copy of the request body to S3, and dump it into a SOLR instance. That gave me full-text search over the content of every site I visited and a backup copy of the text in case the original ever went offline. It was incredibly useful. That was back in the day though, before HTTPS was common (outside ecommerce sites, which I didn't care about indexing), and before so many sites were SPAs that got their content via JS APIs. As more sites went to HTTPS, I realized that I'd have to re-write my proxy to MITM certificates if I wanted it to keep working and that wasn't really something I wanted to mess with. The project was useful, but not useful enough that I was willing to dive into the world of writing a browser plugin that could scrape directly from the DOM, so I eventually abandoned it.
- bmn__ 5y agoOpera versions 9.5 to 12 do this out of the box. The index is stored in `$OPERA_PREFDIR/vps/0000/`. menu Tools → Preferences… → Advanced → History → Remember visited addresses for history and autocompletion → [X] Remember content on visited pages search from address field, history panel or about:historysearch
- xerox13ster 5y agoI really miss that era of Opera. So many QOL features were lost in the migration to Chromium and I have never forgiven them. A friend's teen son showed me OperaGX a few weeks ago and while it looked cool, I can't even bring myself to try it.
- Jaruzel 5y agoI think I'd like to approach this from a different angle - A browser extension that just sends the current URL to a http(s) endpoint of my choosing. I use several machines, plus my phone for browsing. As such my (local) browser history is useless, so I tend to turn it off. Also, I am not in control of it from a privacy point of view (who knows what extensions/browser functions are doing with it?) With my own endpoint, I can then do what I want with the URLs... put them in a database as a cross machine history index, or schedule a job to index the page contents into a personal search engine, etc. I've never written a browser extension, but I'm guessing that... IF (URL.current <> URL.previous) { sendRequest(host=endpointURL, payload=URL.current) } ...can't be that hard?
- karottenreibe 5y agoHas the disadvantage that you can't index content of sites where you need to be logged in as you don't have access to the browser's cookies
- Jaruzel 5y agoValid point, but I'm unlikely to want to index those. I don't use cloud apps much in my personal/hobbyist browsing.
- phil294 5y agoNot quite what you asked, but perhaps interesting either way: I recently made an extension that keeps text only copies of all visited sites for offline usage [1]. No full text search included. Might be that grepping through the extension data is reasonably fast, even with multiple years of browsing history, however. I too see this data as valuable, so it's probably better to start capturing now and migrate somewhere else later, rather than wait for your desired browser to implement it. [1] https://addons.mozilla.org/en-GB/firefox/addon/local-cache/ https://addons.mozilla.org/en-GB/firefox/addon/local-cache/
- pseingatl 5y agoThere was a Windows program out maybe 20 years ago called Elephant Tracks which did this. The developer shut the program down because of piracy.
- retube 5y agoDoesn't chrome + google do this by default?
- ksec 5y agoNo, because some site simply disappear. Either the search engine cant find them or they dont renew their server / domain. For example if HN lost its server or YC somehow decided to shut it down, everything you remember reading on HN will be gone with zero reference.
- kasperset 5y agoNot for Linux :( Works in MacOS but paid software. https://www.stclairsoft.com/HistoryHound/ https://www.stclairsoft.com/HistoryHound/
- darkteflon 5y agoI recently started using DEVONthink (MacOS / iOS) after someone mentioned it on here and have found it to be great. Just paid for the Pro license and consider it quite the bargain. Different model in that you have to choose what to archive (by hitting a button on a browser extension) but in practice I prefer this to the “trawl everything” model. Ymmv, of course. But the killer feature for me is that it’s a unified “search-first” interface for _all_ your documents - not just your web browsing.
- erusev 5y agoI make https://ibar.app/ https://ibar.app/ which does something like this.
- heliostatic 5y agoJust signed up for an invite -- looks like a great tool for a tab addict like me.
- rounakdatta 5y agoNyxt browser is doing this pretty well! https://nyxt.atlas.engineer https://nyxt.atlas.engineer
- outcoldman 5y agoSelf promotion about the shell history: I have built an app, that allows you to easy access your shell history https://loshadki.app/shellhistory/ https://loshadki.app/shellhistory/ and sync via iCloud. MacOS only.
- victor106 5y agoThis looks very neat.
- barbuk 5y agoChromium and Firefox have all your history stored in a sqlite database. I have a script to extract the last visited website from chrome for example: https://github.com/BarbUk/dotfiles/blob/master/bin/chrome_history https://github.com/BarbUk/dotfiles/blob/master/bin/chrome_hi... For firefox, you can use something like: sqlite3 ~/.mozilla/firefox/.[dD]efault/places.sqlite "SELECT strftime('%d.%m.%Y %H:%M:%S', visit_date/1000000, 'unixepoch', 'localtime'),url FROM moz_places, moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id ORDER BY visit_date;"
- kqr 5y agoDoes this database store the full text content of the website? I believe that's what OP is asking for.
- _dain_ 5y agoYou can pipe the URLs through something like monolith[1]. https://github.com/Y2Z/monolith https://github.com/Y2Z/monolith
- alinspired 5y agoTIL of monolith, thanks. It worked great for old.reddit.com but failed to capture www.reddit.com for mobile
- burtonator 5y agoThe main problem with FTS isn't the search indexing component it's actually the HTML content parser. There are TONS of projects like Elasticsearch or just raw Lucene that will allow you to parse text and index it. HTML? Not so much... There are just to many problems Text ads polluting the extracted text is by far the main issue but there are other issues as well including OCR of images, AJAX paginated pages, lazy loaded images that might need OCR, metadata extraction (when was the page published, who was the author, etc). There are some projects that take this on but Google just does an amazing job and these secondary tools are pretty limited by comparison. 95% accuracy doesn't help because that 5% usually ends up being 100% of your false positives.
- psanford 5y agoI've had a lot of success by running HTML pages through mozilla's readability[0] tool (actually the go port of it[1]) before indexing it. [0]: https://github.com/mozilla/readability https://github.com/mozilla/readability [1]: https://github.com/go-shiori/go-readability https://github.com/go-shiori/go-readability
- hodanli 5y agoi think https://memex.garden/ https://memex.garden/ does what you are asking for. but lately they decided to turn their code into source available.
- skinnymuch 5y agoThe OP brings up Memex. Says they don’t do it any more.
- emptysongglass 5y agoIndeed. Here's the deprecation notice [1] [1] https://www.notion.so/Why-we-deprecated-the-history-search-dc3cc6732bb346b2b7c290f699bf65bd https://www.notion.so/Why-we-deprecated-the-history-search-d...
- warrenm 5y ago7 years of command line history?
- suifbwish 5y agoAn interesting spin on this would be to save all text from every web page you have ever viewed in a browser. I am willing to bet most of us have not viewed more than 10G of raw text in the past 10 years
- iansinnott 5y agoA bit late to the thread, but I also created something to solve this [1]. Currently only works on Mac though, so it does not solve the OPs problem. Hopefully others may find it useful. The gist is: - It unifies your browsing history for Firefox, Chrome, most browsers into one sqlite database. - Provides quick (autocomplete style) full text search over that database via a UI. [1]: https://www.browserparrot.com/ https://www.browserparrot.com/