
dowse
io.github.ltspacePublished by GitHub account ltspacev0.10.0Updated Oct 24, 2026
Fast local full-text search for Windows files (tantivy + jieba), exposed to AI agents over MCP.
Overview
A Windows-only local full-text search server that lets an AI assistant search your own indexed files, preview hits and read text chunks over stdio.
- What you can do
- Search the local index by query, with limit/offset, sort by relevance, mtime or size, extension filter and total hit count. Preview a single hit with long context and metadata. Read bounded, paginated text chunks from the indexed snapshot. Check index status: document count, index health and active index rules.
- When to use it
- Use it when you want an assistant to find and quote material from files already indexed on a Windows machine — documents, source code, PDFs, Office files or text in screenshots — without uploading them anywhere.
- Requirements
- Windows desktop only; runs as a local process over stdio, started with the dowse mcp command. Requires the dowse CLI (Rust/cargo package) and an existing local index built with the dowse index command. No authentication, environment variables or headers are declared.
Installation
In SourceWeft
- Open dowse in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
English | 简体中文 | 日本語 | 한국어 | Español | Italiano
dowse
Open-source local file content search for Windows. Find file names, PDF and Office contents, source code, and text inside screenshots — one hotkey away.
Website · English product page · Windows file-content search guide(中文)
[License] [Latest release] [CI status] [GitHub stars] [Platform: Windows] [Rust edition 2024] [Downloads] [Glama MCP server score]
The name comes from a dowsing rod.
Motivation
No Windows tool satisfies all three of the following at once:
- Keep a persistent index of file contents, not just file names (Everything can scan contents on demand, but its instant index is centered on names and paths)
- Recognize and index text inside images on ordinary Windows PCs without requiring a Copilot+ device
- One hotkey to summon, full keyboard operation, no perceptible latency
The closest open-source implementation is sist2, but it targets Linux (on Windows it only runs via Docker), treats Chinese text as trigrams, and the project is no longer maintained. dowse is a Windows-native implementation built around these three points.
Features
dowse vs. the alternatives
Chinese text handling
- Word segmentation via jieba, ranking via BM25 (tantivy engine). No trigrams.
- Automatic file encoding detection (chardetng). GBK-encoded files are decoded correctly before indexing — this matters because a large share of Chinese-language documents on Windows, especially older ones, are still saved in GBK rather than UTF-8, and a search tool that assumes UTF-8 will silently mis-index or garble them.
- Multi-term queries default to AND semantics. Quoted phrase queries match on exact position. Inline operators narrow things down further:
path:reports,mtime:>2026-01-01,size:>10mb, uppercaseORbetween groups,-termto exclude. - OCR runs on the Windows-native engine (Windows.Media.Ocr), fully offline. The zh-Hans language pack also covers mixed Chinese/English text, no extra configuration required.
Performance
Design targets; exceeding them is treated as a defect. "Measured" is a from-scratch
benchmark of dowse 0.7.0 (i7-13700K / 24 logical cores / 64GB RAM, single machine,
single session, 2026-07-12), reusing the byte-identical corpus from the v0.6.1 round-3
benchmark for direct comparability. Full raw output (index/search logs, JSON result
files) is kept with the benchmark working directory, outside this repo.
Full-corpus rows measured on the same 10,000-file / 437.66MB text corpus plus 5,100 synthetic 480×200 OCR images (89.8MB) used for the v0.6.1 round-3 numbers above — byte-identical, reused directly rather than regenerated. Indexing is roughly 2x faster and the on-disk text index roughly a third smaller than v0.6.1; both track the new tokenizer (lowercase normalization, alphanumeric-boundary splitting of Latin words) producing a leaner term dictionary. The zero-result query dropped from 135ms (v0.6.1) to a startup-noise-level 31ms, consistent with less index to scan before concluding a term is absent. OCR recognition speed is unchanged this release, since the pipeline was not touched: single-image recognition stays around 170ms, and the sub-30ms readings on repeated identical images are OS-level caching artifacts, not real recognition. The full-corpus text-plus-OCR pass got faster (83s to 46.6s) from the quicker tokenizer and write path, not from faster recognition.
Quick start
Download — grab the installer from the latest release (dowse-app_*_x64-setup.exe), run it, then `Alt+`` to summon.
The installer is unsigned, so Windows SmartScreen will flag it on first run. To proceed, click More info and then Run anyway. A code-signing certificate is a recurring cost that is hard to justify for an independent project; it may be reconsidered for a future release.
Install the CLI — the library and command-line tool ship as one dowse package:
Build from source:
Overlay app: Alt+\`` to summon, ↑↓to select,Enterto open,Ctrl+Enterto reveal in Explorer,Ctrl+Cto copy path,Escto hide. Results are paginated in groups of 50; the compact‹ 1 / N ›control shows only when needed, and pressing↓past the last result or↑ before the first moves between pages. Two nearly invisible dropdowns sit at the right of the search bar — file type filter (Ctrl+P) and sort order (Ctrl+S, relevance / newest / oldest / largest); both stay faint until you select a non-default value. Right-click a result row for a native Explorer-style context menu (open / reveal in folder / copy path / copy name). A pin toggle at the top-right keeps the window open when it loses focus (session-only, resets on restart). With an empty input, the overlay lists your recent searches (last 10, stored locally) — ↑↓/Enterto reuse one,Deleteto remove it.Ctrl+,` opens the settings panel — general (hotkey rebinding, autostart, interface language) and index rules (excluded directories, extra text extensions, per-file size cap).
MCP server
dowse mcp starts a read-only MCP server over stdio, exposing the local index to AI agents:
Four tools: search (query, bounded limit / offset, sort by relevance / mtime / size, comma-separated ext filter, and a total_hits count), preview (long context + metadata for one hit), read_file_chunk (bounded, paginated text from the indexed snapshot), and index_status (document count, index health, active index rules). The server never touches the index writer or opens arbitrary paths — it only reloads the reader before each call, so it can run alongside the overlay app or a live dowse watch session without write contention.
Architecture
Two crates. dowse is both the search library and the command-line tool: the library core exposes the search API, and the CLI plus the read-only MCP server ride behind the default cli feature in a single binary — the CLI for scripting and debugging, the MCP server for AI agents. dowse-app, a Tauri 2 + Svelte 5 resident overlay, is a separate crate that depends on dowse as a library only (default-features = false, so it pulls in neither the CLI nor its dependencies).
Index updates run on a two-tier scheme: while running, file system events drive incremental updates (500ms debounce window, batched commits); at startup, an mtime/size comparison reconciles changes made while the app was not running. On NTFS volumes with admin rights, the same two tiers are served by MFT enumeration and the USN Journal instead of directory walks and file-system-event watching; both paths produce identical results and the upper layers cannot tell which one is active.
Roadmap
Stack
Rust · tantivy · jieba · Tauri 2 · Svelte 5 · Windows.Media.Ocr · notify · Win32 (MFT/USN Journal)
Design docs
- docs/DESIGN-M2-浮窗.md (overlay design, Chinese)
- docs/DESIGN-M3-增量索引.md (incremental indexing design, Chinese)
- docs/DESIGN-M4-OCR管线.md (OCR pipeline design, Chinese)
- docs/DESIGN-M5-MCP.md (MCP server design, Chinese)
- docs/DESIGN-M6-NTFS快速层.md (NTFS fast path design, Chinese)
Privacy Policy
The index is stored locally (%LOCALAPPDATA%\dowse). No network access, no telemetry. You can verify this yourself: watch the process in Resource Monitor or a firewall tool and confirm it opens no outbound connections. Releases also include a SHA-256 checksum for the installer so you can verify the download.
Full policy — data collection, storage, retention, and contact: PRIVACY.md.
License
Dual-licensed under MIT or Apache-2.0, at your option.
A note
As a kid I had a single Coolpad phone. In the long stretches without internet, I would open the file manager and study the files one by one, trying to figure out what they were and how they fit together, forever lost among files scattered everywhere with no idea what any of them held.
In college I bought a QNAP NAS and discovered Qsirch, a genuinely good thing, except it lived only on the NAS and had no Windows version.
screenpipe got there first, a kind of primitive version of the memory grain from Black Mirror S1E3, The Entire History of You. Very future, very post-modern, close to the ultimate form of local search, but far too heavy for the world as it is now.
So I made dowse.
The film Her reads like a prophecy: before long, AI will run our personal computers. dowse takes its cue from that and exposes an MCP interface for AI to call, except what it searches is your own files, on your own machine.
If you are a little obsessive, if you like keeping things in order, if you want real control over your own file system, this is for you. Performance and beauty are things I cared about just as much.
Source: README.md at commit 2449f90
Tools
0Version history
1- v0.10.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
