๐ฅญ Awake your data
Mango Finder (formerly MangoDesk) is a local-first desktop app for searching your local documents with natural language.
It helps you find information based on what you remember, not file names or folder structures.
Mango Finder is especially useful in scenarios where you have a large amount of local documents and want to retrieve information using natural language.
-
๐ Personal Document Libraries
- Years of accumulated notes, PDFs, Word files, Markdown files. etc
- Example: โthat note about how rust handles memory ownershipโ
-
๐ SVN / Git Repositories
- Search through design docs, READMEs, technical proposals, and historical solutions
- Example: โthe solution we used for the permission system refactorโ
-
๐ข Team or Company Knowledge Base
- Internal documents, project docs, meeting notes, onboarding materials
- Example: "Q4 budget planning and team feedback from last year"
-
๐ Research and Study Materials
- Papers, experiment records, literature notes
- Example: โrecent breakthroughs in large language model efficiencyโ
-
โ๏ธ Legal and Financial Documents
- Contracts, policy documents, reports
- Example: โclauses regarding data privacy and user consentโ
-
๐ญ Search by meaning
- Find documents by describing what you remember, even if you donโt recall exact titles or locations
-
๐ Exact Keyword Match
- Instantly locate files using precise terms from file paths or content, ideal for finding specific phrases or technical strings.
-
๐ Find Similar Files
- Find visually similar images using perceptual hashing, semantically similar documents, or audio files with matching content
- One click to discover related files based on visual, semantic, or audio fingerprint similarity
-
๐ Multilingual & Cross-language Search
- Search across 100+ languages seamlessly. Find English documents using Chinese queries, or vice versa, with zero configuration required
-
๐ Private by default
- All data stays on your device, ensuring your privacy
-
๐ฅ๏ธ Self-Hosted Model Support
- Integration with Ollama and vLLM for image analysis using local vision models (e.g., LLaVA)
- Keep your data completely private by running vision models on your own hardware
-
โก Fast and efficient
- Instant search results with optimized indexing system
-
๐ Real-time file & directory watching
- Automatically detects file and folder changes (add / modify / delete) and keeps index and search results up to date
-
๐ Works with your existing local files
- No need to reorganize folders or rename files โ Mango Finder works with what you already have
Indexing
Supports three processing modes: Local (fully offline), Self-Hosted (Ollama/vLLM), and Cloud (remote AI services).
Search
- Frontend
- WebView๏ผTauri๏ผ
- PNPM
- Node.js
- Backend
- Rust
- Tauri Core
node v20+ required
It is recommended to use nvm to manage multiple node versions.
pnpm v9+ required
If you haven't installed pnpm, you can install it with the following command:
npm install pnpm -gpnpm irust v1.94.0+ required
Install tools: https://www.rust-lang.org/tools/install
Install Tauri Prerequisites: https://tauri.app/start/prerequisites/
The audio transcription feature uses whisper.cpp. Different operating systems require different dependencies.
Compiling on Windows requires CMake and LLVM/Clang 18 (Note: LLVM 19/20/22 have compatibility issues, please use LLVM 18).
-
Install CMake 4.3
Download from cmake-4.3.0
-
Download and Install LLVM 18
- Visit LLVM 18.1.8 Release
- Download
LLVM-18.1.8-win64.exe - Check "Add LLVM to the system PATH for all users" during installation
-
Verify installation
cmake --version clang --version
The clang version should show
18.1.8 -
Set environment variables (permanent)
- Press
Win + R, typesysdm.cpl, press Enter - Click "Advanced" tab โ "Environment Variables"
- Under "User variables", click "New" and add:
Variable name Value CXXFLAGS/utf-8CFLAGS/utf-8- Click OK and restart your terminal for changes to take effect
- Press
-
Build the project (first time only)
Open "x64 Native Tools Command Prompt for VS 2022" (search from Start Menu), then build:
cd your-project-path\src-tauri cargo buildโ ๏ธ Important Notes:- The
/utf-8flag is required to resolve encoding issues - If previous build failed, run
cargo clean -p whisper-rs-systo clear cache first - After whisper is compiled successfully, subsequent builds can use
pnpm tauri devdirectly in any terminal - VSCode's rust-analyzer plugin auto-checks code on startup. Without MSVC environment, whisper-rs-sys build will fail and show as red in
target/debug/builddirectory. If you've successfully built in "x64 Native Tools Command Prompt for VS 2022", you can ignore this error
- The
macOS usually has Clang built-in. If you encounter issues, install Xcode Command Line Tools:
xcode-select --installMost Linux distributions require C/C++ build tools:
Ubuntu/Debian:
sudo apt update
sudo apt install build-essential cmakeFedora/RHEL:
sudo dnf install gcc-c++ make cmakeArch Linux:
sudo pacman -S base-devel cmakeDownload the required model files from one of the following sources:
- GitHub Release: model.zip - Contains all required files
- Hugging Face: moyangzhan/mango-finder - Manually download the following files:
- *.onnx model files
- *_tokenizer.json tokenizer files
- whisper-small-q8_0.bin
After downloading, extract the files to the src-tauri/assets/model directory.
Required Files:
- embedding.onnx
- embedding_tokenizer.json
- vision.onnx
- vision_tokenizer.json
- whisper-small-q8_0.bin
A Tauri app has at least two processes:
- the Core Process (
backend) - the WebView process (
frontend)
Both backend and frontend start with a single command:
pnpm tauri devpnpm tauri buildAfter building, the executable file is usually located in src-tauri/target/release/.
windows: src-tauri/target/release/bundle/msi/Mango Finder_0.1.0_x64_en-US.msi
A: Mango Finder follows a local-first architecture to ensure data privacy:
- All document indexing and search operations are performed locally on your device
- No data is transmitted to external servers during normal operation
- Only when processing images or audio files, remote models may be used (if enabled)
- These remote models are disabled by default and must be manually enabled by users
- All user data remains on the local device by default
As shown in the architecture diagram above, the entire processing pipeline is designed to keep data local, ensuring maximum privacy and security.
A: The codebase includes multiple models serving different purposes:
src-tauri/assets/model/*- These models run locally on users' computers for basic document processing
- Prioritized for privacy and performance
gpt-5-miniandgpt-4o-mini-transcribe- Designed for image and audio parsing
- Disabled by default, can be enabled if needed
- Note: We plan to replace these with local alternatives when available
- Kept as optional features for self-hosting scenarios
qwen-turbo,deepseek-chat, anddeepseek-reasoner- Prepared for upcoming features like:
- Knowledge graph generation
- Advanced document analysis
- Also serves as a foundation for developers who want to customize with these models
- Maintains flexibility for future feature expansion
see the LICENSE file for details.
Contributions of all kinds are welcome, including but not limited to:
- ๐ Reporting bugs
- ๐ก Suggesting new features or improvements
- ๐ Improving documentation
- ๐ง Submitting code (pull requests)
Before submitting a pull request, please consider:
- Fork this repository
- Create a new branch (git checkout -b feature/xxx)
- Ensure pnpm tauri dev runs successfully locally
- Commit changes (git commit -m 'feat: xxx')
- Push the branch (git push origin feature/xxx)
- Submit a Pull Request
Support Mango Finder if you find it helpful:
- Starring the repository on GitHub
- Recommending it to others
- Sharing your experience



