{"id":38565421,"url":"https://github.com/moyangzhan/mango-desk","last_synced_at":"2026-02-06T14:27:27.895Z","repository":{"id":330435393,"uuid":"1122733447","full_name":"moyangzhan/mango-desk","owner":"moyangzhan","description":"Search your files using nature language","archived":false,"fork":false,"pushed_at":"2026-02-03T12:10:08.000Z","size":84518,"stargazers_count":170,"open_issues_count":4,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-04T02:24:24.206Z","etag":null,"topics":["ai-search","file-content-search","sematic-search","vector-search"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moyangzhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-25T11:42:14.000Z","updated_at":"2026-02-03T12:06:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/moyangzhan/mango-desk","commit_stats":null,"previous_names":["moyangzhan/mango-desk"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/moyangzhan/mango-desk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyangzhan%2Fmango-desk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyangzhan%2Fmango-desk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyangzhan%2Fmango-desk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyangzhan%2Fmango-desk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moyangzhan","download_url":"https://codeload.github.com/moyangzhan/mango-desk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moyangzhan%2Fmango-desk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29164854,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T12:44:37.655Z","status":"ssl_error","status_checked_at":"2026-02-06T12:44:13.991Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-search","file-content-search","sematic-search","vector-search"],"created_at":"2026-01-17T07:53:39.467Z","updated_at":"2026-02-06T14:27:27.877Z","avatar_url":"https://github.com/moyangzhan.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["File manager","File management"],"readme":"\u003csup\u003e[English](./README.md) | [中文](./README_CN.md)\u003c/sup\u003e\n\n# Mango Desk\n\n**🥭 Awake your data**  \n\n![image](./screenshots/work.png)\n\n[![Download](./screenshots/download-ready.svg)](https://github.com/moyangzhan/mango-desk/releases)\n\n## What is Mango Desk?\n\nMango Desk is a local-first desktop app for searching your local documents with natural language.\n\nIt helps you find information based on what you remember, not file names or folder structures.\n\n![search](./screenshots/search.gif)\n\n### 📌 Use Cases\n\nMango Desk is especially useful in scenarios where you have **a large amount of local documents** and want to retrieve information using natural language.\n\n\n#### Typical Use Cases\n\n- 📝 **Personal Document Libraries**\n  - Years of accumulated notes, PDFs, Word files, Markdown files. etc\n  - Example: *“That note where I summarized Rust ownership rules”*\n\n- 📂 **SVN / Git Repositories**\n  - Search through design docs, READMEs, technical proposals, and historical solutions\n  - Example: *“Where is the document about the permission refactor?”*\n\n- 🏢 **Team or Company Knowledge Base**\n  - Internal documents, project docs, meeting notes, onboarding materials\n  - Example: *\"Find all Q4 meeting notes about budget planning\"*\n  - Example: *\"What are the company policies regarding remote work?\"*\n\n- 📚 **Research and Study Materials**\n  - Papers, experiment records, literature notes\n  - Example: *“What is the latest research on AI?”*\n\n- ⚖️ **Legal and Financial Documents**\n  - Contracts, policy documents, reports\n  - Example: *“What is the latest company policy on data privacy?”*\n\n### ✨ Features\n\n- 💭 **Search by meaning, not file names**\n  - Find documents by describing what you remember, even if you don’t recall exact titles or locations\n\n- 📍 **Search by path**\n  - Find documents by multiple keywords if you remember some pecific parts of the file path\n\n- 📂 **Works with your existing local files**\n  - No need to reorganize folders or rename files — Mango Desk works with what you already have\n\n- 👀 **Real-time file \u0026 directory watching**\n  - Automatically detects file and folder changes (add / modify / delete) and keeps index and search results up to date\n\n- ⚡ **Fast and lightweight**\n  - Instant search results without slowing down your system\n\n- 🔒 **Private by default**\n  - All data stays on your device, ensuring your privacy\n\n### 🏗️ Architecture\n\n**Indexing**\n\n![indexing](./screenshots/mango-desk-indexing.png)\n\n`The self-hosted model part is under development and will be integrated according to the ollama interface.`\n\n**Search**\n\n![search](./screenshots/mango-desk-search.png)\n\n### 🛠️ Technology Stack\n\n* Frontend\n  * WebView（Tauri）\n  * PNPM\n  * Node.js\n* Backend\n  * Rust\n  * Tauri Core\n\n## 🚀 Setting Up\n\n### 1. Frontend\n#### Node\n`node` v20+ required\n\nIt is recommended to use [nvm](https://github.com/nvm-sh/nvm) to manage multiple `node` versions.\n\n#### PNPM\n\n`pnpm` v9+ required\n\nIf you haven't installed `pnpm`, you can install it with the following command:\n\n```shell\nnpm install pnpm -g\n```\n\n#### Install dependencies\n\n```sh\npnpm i\n```\n\n### 2. Backend(Rust)\n`rust` v1.90.0+ required\n\nInstall tools: [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install)\n\n### 3. Tauri\n\nInstall Tauri Prerequisites: \n[https://tauri.app/start/prerequisites/](https://tauri.app/start/prerequisites/)\n\n## ▶️ Development Run\n\nA Tauri app has at least [two processes](https://tauri.app/concept/process-model/):\n\n- the Core Process (`backend`)\n- the WebView process (`frontend`)\n\nBoth backend and frontend start with a single command:\n\n```sh\npnpm tauri dev\n```\n\n## 📦 Building\n\n\n```sh\npnpm tauri build\n```\n\nAfter building, the executable file is usually located in `src-tauri/target/release/`.\n\nwindows: `src-tauri/target/release/bundle/msi/Mango Desk_0.1.0_x64_en-US.msi`\n\n## ❓ FAQ\n### Q: How does Mango Desk ensure data privacy?\n\nA: Mango Desk follows a local-first architecture to ensure data privacy:\n\n#### Local Data Processing\n- All document indexing and search operations are performed locally on your device\n- No data is transmitted to external servers during normal operation\n\n#### Exception Cases\n- Only when processing images or audio files, remote models may be used (if enabled)\n- These remote models are disabled by default and must be manually enabled by users\n\n#### Data storage\n- All user data remains on the local device by default\n\n#### Architecture Details\nAs shown in the architecture diagram above, the entire processing pipeline is designed to keep data local, ensuring maximum privacy and security.\n\n### Q: Why are so many models used in the code?\n\nA: The codebase includes multiple models serving different purposes:\n\n#### 1. Active Local Models (Enabled by Default)\n- `bge-base-*`\n- These models run locally on users' computers for basic document processing\n- Prioritized for privacy and performance\n\n#### 2. Remote Models (Optional)\n- `gpt-5-mini` and `gpt-4o-mini-transcribe`\n- Designed for image and audio parsing\n- Disabled by default, can be enabled if needed\n- Note: We plan to replace these with local alternatives when available\n- Kept as optional features for self-hosting scenarios\n\n#### 3. Reserved Models (Future Features)\n- `qwen-turbo`, `deepseek-chat`, and `deepseek-reasoner`\n- Prepared for upcoming features like:\n  - Knowledge graph generation\n  - Advanced document analysis\n- Also serves as a foundation for developers who want to customize with these models\n- Maintains flexibility for future feature expansion\n\n## 📝 License\n\nsee the [LICENSE](LICENSE) file for details.\n\n## 🤝 Contributing\n\nContributions of all kinds are welcome, including but not limited to:\n* 🐛 Reporting bugs\n* 💡 Suggesting new features or improvements\n* 📖 Improving documentation\n* 🔧 Submitting code (pull requests)\n\nBefore submitting a pull request, please consider:\n1. Fork this repository\n1. Create a new branch (git checkout -b feature/xxx)\n1. Ensure pnpm tauri dev runs successfully locally\n1. Commit changes (git commit -m 'feat: xxx')\n1. Push the branch (git push origin feature/xxx)\n1. Submit a Pull Request\n\n## ⭐ Support the Project\n\nSupport Mango Desk if you find it helpful:\n- Starring the repository on GitHub\n- Recommending it to others\n- Sharing your experience","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoyangzhan%2Fmango-desk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoyangzhan%2Fmango-desk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoyangzhan%2Fmango-desk/lists"}