My first free software search project was Searx, a privacy respecting metasearch engine, but because of the limitations of the metasearch concept, I've decided to take a different approach.
Hister builds a personal search index from pages you visit, bookmarks, browser history, local files, and crawled websites. It stores extracted content with offline result previews, so information remains searchable even when the original page changes or disappears. It supports full text and semantic search, can run entirely on your own machine, and includes a web interface, command line tools, and an MCP endpoint for assistant integrations.
Project page: https://github.com/asciimoo/hister
Tiny read-only demo: https://demo.hister.org/
https://github.com/rumca-js/Internet-Places-Database
Also I maintain android app that can be used to search places.
https://f-droid.org/en/packages/io.github.rumcajs.offlineweb...
I believe hister you have to fill in with your data, right?
Webtm.io
All open source and small enough to deploy. I deploy to cf webworkers so it’s the only place it’s tested.
One cool thing is we work on iOS, chrome and friends, Firefox and pretty much everywhere. We do require you bring your own LLM though.
One thing at first look. Personally I think it would be very nice if it was possible to index different sites to different search index. So you could separate different stuff, like job, different projects you have, and other stuff and then last everything else etc.
So it would be possible to have like "profiles" you could easy choose from. So in the addon, when you click on the hister icon on the toolbar there would be a list of profiles that you could choose where to index to, but also a setting to choose which domains and sites that always should index to one seach index profil. And all sites that dont is added to a profile is added to the default index instead.
For me this would make it much more easy to find stuff and sort out what Im looking for (for me things get very "thing"/project based what I want to find), so having this would... 1 - become like an important filter. When you search you could easy mark one or more "profiles" which you would search from, and you remove alot of unwanted data automatically. 2 - It would also make it easy if the db gets big over time to remove data that is less important later on and that you dont need to be index anymore. 3 - It would also make it easier to backup only the most important search index data DB:s if the DB for the differnt seach index:s where in different folders/files. I guess the "default index" that index all sites could easy get big, but there it would be alot of not important data. So would be nice to be able to easy to use a backup program and only backup the only important search databases.
Got enough Hitler in my life with Google...
I scraped and imported posts from the blogs I regularly reference for award travel, then hooked it up to OpenCode/Codex as an MCP server and used that corpus for research on those topics. So I can ask things like "has anyone ever mentioned running into this problem before?" [1]
If you have a hobby or working situation that requires you to regularly reference a core set of websites or reference materials, Hister provides almost all the tools out of the box to start a search engine against it. The default datasets they promote include the Python Stlib, MDN and RFC corpus, as an example. [2]
would've been great with a more liberal license
Would Hister be suitable for this? Can it index mbox files? Would it handle this amount of data? Does it have a search API so I can build an MCP server?
I often find myself irritated because I read an article on my phone 6 months ago and the history is gone.
Immediately interested and will check it out, thank you! I've wanted a "search stuff you've seen online" tool for a long time, but everything seems to be research-oriented or "archive but don't search" or some weird combination that means it's nigh useless to me. I've got decades of bookmarks and archives and I've kinda been stuck grepping them at best (it's rare but I do sometimes want a page I saw once three years ago and I love having that option), while hoping someone would build something better.
One question if ya don't mind, while I explore: any chance of singlefile support? Content-extraction is useful in lots of situations (e.g. wallabag) and it's a great default, but sometimes it fails and sometimes you really do want the page, relatively close to how it actually was. Singlefile does that much better than most, and it does so well enough (and manually-handle-able enough if needed) that I don't feel any desire to switch to WARCs or similar.
Though specifically I'm probably looking for something like "content-extract everything" + "key combo to save singlefile version too" + "upload singlefile archives to backfill / recover". Like 99% of the time content extraction is preferred, and I'm glad to see it... it's just not always enough, and having to go elsewhere for exceptions breaks a lot of the utility.
It's a terrible choice of name
I feel this is a weird spin on the "Clicks to Hitler" game
What tools or features would Hister need to support your complete search workflow?
Also indexed data is persisted on a per-user basis, so you got this isolation and certainty that your searches will not be polluted by your family's
It also has a "public mode" where anyone can search the indexed content, but only authenticated users can add or modify it.
The indexer it uses (Bleve) can handle millions of records according to their docs, but sure that Hister would be the best choice for this task. I'd probably use Meilisearch (https://www.meilisearch.com/).
> Can it index mbox files?
Not yet.
> Does it have a search API so I can build an MCP server?
It has both search API and MCP server endpoints.
Automatic page capture on mobile currently requires Firefox, since mobile Chrome does not support browser extensions.
Not in the near term. Right now I am focused on developing Hister rather than operating a hosted service. There are already plenty of centralized hosted search engines, so my longer term interest is in federation and distributed search. I want to make the core system mature first.
> would've been great with a more liberal license
It depends on how do you define liberal. =] I chose AGPLv3+ because I want Hister to remain free software and available to their users.
> One question if ya don't mind, while I explore: any chance of singlefile support?
Yes, partially. Hister can already import HTML files created by SingleFile, but there is no direct integration yet. In the longer term, I would like the SingleFile extension to be able to send snapshots directly to Hister.
i still think it could've benefited by Apache 2.0 which more or less gets you to your goals
Overall I really like what I'm seeing, it ticks a lot of important boxes for me and it's pleasantly straightforward. Hopefully I'll find time to contribute!
Would Hister support this basic workflow? I'd love to retire my own software.
The next phase was going to move to a recording proxy.
Where it says that “Hister” is a variant of its Latin name.
I think the name is lovely with no reason to change. Surely there are few people who would connect this with silly medieval superstition. Perhaps you can take part in wiping out that association.
Hister always stores the original material.
> That way you could also switch from an extracted view to a "full" view in the UI.
It isn't even needed, we just need a SingleFile specific extractor (an interface in Hister to parse specific page content and provide custom previews) that provides the full original HTML for the preview panel.
> Hopefully I'll find time to contribute!
I'd appreciate it. <3
Thank you again!
AGPLv3
Run it on your own machine or server
No telemetry, no external requests
Hister stores extracted document content with the search index and displays it as a readable preview alongside search results.
Download Hister Try the live demo
Look beyond bookmarks and filenames. Hister indexes the full content of the pages and files you choose, then keeps that searchable knowledge on a server you control.
Look beyond titles and URLs to the words inside every indexed document.
Use fields, phrases, wildcards, negation, priorities, and your own aliases.
Open a clean stored preview beside the results without losing your search.
How Hister works
Collect
Save newly visited pages with the browser extension, watch local folders, import your history, or crawl a site.
Visited pages
Local files
Index
Hister extracts the parts that matter and indexes their full text on the server you choose.
Full text
Stored context
Find
Search from the web, terminal, command line, or let an AI assistant retrieve it through MCP.
Web and terminal
MCP assistants
The simple loop
Browser extensions can index pages as they are visited. File watchers, history imports, and crawlers add other sources to the same index.
Why Hister
The index, stored page content, and rules remain on the Hister server you configure. The server has no telemetry and does not require a cloud service.
The server does not phone home or report what you search.
A complete personal setup can run on one local machine.
Clients send indexed content only to the Hister server you configure.
The source is public and licensed as free software under AGPLv3.
Optional semantic search sends text to the embeddings endpoint you configure. Browser extensions may retrieve page favicons. You choose whether and where these connections run.
Built for real recall
Hister indexes visited pages, watched files, imported browser history, and crawled websites. The index is available through web, terminal, CLI, HTTP API, and MCP interfaces.
Browser extensions can index visited pages automatically. File watching, history imports, and the crawler add other sources.
Full text search supports field filters, quoted phrases, wildcards, negation, date ranges, and query aliases.
Content extractors handle structured data from supported formats and websites. Semantic search is optional.
Skip and priority rules control indexing and ranking. Versioning can retain earlier document content.
The same index is available through the web interface, terminal client, CLI, HTTP API, and MCP server.
A single binary can run locally. Shared servers support user scoped access with SQLite or PostgreSQL.
Hister also supports multiple crawler backends, language specific indexes, content versioning, ownership rules, and configurable extractors.