Hister: Local Full-Text Search for Browser History

Better Stackgo watch the original →

Hister is an open-source tool that indexes the full text of visited web pages locally, enabling recall-based search for content that standard browser history ignores.

The Breakthrough

Hister creates a searchable, local inverted index of the full HTML content of every page a user visits, allowing for granular recall of previously read documentation, GitHub issues, and private dashboards that standard browser history fails to capture.

What Actually Worked

  • Installation and Execution: The tool runs as a local server. Users download the binary (e.g., darwin-arm64), make it executable, and start the service with hister listen, which defaults to port 4433.
  • Automated Indexing: A browser extension captures the rendered DOM after JavaScript execution, sending the URL, title, and full HTML to the local server. This requires no manual "save" action from the user.
  • Querying: The system supports a custom query language, allowing users to filter by domain (e.g., domain:github.com) and search for specific phrases within the body text of indexed pages. It also provides a CLI for terminal-based searching.
  • Agent Integration: Hister exposes an MCP (Model Context Protocol) endpoint, allowing developers to connect local coding agents to their personal browsing history as a retrieval-augmented generation (RAG) source.

Context

Standard browser history only stores URLs and page titles, making it ineffective for finding specific information buried within long-form content. While tools like ArchiveBox or Readwise offer archiving capabilities, they require the user to manually trigger a save. Hister automates this process by indexing pages as they are browsed, storing them as gzipped HTML locally. The tool is pre-1.0, lacks built-in encryption for the index, and requires manual configuration for authentication if exposed beyond localhost.

  • #dev-tooling
  • #productivity
  • #open-source

summary by google/gemini-3.1-flash-lite. probably wrong about something. check the source.