@vintcessun: 午间看到一个解决下载目录乱象的工具,有点离谱——用Rust+Tauri写了个系统托盘文件整理器,内存占用才5MB,还刚补上Linux支持。核心是文件监控加规则引擎,按扩展名或正则自动分类,SQLite记操作历史可一键撤销。隐私方面零上报,…
摘要
介绍了一个开源的桌面文件整理工具Mouzi,基于Rust和Tauri构建,内存占用仅5MB,支持文件监控和规则引擎自动分类,强调隐私零上报。
查看缓存全文
缓存时间: 2026/06/08 09:25
午间看到一个解决下载目录乱象的工具,有点离谱——用Rust+Tauri写了个系统托盘文件整理器,内存占用才5MB,还刚补上Linux支持。核心是文件监控加规则引擎,按扩展名或正则自动分类,SQLite记操作历史可一键撤销。隐私方面零上报,完全离线,连检查更新都不走云。这才是正经做生产力的。
hsr88/mouzi
Source: https://github.com/hsr88/mouzi
Mouzi 🧹🐁
Your downloads, tamed.
Mouzi is a silent, elegant file organizer that lives in your system tray and keeps your Downloads folder (and any other folder) automatically tidy. It runs quietly in the background, monitors selected folders, and moves, renames, or sorts files based on customizable rules.
📸 Screenshots
✨ Features
🔇 Silent by Default
- Runs 24/7 in the background with minimal resource usage (~5 MB RAM)
- Automatically organizes new files as they arrive
- Shows a subtle Windows toast notification with the count of organized files
- Silent autostart with Windows
📁 Smart Rules Engine
- Images (
.jpg,.png,.gif,.webp…) →Downloads/Images/ - Documents (
.pdf,.docx,.xlsx…) →Downloads/Documents/ - Archives (
.zip,.rar,.7z…) →Downloads/Archives/ - Installers (
.exe,.msi…) →Downloads/Installers/ - Music / Video → dedicated folders
- Catch-all rule for everything else
🛠️ Fully Customizable
- Create your own rules with extensions, regex patterns, and destination folders
- Use dynamic placeholders in paths:
{year},{month},{day},{extension},{filename} - Reorder rules by priority - first match wins
🚫 Ignore Rules (.mouziignore)
- Per-folder ignore patterns — like
.gitignorefor your files - Set up via Settings UI or write a
.mouziignorefile manually - Supports wildcards (
*.tmp), exact names (.DS_Store), and folders (node_modules/)
📜 History & Undo
- Every action is logged locally in SQLite
- Undo any single move with one click
- Clear history anytime
🌍 Multi-language
Auto-detects your system language. Supported:
- 🇬🇧 English
- 🇵🇱 Polish
- 🇮🇹 Italian
- 🇩🇪 German
- 🇫🇷 French
- 🇷🇺 Russian
- 🇯🇵 Japanese
(Falls back to English if system language is not supported)
🕶️ Dark Mode
- Follows system theme, or force Light / Dark mode from settings
🔒 Privacy First
- 100% offline - zero cloud, zero file name uploads
- No telemetry by default
- System files ignored -
desktop.ini,Thumbs.db,.DS_Store, and other OS hidden files are never touched - Portable version available - run without installing, leaves no trace in the registry
- All data stored locally in your user profile folder
📥 Download
Windows
| Installer | Size | Best For |
|---|---|---|
Mouzi_0.1.1_x64-setup.exe | ~3.3 MB | Regular users (auto-installer) |
Mouzi_0.1.1_x64_en-US.msi | ~4.7 MB | Enterprise / Active Directory |
Mouzi_0.1.1_x64-portable.exe | ~14 MB | Power users (no install) |
⚠️ Windows 10/11. Requires the Microsoft Edge WebView2 Runtime (pre-installed on most systems).
Linux
| Package | Size | Best For |
|---|---|---|
Mouzi_0.1.0_amd64.AppImage | ~86 MB | Universal — works on most distros |
Mouzi_0.1.0_amd64.deb | ~6.9 MB | Debian, Ubuntu, Mint, Pop!_OS |
Mouzi-0.1.0-1.x86_64.rpm | ~6.9 MB | Fedora, openSUSE, RHEL |
🐧 Linux requirements:
libwebkit2gtk-4.1andlibayatana-appindicator3. Most modern distros have these pre-installed.
SHA-256 Checksums
Mouzi_0.1.1_x64-setup.exe: (see release page)
Mouzi_0.1.0_amd64.AppImage: (see release page)
Mouzi_0.1.0_amd64.deb: (see release page)
Mouzi-0.1.0-1.x86_64.rpm: (see release page)
🚀 Quick Start
- Download Mouzi for your OS using the links above.
- Windows: Install and Mouzi starts automatically with a tray icon (📂).
Linux: Run the AppImage directly, or install the
.deb/.rpmpackage. - Left-click the tray icon to open the popup - see recent actions, stats, and clean manually.
- Right-click the tray icon for the menu:
Clean Now,Settings,Quit. - Drop a file into your
Downloadsfolder and watch it disappear into the right subfolder within 2 seconds.
⚙️ How Rules Work
Rules are evaluated top-to-bottom. The first rule that matches a file wins.
| Condition | Example Match |
|---|---|
| Extensions | jpg, png, gif |
| Regex pattern | .*faktura.* matches faktura_2025.pdf |
Destination path placeholders:
Downloads/Documents/{year}/{month}/
→ Downloads/Documents/2026/05/
📐 Architecture
+---------------------------------------------+
| Frontend (React 19 + TypeScript + Tailwind) |
| +- Popup window (300x420, frameless) |
| +- Settings window (900x650) |
+---------------------------------------------+
| Tauri 2.x Bridge |
+---------------------------------------------+
| Backend (Rust) |
| +- File Watcher (notify crate) |
| +- Rules Engine |
| +- SQLite Database (rusqlite) |
| +- System Tray & Notifications |
+---------------------------------------------+
🛠️ Development
Prerequisites
- Rust (latest stable)
- Node.js 22+
- Windows: Windows SDK / MSVC (Visual Studio Build Tools)
- Linux:
libwebkit2gtk-4.1-dev,libayatana-appindicator3-dev,fuse(see Tauri Linux prerequisites)
Setup
# Clone the repo
git clone https://github.com/yourusername/mouzi.git
cd mouzi
# Install frontend dependencies
npm install
# Run in development mode (hot-reload for both frontend & Rust)
npm run tauri dev
Build from Source
# Production build (MSI + NSIS installer)
npm run tauri build
Output will be in src-tauri/target/release/bundle/.
📋 Roadmap
- MVP with default rules
- Multi-language support
- Dark mode
- History & undo
- Start with Windows (registry Run key)
- Custom folders with local rules
- System files ignored (desktop.ini, Thumbs.db, etc.)
- Check for updates button
-
.mouziignore- per-folder ignore patterns (like.gitignore) - Portable version (single .exe, no installer)
-
Browser temp files ignored (
.crdownload,.part,.tmp) - Grace period option - delay moving files by X minutes (so browser download links stay valid)
- File lock check - skip files currently in use by another process
- Single-instance guard - prevent duplicate processes & tray icons
- First-run popup visibility - show window on initial launch
- Clickable toast - open destination folder from popup notification
- Skip 0KB placeholder files during download
- Per-folder manual/paused mode - collect files but don’t move until user clicks Clean Now
- Scheduled clean mode - run once/2/3/4 times per day instead of real-time
- Batch group selected files - select multiple files, one click to group into a folder
- Export/import rules as JSON (backup + sharing)
- Suggest mode (modal confirmation per file)
- Local AI tagging (ONNX runtime for content classification)
- Rule learning from user manual moves
- Linux port (AppImage, .deb, .rpm)
- macOS port
☕ Support
If Mouzi saves you time and keeps your Downloads folder sane, consider supporting its development:
Or visit the project homepage: mouzi.cc
📄 License
Mouzi is released under the MIT License.
🙏 Acknowledgements
Built with Tauri, React, Tailwind CSS, and Rust.
Made with ❤️ for people who download too much stuff.
相似文章
@iluciddreaming: 磁盘清理工具推荐:Czkawka(Rust 写的,GitHub 31.7k Star)。 能找重复文件、相似图片/视频/音乐、空文件夹、大文件、临时文件,还能清 Exif、优化视频。 速度极快,多线程,支持缓存,后续扫描更快。跨平台 Wi…
推荐一个用Rust编写的开源磁盘清理工具Czkawka,功能强大,支持查找重复文件、相似媒体文件、空文件夹等,跨平台且免费。
@billtheinvestor: 字节跳动开源 UI-TARS Desktop (3.6k)。核心逻辑:100%本地运行、仅看像素、不调API。对比OpenAI/Anthropic云端模式,解决两大痛点:1. 数据隐私(不出机器);2. 零成本延迟(免API费)。构建私密…
字节跳动开源 UI-TARS Desktop,一款100%本地运行、仅基于像素操作且不调用API的桌面自动化工具,解决数据隐私和API费用两大痛点,为构建私密自动化工作流提供了高效开源方案。
@precisox: 一位名叫tw93的中国开发者对他桌面应用吞噬RAM和磁盘空间感到厌倦。他打开Slack,然后…
一位中国开发者创建了Pake,这是一个使用Rust和Tauri从网页构建超轻量桌面应用的工具,与基于Electron的应用相比,大幅降低了内存占用。该开源项目已获得极大关注,GitHub星标超过51,000个。
@geekbb: 基于 Tauri(Rust + Svelte)的桌面应用,将编程 AI 代理、API 客户端、SQL/NoSQL 编辑器、SSH 终端、远程文件浏览器和项目管理看板整合在一个界面中,开发者不用在多个应用之间切换。 https://gith…
Clauge 是一个基于 Tauri(Rust + Svelte)的桌面应用,将编程 AI 代理、API 客户端、SQL/NoSQL 编辑器、SSH 终端、远程文件浏览器和项目管理看板集成在同一界面内,让开发者无需在多个应用间切换。
@vintcessun: 发现新思路:编码 agent 原来可以轻到这个程度。16MB 内存、0% 空闲 CPU、26MB 二进制——这数据在 agent 圈里有点离谱。 它用 Rust 硬怼,17k LoC 就把所有标准工具、权限系统、会话管理、MCP 都塞进去…
Zerostack 是一个用 Rust 编写的极简编码 agent,仅消耗 16MB 内存和 26MB 二进制,通过 feature gate 实现轻量化,支持多种提供商和工具。