Hister Turns Your Browser History and Files Into a Private Search Engine
A browser history window can hold years of URLs and still fail at the one moment you need it. You remember a paragraph about SQLite migrations, a PDF in Documents, or a GitHub issue you read during a late-night debugging session. The browser remembers that you visited something; it does not give you a useful way to search the words inside. Searches such as “How do I search my browser history and local files?” describe the problem Hister is built to solve.
Hister is a self-hosted private search engine—software you run on a computer or server you control—for the pages and files in your own collection. It builds a full-text index, a searchable map of words and where they appear, then exposes that collection through a web interface, terminal client, application programming interface (API), or AI assistant. As of September 17, 2026, v0.19.0 is the current stable release, with recent additions including Safari history imports, ChatGPT and Hacker News extractors, and richer result previews. (hister.org)
A private index, not a second Google
Traditional web search begins with a crawler, a program that fetches pages and follows links across public sites. Hister begins with the material you allow it to collect, then searches that personal library. Its client-server architecture splits the work: the server stores and searches documents, while clients send pages or queries. The Hister binary can act as both, while the browser extension, terminal program, and API clients can connect to the same server. One computer is enough, but a self-hosted server can serve several controlled clients.
The browser extension is the most natural starting point. After a tab loads, it reads the rendered page—the version produced after JavaScript has built the visible content—and sends the URL, title, extracted text, HTML markup, and favicon to the Hister server you configured. Because it observes your browser tab, it can capture JavaScript-heavy pages and pages available through a signed-in session, including content a public crawler may never see. That power deserves care: a private dashboard or email page can enter the index if your rules do not block it.
Existing browser history works differently. A browser database usually contains URLs, titles, visit counts, and timestamps, not the page text you saw at the time. hister import browser reads those URLs and fetches the pages as they exist now, so an old page may have changed, disappeared, moved behind a login, or become unavailable. Hister can also index PDF, DOCX, Markdown, Org mode, and valid UTF-8 text files through watched directories or explicit imports.
Hister normally keeps one current document for each normalized URL and owner. A later submission updates that document instead of creating a separate record for every visit. If a URL matches a versioning rule, Hister can store content differences and reconstruct earlier versions. That makes it a useful personal search index, but not an automatic archival system for every page you have ever opened.
A local setup that stays local
The first setup is deliberately quiet. Download a Hister binary, make it executable on Linux or macOS, and start the server:
./hister listen
The default server listens on the loopback address 127.0.0.1:4433. “Loopback” means the service accepts connections from the same computer, rather than exposing itself to every device on the network. Open that local address in a browser, install the Firefox or Chrome extension, visit a page, and search for a phrase from it. No configuration file is required for a personal setup, although the terminal running the server must remain open. (hister.org)
To seed the index with older material, use the import commands:
hister import browser
hister import file ~/Documents/notes
The first command reads a supported browser database and fetches qualifying pages. The second extracts text from supported local files. Watched directories can keep changing files updated, while the extension handles new pages as you browse. (hister.org)
Search with more than keywords
Hister’s query language starts with ordinary words, then adds small pieces of structure when a large collection needs narrowing. Quoted text searches for an exact phrase. Field filters target titles, domains, labels, document types, or URLs. Parentheses create alternatives, a minus sign excludes matches, and sort: changes result order.
"sqlite migration"
title:encryption domain:github.com
type:file (README|documentation) -archive
domain:example.com sort:-date
The same index is available from the terminal, which makes Hister useful in scripts as well as in a browser:
hister search 'type:file "deployment"' --format json --limit 20
This is the difference between remembering a topic and remembering where it appeared. A search for type:file can stay inside your notes and documents. A domain filter can bring back a page from a familiar project. An alias can turn a long filter into a short keyword you remember naturally. (hister.org)
Optional semantic search and an AI bridge
Keyword search is not the only option. Semantic search matches related meaning even when the exact words differ. Hister can use an embeddings endpoint—an embedding is a numerical representation of text meaning—that you configure. This feature is optional, and enabling a remote endpoint may send document text outside your Hister server, so its privacy settings deserve the same attention as the index itself. (github.com)
Hister also exposes the Model Context Protocol (MCP), a standard way for AI assistants to call tools and read connected data. Through its MCP endpoint, an assistant can search indexed documents, retrieve stored previews, and inspect Hister history. The retrieved page text remains untrusted content: a webpage can contain instructions designed to manipulate an AI assistant, so the assistant should treat indexed text as evidence, not as permission to reveal secrets or run unrelated actions.
Private does not mean unattended
Hister has no telemetry or mandatory cloud service, but privacy still depends on how the server is operated. The project’s documentation states that indexed data is not encrypted by Hister itself. A local installation stays behind the security of the machine; a server shared across devices should use authentication, HTTPS, and a reverse proxy—a front-end service that handles encrypted connections before forwarding traffic to Hister.
Rules provide the practical boundaries. Skip rules can block login pages, tracking URLs, or sensitive sites before they enter the index. Priority rules can keep a personal wiki near the top, versioning rules can track important changes, and aliases can shorten recurring searches. Hister also has no automatic expiry period or total storage quota, so backups, disk usage, and deletion schedules remain the operator’s responsibility. Clearing browser history does not remove documents already stored in Hister.
Hister’s appeal is not that it remembers everything without judgment. It gives your scattered digital trail a boundary you can see and control: the pages you revisit, the files you keep, and the searches that help you find them again. For the familiar feeling of “I know I read this somewhere,” a private full-text index can be a far better memory than a long list of forgotten URLs.
Comments (0)
No comments yet. Be the first to respond!
Leave a Comment
Your comment will be visible after review.