Hister 是一款真正属于你自己的轻量级个人搜索引擎,它不依赖云端服务,也不上传你的浏览记录或文档内容——所有数据都留在你本地设备或私有服务器上。它帮你解决一个日常却长期被忽视的痛点:明明上周刚看过某篇技术文章、下载过某个配置文件、甚至在某个网页里复制过一段关键代码,但再想找时却怎么也翻不到。Hister 就是为此而生:把你的浏览器历史、已访问网页正文、本地文档(PDF/Markdown/TXT等)全部自动索引成可全文检索的知识库,让你像查维基百科一样秒级找回任何曾接触过的数字信息。
核心功能
- 自动捕获并全文索引网页内容:安装 Firefox 或 Chrome 扩展后,每次你打开新网页,Hister 会自动抓取页面 HTML 并提取纯文本(去除广告、导航栏等干扰),建立倒排索引——这意味着你不仅能搜“React useState”,还能搜到某篇教程里那句“useEffect 的清理函数会在组件卸载前执行”,哪怕这个短语从未出现在标题或 URL 中。
- 零配置启动即用的本地搜索服务:下载单个二进制文件(Linux/macOS/Windows 全平台支持),执行
./hister listen即可启动 Web 服务,默认监听 http://127.0.0.1:4433,无需数据库、无需 Docker、无需配置文件——对普通用户真正友好。 - 多终端统一搜索入口:既可通过美观的响应式 Web 界面交互式搜索,也能用命令行客户端(
hister search "k8s pod status")在终端快速获取结果;更独特的是,它原生支持 MCP(Model Context Protocol) 协议,可直接接入 Cursor、Windsurf 等 AI 编程助手,让大模型实时调用你私有的知识库回答问题,而非依赖公网信息。 - 灵活的历史导入与主动爬取能力:不仅支持实时捕获新访问页面,还提供一键导入 Chrome/Firefox 历史记录(含时间戳和访问频次),并内置轻量爬虫(
hister crawl https://example.com --depth=2),方便将公司内部 Wiki、个人博客或技术文档站批量纳入搜索范围。 - 字段化高级查询语法:支持类似
title:"Go generics" site:dev.to after:2023-01-01的结构化搜索,可限定标题、域名、时间范围、文件类型(ext:pdf)、否定条件(-url:github.com),甚至设置别名(如将py映射为ext:py OR ext:pyi),大幅提升专业用户的检索精度。 - 可选语义搜索增强:在启用本地或远程嵌入模型(如 Ollama 的
nomic-embed-text)后,Hister 能将查询和文档映射到向量空间,实现“找相似概念”而非仅匹配关键词——例如搜“如何优雅关闭 goroutine”,能命中讲context.WithCancel和sync.WaitGroup的不同文章,即使它们没出现完全一致的词组。 - 多用户隔离设计:当部署在共享服务器(如家庭 NAS 或 VPS)时,Hister 支持按用户划分索引空间和权限,每个用户只能看到自己浏览器扩展提交的内容和自己导入的文件,避免知识泄露,适合小团队或家庭协作场景。
技术亮点
- Go 语言单体架构 + 零外部依赖存储:整个服务由单一 Go 二进制承载,索引数据默认使用内存映射文件(mmap)+ 自研轻量级倒排索引格式,无需安装 PostgreSQL/Elasticsearch 等重型依赖,极大降低部署门槛和资源占用(实测 10 万网页索引仅占约 800MB 内存)。
- Web 前端与 Go 后端深度协同:前端采用 Vite 构建,通过 WebSocket 实时接收索引更新通知;后端则利用 Go 的高性能 HTTP 服务和并发模型处理高吞吐搜索请求,且提供完整的 API 文档(/docs/api),便于二次开发集成。
- 隐私优先的协议设计:浏览器扩展与 Hister 服务通信全程走本地 HTTPS(自签名证书),所有页面内容仅发送至你指定的
localhost或内网地址;可选的语义搜索模块明确要求用户自行配置嵌入服务地址,项目本身不绑定任何第三方 API,彻底规避“隐私换便利”的陷阱。 - MCP 协议原生支持:作为早期拥抱 MCP 标准的开源工具,Hister 不仅提供标准 JSON-RPC 接口,还实现了完整的工具注册、上下文流式传输和错误反馈机制,使 AI 助手能像调用本地函数一样精准调用你的私有知识,这是多数传统搜索工具不具备的前瞻性设计。
适合哪些人用
它特别适合三类人群:技术从业者(开发者、运维、数据分析师)——每天在无数技术文档、API 手册、Stack Overflow 回答间穿梭,Hister 能把你散落各处的“碎片知识”聚合成专属搜索引擎;研究型用户(学者、学生、产品经理)——需要反复查阅 PDF 论文、会议资料、竞品分析报告,全文检索比文件名搜索高效十倍;隐私敏感者(记者、律师、自由职业者)——拒绝将浏览轨迹交给商业搜索引擎,又不愿放弃高效检索体验。
真实场景举例:一位前端工程师用 Hister 导入了过去两年收藏的 500+ 篇 React/Vue 源码解读文章,某天遇到 useTransition 性能问题,直接在终端输入 hister search "useTransition render phase",3 秒内定位到 3 篇含详细调用栈分析的博客;另一位独立开发者将公司内部 Confluence 文档导出为 HTML 后用 hister crawl 批量索引,从此在 Slack 里用 MCP 插件问 AI:“上次讨论支付失败重试逻辑的会议纪要里提到哪几种状态码?”,AI 立即返回精确段落。
快速上手
以 macOS/Linux 为例:
- 访问 GitHub Releases 页面 下载对应平台的压缩包,解压后得到
hister文件; - 赋予执行权限:
chmod +x hister; - 启动服务:
./hister listen(首次运行会自动生成配置目录~/.hister); - 打开 http://127.0.0.1:4433,点击右上角「Install Extension」按提示安装浏览器插件;
- 若需导入现有历史,运行:
./hister import chrome --path ~/Library/Application\ Support/Google/Chrome/Default/History(路径按实际调整)。
全程无需编辑配置文件,5 分钟即可获得可用的个人搜索引擎。
同类对比 / 注意事项
- 相比 Recoll(老牌桌面全文检索):Hister 更专注 Web 场景,自动捕获网页、支持现代搜索语法、提供 Web UI 和 MCP 集成,而 Recoll 侧重本地文件且界面陈旧;
- 相比 Meilisearch + 自建爬虫:Hister 开箱即用,省去搭建集群、配置 schema、编写爬虫脚本的复杂流程,更适合个人轻量需求;
- 注意事项:默认不索引图片/视频内容(仅提取文字),PDF 需确保系统已安装
pdftotext(macOS 可brew install poppler);语义搜索为可选功能,启用前务必确认嵌入服务的隐私政策;AGPLv3 协议要求修改后分发必须开源,企业商用需注意合规性。
项目信息
Your own search engine
2.7k
今日 +166 stars today
Stars
121
Forks
Go
AGPL-3.0
编程语言:Go|GitHub Star 数:2727|开源协议:AGPL-3.0|GitHub 项目地址
如果你厌倦了在浏览器历史、书签文件夹、下载目录和聊天记录里大海捞针,又不愿把数字足迹交给商业公司——Hister 就是你等待已久的那个安静、可靠、完全自主的个人知识中枢。




