一个参考 360 / 腾讯电脑管家 / 火绒 深度清理理念开发的 Windows 系统垃圾清理工具,支持 35 条内置清理规则、Lua 脚本扩展 和 MCP 协议(可为 AI Agent 提供磁盘清理能力)。
- 6 大类 35 条内置规则 — 覆盖系统垃圾、浏览器垃圾、开发工具、应用缓存、系统优化
- 3 种运行模式
- 交互式 CLI — 彩色终端界面,方向键勾选,可视化清理结果
- 非交互 CLI — 命令行直接指定规则编号批量清理,支持
--dry-run预览 - MCP 服务器 — 通过 stdio 对外提供 JSON-RPC 接口,AI Agent 可调用
- Lua 脚本扩展 — 零代码配置表模式 + 函数回调模式,灵活扩展自定义清理规则
- 编译到二进制 — Lua 内置脚本通过
include_str!嵌入,单文件可执行,无需外部依赖 - 管理员检测 — 自动识别是否以管理员身份运行,提示需要提权的操作
- 安全模式 — 规编号 0 一键执行所有安全规则(不删个人文件),危险规则需手动勾选
git clone https://github.com/your-org/system-tools.git
cd system-tools
cargo build --release编译产物在 target/release/system-tools.exe,可直接分发使用。
在 Releases 页面下载预编译的 Windows 可执行文件。
# 扫描 C 盘,进入交互选择界面
system-tools -d C:
# 加载额外 Lua 脚本
system-tools -d C: -s ./my-scripts
# 跳过扫描直接进入清理
system-tools scan --no-scan交互界面支持:
- 空格勾选/取消规则
- 方向键
↑↓移动 - 自动预选所有安全规则
- 回车确认执行
# 预览:查看指定规则可释放的空间
system-tools clean --items 0 --dry-run
# 执行所有安全规则
system-tools clean --items 0
# 执行指定规则
system-tools clean --items 1,2,4,5,13
# 执行不安全规则 (回收站 + 休眠文件)
system-tools clean --items 32,34配置到 AI Agent 的 MCP 客户端中(如 Claude Desktop):
{
"mcpServers": {
"system-tools": {
"command": "path/to/system-tools.exe",
"args": ["mcp"]
}
}
}提供的 5 个 MCP 工具:
| 工具 | 功能 |
|---|---|
scan_disk |
扫描磁盘空间占用 |
list_clean_rules |
列出所有清理规则 |
execute_clean |
执行清理(支持 dry-run) |
get_disk_info |
获取磁盘容量信息 |
clean_path |
清理指定路径 |
| # | 规则 | 说明 |
|---|---|---|
| 1 | Windows 驱动安装残留 | 删除 C:\Drivers 中的驱动解压临时文件 |
| 2 | 用户临时文件 | 删除 %TEMP% 目录内容 |
| 3 | Windows 系统临时文件 | 删除 C:\Windows\Temp 目录内容 |
| 4 | Windows 更新缓存 | 删除 SoftwareDistribution\Download 更新补丁 |
| 5 | Windows 传送优化文件 | 删除 DeliveryOptimization 局域网分享缓存 |
| 6 | Windows 错误报告 | 删除 WER ReportArchive 崩溃历史报告 |
| 7 | 系统内存转储文件 | 删除 MEMORY.DMP 和 Minidump 蓝屏转储 |
| 8 | Windows 日志文件 | 删除 C:\Windows\Logs 日志 (需确认) |
| 9 | 缩略图缓存 | 删除 thumbcache_*.db 图片/视频预览缓存 |
| 10 | 字体缓存 | 删除 FontCache 字体渲染缓存 |
| 11 | 预读取文件 | 删除 C:\Windows\Prefetch 启动预读文件 |
| 12 | Windows 图标缓存 | 删除 IconCache.db 图标缓存 |
| # | 规则 | 说明 |
|---|---|---|
| 13 | Edge 浏览器缓存 | 删除 Edge 页面和代码缓存 |
| 14 | Chrome 浏览器缓存 | 删除 Chrome 页面和代码缓存 |
| 15 | Firefox 浏览器缓存 | 删除 Firefox 磁盘缓存 |
| 16 | Edge/Chrome Cookie | 删除 Cookie 记录 (需确认) |
| 17 | IE 浏览器缓存 | 删除 IE 临时文件 |
| # | 规则 | 说明 |
|---|---|---|
| 18 | Rust .cargo 缓存 | 删除 registry 索引和 git 检出缓存 |
| 19 | Rustup 多余工具链 | 保留默认工具链,删除旧版本 |
| 20 | Go 模块缓存 | 删除 go/pkg/mod 下载缓存 |
| 21 | NuGet 包缓存 | 删除 .NET NuGet 包缓存 |
| 22 | Maven 本地仓库 | 删除 ~/.m2/repository |
| 23 | Gradle 构建缓存 | 删除 ~/.gradle/caches |
| 24 | pip 下载缓存 | 删除 %LOCALAPPDATA%\pip\cache |
| 25 | npm 缓存 | 删除 %APPDATA%\npm-cache |
| 26 | Yarn 缓存 | 删除 %LOCALAPPDATA%\Yarn\Cache |
| 27 | VS Code 临时数据 | 删除缓存、日志、崩溃报告 |
| # | 规则 | 说明 |
|---|---|---|
| 28 | 微信文件 | 删除 Documents\WeChat Files (需确认) |
| 29 | 微信程序缓存 | 删除 xwechat_files 缓存 |
| 30 | QQ/TIM 临时文件 | 删除 Tencent Files 临时缓存 (需确认) |
| 31 | 下载目录旧文件 (>30天) | 删除 30 天前的下载文件 (需确认) |
| 32 | 回收站 | 清空回收站 (需确认) |
| 33 | Steam 下载缓存 | 删除 Steam 下载临时文件 |
| # | 规则 | 说明 |
|---|---|---|
| 34 | 休眠文件 | powercfg -h off 禁用休眠释放 hiberfil.sys (需管理员) |
| 35 | DNS 解析缓存 | ipconfig /flushdns 清除 DNS 缓存 |
| 类别 | 规则示例 |
|---|---|
| Docker | 构建缓存、镜像/容器缓存 |
| Conda | 包缓存 (pkgs)、索引缓存 |
| JetBrains IDE | IntelliJ / PyCharm / GoLand / WebStorm / CLion 缓存 |
| .NET | SDK 临时文件、VS 构建临时文件 |
| Android | SDK 构建缓存、Android Studio 缓存 |
| 前端 | pnpm 存储、Electron 缓存 |
| Git | Git LFS 缓存 |
| 通信 | 钉钉、企业微信、飞书、Discord、Slack、Teams 缓存 |
| 办公 | WPS Office、Microsoft Office、Notion 缓存 |
| 媒体 | Adobe Creative Cloud、VLC/mpv 播放器缓存 |
| 系统额外 | Windows 应用商店、搜索索引缓存 |
| 游戏 | Epic Games Launcher、Ubisoft Connect 缓存 |
在 scripts/ 目录创建 .lua 文件:
clean_paths = {
{ name = "清理 XXX 缓存", paths = { "%APPDATA%\\xxx\\cache" }, category = "自定义" },
{ name = "清理 YYY 日志", paths = { "%USERPROFILE%\\yyy\\logs" }, category = "自定义" },
}function get_rules()
return { { name = "灵活清理" } }
end
function on_scan()
log("开始扫描...")
end
function on_clean(name)
local path = get_env("USERPROFILE") .. "\\AppData\\Local\\MyApp\\Cache"
local size = dir_size(path)
if size > 0 then
log(string.format("发现缓存: %d 字节", size))
delete_dir(path)
end
end| 函数 | 用途 |
|---|---|
get_env(name) |
获取环境变量 |
dir_size(path) |
计算目录大小 (字节) |
delete_dir(path) |
删除目录 |
delete_file(path) |
删除文件 |
cmd_output(cmd) |
执行命令并返回输出 |
log(msg) |
输出日志到 stderr |
system_tools/
├── src/
│ ├── main.rs # CLI 入口、参数解析、模式分发
│ ├── rules.rs # 35 条内置规则、类型定义、路径解析
│ ├── cleaner.rs # 清理执行引擎
│ ├── scanner.rs # 目录扫描引擎
│ ├── ui.rs # 交互式终端 UI
│ ├── lua_engine.rs # Lua 脚本引擎
│ └── mcp.rs # MCP JSON-RPC 服务器
├── scripts/
│ ├── builtin_rules.lua # 内置 Lua 规则 (编译进二进制)
│ └── custom_rules.lua # 用户自定义规则模板
├── lua_examples/
│ ├── example_config.lua # 配置表模式示例
│ └── example_function.lua # 函数回调模式示例
├── mcp.json.example # MCP 客户端配置示例
├── Cargo.toml
├── README.md # 简体中文说明
├── README.zh-TW.md # 繁體中文說明
└── README.en.md # English Documentation
- Rust 1.85+
- Windows 10/11 (Lua 脚本通过
%VAR%环境变量解析路径) - PowerShell (用于获取磁盘信息和清空回收站)
cargo build --releaseMIT License