mcpField
D
dowse

dowse

本地服务
lter.space搜索与检索38今天更新

关于 dowse

dowse 是面向 Windows 的开源本地全文搜索工具,可索引文件名、文档正文、代码及截图中的文字。它使用 jieba 进行中文分词,并通过 MCP 服务向 AI Agent 开放只读搜索。

主要功能

  1. 01文件名与文档内容的持久索引
  2. 02PDF、Office 与代码文本搜索
  3. 03离线图片 OCR(Windows.Media.Ocr)
  4. 04jieba 中文分词与 GBK 编码检测
  5. 05增量索引与文件监视
  6. 06只读 MCP 服务(search、preview 等工具)

适用场景

  1. 01在 Windows 本地查找包含特定中文词语的文档
  2. 02检索截图中的文字内容
  3. 03让 AI Agent 在本机索引中搜索并读取文件片段

MCP 相关

dowse 通过 dowse mcp 以 stdio 方式运行只读 MCP 服务,向客户端暴露 search、preview、read_file_chunk 和 index_status 等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
cargodowse0.10.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

English | 简体中文 | 日本語 | 한국어 | Español | Italiano

dowse 徽标

dowse

面向 Windows 的开源本地文件内容搜索工具。通过一个热键,即可查找文件名、PDF 和 Office 内容、源代码以及截图中的文字。

网站 · 英文产品页面 · Windows 文件内容搜索指南(中文)

许可证 最新版本 CI 状态 GitHub 星标 平台:Windows Rust 2024 版本 下载量 Glama MCP 服务评分

这个名字源自探测棒。

Dowse 搜索虚构的 Northstar 工作区,左侧显示按排名排列的项目文件,右侧显示实时摘要预览

动机

目前没有任何 Windows 工具能同时满足以下三点:

  • 持续维护文件内容索引,而不只是文件名(Everything 可以按需扫描内容,但其即时索引主要针对名称和路径)
  • 无需 Copilot+ 设备,就能在普通 Windows 电脑上识别并索引图像中的文字
  • 一个热键即可唤出,全键盘操作,几乎感觉不到延迟

最接近的开源实现是 sist2,但它面向 Linux(在 Windows 上只能通过 Docker 运行),会将中文文本视为三元组,而且该项目已停止维护。dowse 是一款原生 Windows 实现,围绕这三点构建。

功能

🔍 文件名搜索即时搜索,输入时实时显示结果
📄 文档内容搜索纯文本、Markdown、代码和文档格式(PDF、Word、Excel、PowerPoint)
🖼️ 截图 / 图像 OCR完全离线识别 PNG/JPG/WebP/BMP 图像中的文字(Windows.Media.Ocr)
🈶 中文分词jieba + BM25 排名,而非三元组;并自动检测 GBK 编码
⚡ 增量索引运行时监视文件变化,启动时根据修改时间和文件大小进行核对
🤖 MCP 服务通过 stdio 向 AI Agent 提供本地搜索功能
🚀 NTFS 快速通道枚举 MFT + USN Journal,仅限管理员使用;否则会自动回退

dowse 与其他选择的比较

dowseEverythingWindows Searchsist2
文件名搜索✓✓✓✓
文档内容搜索✓(持久化索引)按需扫描取决于已索引的位置和筛选条件✓
截图 / 图像 OCR✓✗取决于设备 / 版本有限(可选 Tesseract)
正确的中文分词✓(jieba)—有限✗(三元组)
完全本地运行,不联网✓✓✓✓
全局热键浮层✓✓✓(Win 键)✗(Web 界面)
原生支持 Windows✓✓✓✗(优先支持 Linux,在 Windows 上使用 Docker)

中文文本处理

  • 通过 jieba 进行分词,使用 BM25(tantivy 引擎)进行排序。不使用三元组。
  • 自动检测文件编码(chardetng)。GBK 编码的文件会在索引前正确解码——这很重要,因为 Windows 上大量中文文档,尤其是较早的文档,仍以 GBK 而非 UTF-8 保存;假定文件为 UTF-8 的搜索工具会在不提示的情况下错误建立索引或造成乱码。
  • 多词查询默认采用 AND 语义。带引号的短语查询会按精确位置匹配。内联运算符可进一步缩小范围:path:reports、mtime:>2026-01-01、size:>10mb、在组之间使用大写 OR、使用 -term 排除词项。
  • OCR 使用 Windows 原生引擎(Windows.Media.Ocr),完全离线运行。zh-Hans 语言包也支持中英混合文本,无需额外配置。

性能

设计目标;超过目标视为缺陷。“实测”指从零开始运行 dowse 0.7.0 的基准测试(i7-13700K / 24 个逻辑核心 / 64GB RAM,单台机器,单个会话,2026-07-12),并复用 v0.6.1 第 3 轮基准测试中的逐字节相同语料,以便直接比较。完整原始输出(索引/搜索日志、JSON 结果文件)保存在基准测试工作目录中,未纳入此仓库。

指标设计目标实测(v0.7.0,2026-07-12)
热键到窗口可见< 50ms未测量——仅 CLI 基准测试,未对叠加应用进行仪器化
按键到结果呈现< 80ms未测量——同上
OCR,单张图片~112ms / 1080p 截图单独测量约 170ms(480×200 合成图片),与 v0.6.1 相同——本次发布未修改 OCR 流水线。对同一图片立即重复运行时,读数低于 30ms,反映的是 OS 级识别缓存,而非实际识别,因此不计入此处。并非实际 1080p 截图
常驻内存空闲时 < 150MB未测量(空闲时);全语料索引期间的峰值工作集约为 327MB——这是不同的指标,与空闲目标相比并非性能回退
安装程序大小< 50MB(2026-07 修订——原始的 15MB 目标早于捆绑 CLI sidecar)14.98MB(dowse-app_0.9.0_x64-setup.exe,已发布版本)
全文索引构建,10,000 个文件 / 437MB数秒(计划中的仅文件名快速路径)10.0–10.6s——当前的全内容 dowse index,并非计划中的仅文件名 MFT 路径
全文索引构建 + OCR,15,100 个文件(含 5,100 张图片)—首次扫描约 46.6s,同一轮中已对全部 5,100/5,100 张图片完成 OCR——无待处理项,无需第二轮
搜索延迟,P50(5 个必测类别)—在 15,100 个文档的索引上,单词 / 中文短语 / 英文短语 / 多词 AND / 无结果,延迟为 30.7–161.1ms
搜索延迟,P95—39.1–172.3ms,相同的 5 个类别
ext: 筛选查询延迟—P50 为 155.6ms,与有结果查询类别的区间相同
索引大小 ÷ 语料大小—0.36(纯文本),低于 v0.6.1 该轮的 0.54

全语料测试行使用与上述 v0.6.1 第 3 轮数据相同的 10,000 个文件 / 437.66MB 文本语料,加上 5,100 张合成的 480×200 OCR 图片(89.8MB);语料逐字节相同,直接复用而非重新生成。与 v0.6.1 相比,索引速度约快 2 倍,磁盘上的文本索引约小三分之一;这两项都与新分词器的效果相符(小写规范化、按拉丁词的字母数字边界拆分),从而生成更精简的词项字典。无结果查询从 135ms(v0.6.1)降至受启动噪声影响的 31ms,这与扫描更少的索引后即可确认词项不存在相符。本次发布的 OCR 识别速度没有变化,因为流水线未作改动:单张图片识别仍约为 170ms,对相同图片重复运行时低于 30ms 的读数则是 OS 级缓存造成的,并非实际识别。全语料文本加 OCR 的处理时间从 83s 降至 46.6s,得益于更快的分词器和写入路径,而非识别速度提升。

快速开始

下载——从最新版本获取安装程序(dowse-app_*_x64-setup.exe),运行后按 `Alt+`` 唤出。

安装程序未经签名,因此首次运行时 Windows SmartScreen 会发出警告。要继续操作,请点击 更多信息,然后点击 仍要运行。代码签名证书是一项持续支出,对独立项目而言很难证明其合理性;未来版本可能会重新考虑此事。

安装 CLI——库和命令行工具以一个 dowse 包的形式发布:

cargo install dowse                 # once published to crates.io
cargo install --path crates/dowse   # from a local checkout

从源代码构建:

git clone https://github.com/ltspace/dowse && cd dowse

# CLI
cargo run -p dowse -- index D:\docs      # build the index
cargo run -p dowse -- search 限流         # search
cargo run -p dowse -- search "精确短语"   # phrase query
cargo run -p dowse -- add E:\projects     # add another root incrementally (no full rebuild)
cargo run -p dowse -- rules show          # view index rules (excluded dirs, extra extensions, size cap)

# Overlay app (Tauri 2 + Svelte 5)
cd crates/dowse-app
npm install
cargo tauri build      # produces the installer under target/release/bundle

覆盖层应用:按 Alt+\`` 唤出,按 ↑↓选择,按Enter打开,按Ctrl+Enter在资源管理器中显示,按Ctrl+C复制路径,按Esc隐藏。结果按每组 50 条分页;仅在需要时显示精简的‹ 1 / N ›控件,按↓越过最后一条结果或按↑ 越过第一条结果即可切换页面。搜索栏右侧有两个几乎不可见的下拉菜单——文件类型筛选(Ctrl+P)和排序顺序(Ctrl+S,相关度/最新/最早/最大);只有选中非默认值时,两者才会保持微弱可见。右键点击结果行可打开原生的资源管理器风格上下文菜单(打开/在文件夹中显示/复制路径/复制名称)。右上角的固定切换按钮可在窗口失去焦点时保持其打开(仅限当前会话,重启后重置)。输入框为空时,覆盖层会列出最近的搜索记录(最近 10 条,存储在本地)——按 ↑↓/Enter重新使用某条记录,按Delete删除。按Ctrl+,` 打开设置面板——包括常规设置(重新绑定快捷键、开机自启动、界面语言)和索引规则(排除的目录、额外的文本扩展名、单文件大小上限)。

Dowse 设置面板的英文界面,包含全局快捷键、启动行为和界面语言的控件

图像结果的预览窗格:源图像以内嵌方式显示在旁边,并附有 OCR 提取的文本,匹配词语已高亮显示

MCP 服务

dowse mcp 会通过标准输入输出启动一个只读 MCP 服务,将本地索引提供给 AI Agent:

claude mcp add --scope user dowse -- dowse mcp

包含四种工具:search(查询、受限的 limit/offset、按相关度/修改时间/大小排序的 sort、逗号分隔的 ext 筛选器,以及 total_hits 计数)、preview(单个命中项的长上下文和元数据)、read_file_chunk(从索引快照中读取受限的分页文本)和 index_status(文档数量、索引健康状态、当前启用的索引规则)。该服务不会触及索引写入器,也不会打开任意路径——它只会在每次调用前重新加载读取器,因此可与覆盖层应用或正在运行的 dowse watch 会话同时运行,而不会产生写入冲突。

架构

                 ┌─────────────────────────────────────────┐
                 │                   dowse                   │
                 │  library core: tantivy index · jieba      │
                 │  segmentation · encoding detection ·      │
                 │  text extraction (txt/md/pdf/code/        │
                 │  docx/xlsx/pptx) · OCR pipeline           │
                 │  ─────────────────────────────────────    │
                 │  CLI + MCP server (default `cli` feature) │
                 └────────────────────┬────────────────────┘
                                      │ library API
                                      │ (default-features = false)
                              ┌───────┴────────┐
                              │    dowse-app    │
                              └────────────────┘

共有两个 crate。dowse 同时是搜索库和命令行工具:库核心提供搜索 API,而 CLI 和只读 MCP 服务则通过默认的 cli 功能集成在一个二进制文件中——CLI 用于脚本编写和调试,MCP 服务用于 AI Agent。dowse-app 是基于 Tauri 2 + Svelte 5 的常驻覆盖层应用,是一个独立 crate,仅将 dowse 作为库依赖(default-features = false,因此不会引入 CLI 及其依赖项)。

索引更新采用两层机制:运行期间,文件系统事件会驱动增量更新(500ms 防抖窗口,批量提交);启动时,则通过比较修改时间和大小来协调应用未运行期间发生的更改。在具有管理员权限的 NTFS 卷上,同样的两层机制由 MFT 枚举和 USN 日志提供支持,取代目录遍历和文件系统事件监视;两种路径会产生相同的结果,上层无法判断当前启用的是哪一种。

路线图

#范围状态
1CLI 索引和搜索:中文分词、GBK 检测、高亮✅ 已完成
2浮窗:全局快捷键、不透明面板、键盘导航✅ 已完成
3增量索引:文件监视、启动时对账✅ 已完成
4OCR 管线:将截图文字加入索引✅ 已完成
5MCP 服务✅ 已完成
6NTFS MFT / USN Journal 快速通道✅ 已完成(仅管理员可用的快速通道本身尚未在真实硬件上验证——请参阅设计文档中的实现说明)
7语义搜索(嵌入、混合排序)🔍 探索中

技术栈

Rust · tantivy · jieba · Tauri 2 · Svelte 5 · Windows.Media.Ocr · notify · Win32(MFT/USN Journal)

设计文档

隐私政策

索引存储在本地(%LOCALAPPDATA%\dowse)。不访问网络,不收集遥测数据。你可以自行验证:在资源监视器或防火墙工具中监视进程,确认它没有建立任何出站连接。发布版本还附带安装程序的 SHA-256 校验和,方便你验证下载内容。

完整政策——数据收集、存储、保留期限和联系方式:PRIVACY.md。

许可证

采用 MIT 或 Apache-2.0 双重许可,你可以自行选择。

一点说明

小时候,我只有一部 Coolpad 手机。在漫长的无网时光里,我会打开 文件管理器,逐个查看文件,试着弄清它们是什么、彼此之间有什么联系;而文件散落各处,我永远 不知道它们里面装着什么,始终迷失其中。

上大学时,我买了一台 QNAP NAS,发现了 Qsirch。它确实很好用,只可惜只能在 NAS 上运行, 没有 Windows 版本。

screenpipe 抢先一步做出了它,一种原始版本的《黑镜》S1E3《你的全部历史》中那种记忆颗粒。非常未来主义,非常后现代,接近本地搜索的终极形态,但对于当下的世界来说,它实在太重了。

于是我做了 dowse。

电影《Her》读起来像一则预言:用不了多久,AI 就会运行我们的个人电脑。dowse 从这个想法中汲取灵感,提供 MCP 接口供 AI 调用,只不过它搜索的是你自己机器上的个人文件。

如果你有点强迫倾向,喜欢把东西整理得井井有条,想真正掌控自己的文件系统,那么这就是为你准备的。我同样非常在意性能和美感。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。