mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Self-Hostedevaluationupdated 24 Aug 2026

hister review

Hister is a private search engine for the web pages you visit and the local files you keep. It stores their searchable contents, then lets you find them through a web interface, terminal client, or an AI assistant connected over MCP.

+655stars / 7d
Verdict

Hister is one of the more useful self-hosted answers to the question, 'Where did I read that?' Its binary setup, full-text capture, query language, terminal UI, and cautious MCP output make it worth trying on a private machine. Run it only after deciding what must never be indexed and how long stored copies should live, because retention and complete erasure remain the operator's responsibility.

We ran it

Lab card: what happened when we ran histerScreenshot of hister (hister.org)
Install✓ · 17s282 packages · 289 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo583 files~104,128 lines of source · 5.4 MB · 9 CI workflows · Dockerfile

Answers from our run

Does hister build from source?

Dependencies installed in 17 seconds (282 packages), and the project has no separate build step. We cloned commit 910337a into a clean Debian container with 3 CPUs and no project-specific setup.

Does hister have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does hister have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use hister?

Anyone unwilling to store copies of sensitive signed-in pages: the browser extension submits rendered text and HTML, and full HTML previews are enabled by default.

What are the alternatives to hister?

Karakeep, Readeck, SearXNG. Hister is one of the more useful self-hosted answers to the question, 'Where did I read that?

Setup4/5Single-binary local start, with more work for remote access
Docs5/5Clear guides for privacy, storage, auth, search, Docker, and MCP
Community4/5Fresh release, current pushes, and active issue discussion
Maturity4/5Broad working surface, with retention and semantic edges remaining

Discussed on

  1. hnShow HN: Hister – fast, content-based search for visited websites9 points
  2. hnHister v0.17.04 points
  3. hnHister: Your Own Search Engine3 points
  4. hnHister – Web History on Steroids3 points

Who it’s for

People who regularly remember reading something but cannot recover the page from browser history.
Researchers and developers who want full-text search across visited pages and selected local files.
Self-hosters who want their browsing index on a machine they control, with no required cloud service.
MCP users who want an assistant to search their personal reading archive with source URLs.
Small teams prepared to configure authentication, storage, backups, and per-user ownership.

Who it’s NOT for

Anyone unwilling to store copies of sensitive signed-in pages: the browser extension submits rendered text and HTML, and full HTML previews are enabled by default.
Operators who need automatic retention limits or one-step erasure: the data-lifecycle guide says there is no expiry or total quota, and deletion can leave version records, job metadata, logs, exports, and backups.
Safari-only users: the README lists Firefox and Chrome extensions, while open issue #49 tracks Safari support as unfinished.
People expecting old browser history to reproduce what they originally read: imports fetch each URL's current contents without inheriting the browser session.
Users who want semantic search with no model administration: it needs an embeddings endpoint, and issue #605 reports that changing model settings does not invalidate stored vectors.

Setup reality

At commit 910337a, npm installation succeeded in 17 seconds, adding 282 packages and using 289 MB. The root package exposed no standard build or test target, so both steps were skipped. npm audit found 0 known vulnerabilities.

That npm run covers Hister's JavaScript workspaces, not the Go server build. Most users can download one binary and run hister listen with no local configuration. Docker, Nix, and Proxmox routes also exist. Building from source needs Go 1.26, npm, and a C compiler for CGO dependencies.

A local loopback install needs no credentials. Network exposure changes the job: configure an access token or multi-user accounts, HTTPS, a public base URL, persistent storage, and backups. Semantic search adds an embeddings endpoint and vector storage. The repository has 9 CI workflows, a Dockerfile, and Compose, but no tests directory was present in our measured checkout.

Search the page, not merely its title

Browser history is poor memory. It usually gives you a URL, title, and visit time, which is little help when the phrase you remember was buried halfway down a page. Hister indexes extracted page text and can keep the rendered HTML too. Its search interface supports phrases, fields, wildcards, negation, aliases, priorities, and sorting. Results are available in a browser, terminal UI, command line, or MCP client.

The browser extension is central to the product. It captures a page after rendering, so it can index JavaScript applications and content visible only after you sign in. It also watches pages that update without a full navigation. That reaches material a normal crawler misses, but it may include account pages, internal tools, or private messages. Skip rules and sensitive-content patterns deserve attention before normal browsing begins.

Historical import works differently. Browser databases do not contain the old page body, so Hister reads their URLs and fetches whatever is available now. Changed pages, removed pages, and login walls will affect the result. The import does not borrow your active browser cookies unless you deliberately configure a suitable backend and provide them. This is recovery of reachable URLs, not a time machine for every past visit.

What happened when we ran it

We checked commit 910337a in a fresh Debian container with 3 CPUs, 8 GB of RAM, Node 22, no secrets, and no elevated privileges. npm installation succeeded in 17 seconds. It added 282 packages and occupied 289 MB. The checkout contained 583 files and about 104,128 lines of source.

The root npm package manages several web workspaces and provides development, formatting, lint, and check commands. It has no standard build or test target, so our harness skipped both steps. The measured repository also had no tests directory. This means our run did not build the Go server or exercise Hister as a search engine.

npm audit found 0 known vulnerabilities. That clean result applies to the installed npm dependency tree, not every Go module, container layer, browser extension, or deployed configuration. The repository contains 9 CI workflow files, a Dockerfile, and a Compose file, which are useful maintenance signals but cannot substitute for a build or functional test result in our sandbox.

A genuinely easy local start

For personal use, the release binary is the right entry point. Download it, make it executable on Linux or macOS, run hister listen, and open the loopback address. The same binary contains the server and terminal client. Firefox and Chrome extensions then point at that instance. No account or configuration is required while it stays local.

Other installation choices are well covered. Official container images support common x86 and ARM machines, and the provided Compose service runs read-only, drops capabilities, uses a non-root user, and mounts persistent data. Nix modules and a community Proxmox installer are documented. Source builders need Go 1.26, npm, and a C compiler because some dependencies use CGO.

Remote hosting is a different class of setup. Hister listens on loopback by default and has no authentication by default. A network-facing server needs an access token or user handling, HTTPS, the correct base URL, persistent storage, and backup monitoring. Multi-user mode supports passwords, personal tokens, OAuth, scoped search, and document ownership. Existing anonymous documents become a shared baseline when user handling is enabled, so operators must deliberately reassign anything that should become private.

Storage policy belongs to the operator

Hister keeps searchable documents until they are replaced or deleted. It has no automatic expiry, document-count ceiling, or total disk quota. Full HTML previews are enabled by default, semantic vectors add another store, and optional versioning keeps differences without an age limit. Deleting a watched file does not remove its indexed document unless delete_on_remove is enabled.

The documentation is unusually frank about deletion. Removing a current document clears its active index record and current assets, but version records, crawl-job data, logs, exports, snapshots, and backups may remain. There is no single complete-erasure command. People indexing regulated or highly personal material need a written retention process, including backup expiration, rather than relying on the delete button. Users who only need text search can disable HTML previews and reindex to remove previously stored preview files.

MCP is useful and treated as a security boundary

The MCP endpoint lets an assistant search documents, retrieve a stored preview, and inspect indexed or opened history. Search results can include full text, while HTML must be requested explicitly. Hister marks titles, URLs, metadata, body text, and history fields as untrusted content, removes invisible control characters, and warns clients about prompt injection. That design recognizes that a saved web page may contain instructions aimed at the assistant reading it.

These controls reduce risk without solving it. The MCP guide tells clients to sanitize HTML and ask before taking actions with shell, file, browser, email, or network tools. Authentication follows the main API token or per-user token. Public mode can expose global search results, previews, file serving, and MCP search anonymously, so only content intended for public access belongs in that shared index.

Semantic search is optional and connects to an embeddings endpoint chosen by the operator. Keyword search works without it. Open issue #605 reports that changing the embedding model or dimensions does not invalidate stored vectors, requiring a full reindex to restore consistency. Another open request asks for semantic work to stop delaying keyword results. Use semantic mode after choosing a stable model and budgeting for reindexing.

Health and the decision

Hister was pushed on August 24, 2026, one day after the v0.18.0 release. GitHub showed 45 open issues and pull requests combined, with issue updates continuing that day. The release added search suggestions, file imports, service imports, structured MCP results, persistent sessions, and a long list of fixes. This is an active project, though the pre-1.0 version and current feature requests still suggest change.

The documentation covers installation, data lifecycle, authentication, Docker, browser capture, query syntax, MCP risks, and troubleshooting in practical detail. Hister is a good personal search tool for someone willing to own the archive it creates. Begin on loopback, configure exclusion rules, decide whether HTML previews are worth retaining, and test recovery from a backup before trusting it with years of browsing history.

Alternatives

ProjectWhat it isPick it when
KarakeepA self-hosted bookmark and read-later service with capture, tagging, and search.pick this instead when deliberate bookmarking and organizing saved items matters more than indexing pages automatically as you browse.
ReadeckA self-hosted read-later service focused on saved articles and clean reading views.pick this instead when you want a quieter article archive and do not need local-file, terminal, or MCP search.
SearXNG gh↗A private metasearch engine that queries external search providers without building a personal reading archive.pick this instead when you need private web discovery rather than retrieval from pages and files you previously stored.

What people are saying

  1. [github-trending] asciimoo/hister
  2. [hackernews] Hister – A private, full content search index that you control

Sources

  1. Hister repository
  2. Hister documentation
  3. Hister v0.18.0 release
  4. Hister data lifecycle guide
  5. Hister MCP guide
  6. Open embedding invalidation report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →