monkeSearch

Offline-First Semantic Search for Your Local Files

Abstract

monkeSearch is an open-source, offline-first desktop search tool that allows you to find local files using natural language. Instead of relying on simple keyword matching, it uses embedding models to understand the semantic meaning of your query, allowing you to search for concepts, not just words. We made it Temporal Aware, such that it can parse time-related queries like "documents from last week" and apply them as filters. The entire process, from indexing to searching, runs locally on your machine. Our project utilizes different backends optimized for each OS to deliver the best performance and user experience across platforms.


Implementation Versions: There are multiple implementations in different branches written to achieve the same task for testing purposes. Rigorous evaluations and testing will be done before finalizing a single one for the main release.


For Agentic Use: The legacy LLM-based implementations (branches below) are particularly suitable for integration into larger AI pipelines and agentic systems. These versions allow direct filesystem access through natural language without modifying any files, leveraging OS-level scoped safety through Spotlight. If you're building autonomous agents or LLM orchestration systems that need file discovery capabilities, these branches provide a direct LLM-to-filesystem bridge without the overhead of maintaining a separate index.

Cross-Platform Architecture

Performance: macOS vs. Windows

Query Time Comparison Chart

Query Time: macOS demonstrates significantly faster average search times due to its LEANN backend.

Index Size Comparison Chart

Index Size: On-disk size of the embedding database for different numbers of files.

Indexing Speed Comparison Chart

Indexing Speed: How many files per second each system can process during the initial build.

macOS Deep Dive: The Recompute Trade-Off

Query Time with Recompute Chart

Search Speed: Disabling recompute yields lightning-fast searches (milliseconds), while enabling it dramatically slows down queries (seconds).

Index Size with Recompute Chart

Space Savings: Enabling recompute creates a tiny index (over 97% smaller), saving significant disk space.

Indexing Speed with Recompute Chart

Build Speed: The initial indexing speed is nearly identical, as the main workload (embedding generation) is the same in both modes.

The "Recompute" feature on macOS offers a clear trade-off: enable it to save a massive amount of disk space at the cost of much slower search performance. Disable it for instant results, but with a larger storage footprint.

Support the Project

monkeSearch is an open source project. If you find it useful, please consider starring our repository on GitHub to show your support!

https://github.com/monkesearch/monkeSearch