Skip to content

VDHewei/system-tools.rs

Repository files navigation

system-tools — C 盘空间清理工具

system-tools logo

Rust License MCP

一个参考 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 可执行文件。


使用方式

1. 交互式清理(推荐)

# 扫描 C 盘,进入交互选择界面
system-tools -d C:

# 加载额外 Lua 脚本
system-tools -d C: -s ./my-scripts

# 跳过扫描直接进入清理
system-tools scan --no-scan

交互界面支持:

  • 空格勾选/取消规则
  • 方向键 移动
  • 自动预选所有安全规则
  • 回车确认执行

2. 命令行批量清理

# 预览:查看指定规则可释放的空间
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

3. MCP 服务器模式

配置到 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 清理指定路径

内置清理规则

系统垃圾 (12 项)

# 规则 说明
1 Windows 驱动安装残留 删除 C:\Drivers 中的驱动解压临时文件
2 用户临时文件 删除 %TEMP% 目录内容
3 Windows 系统临时文件 删除 C:\Windows\Temp 目录内容
4 Windows 更新缓存 删除 SoftwareDistribution\Download 更新补丁
5 Windows 传送优化文件 删除 DeliveryOptimization 局域网分享缓存
6 Windows 错误报告 删除 WER ReportArchive 崩溃历史报告
7 系统内存转储文件 删除 MEMORY.DMPMinidump 蓝屏转储
8 Windows 日志文件 删除 C:\Windows\Logs 日志 (需确认)
9 缩略图缓存 删除 thumbcache_*.db 图片/视频预览缓存
10 字体缓存 删除 FontCache 字体渲染缓存
11 预读取文件 删除 C:\Windows\Prefetch 启动预读文件
12 Windows 图标缓存 删除 IconCache.db 图标缓存

浏览器垃圾 (5 项)

# 规则 说明
13 Edge 浏览器缓存 删除 Edge 页面和代码缓存
14 Chrome 浏览器缓存 删除 Chrome 页面和代码缓存
15 Firefox 浏览器缓存 删除 Firefox 磁盘缓存
16 Edge/Chrome Cookie 删除 Cookie 记录 (需确认)
17 IE 浏览器缓存 删除 IE 临时文件

开发工具 (10 项)

# 规则 说明
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 临时数据 删除缓存、日志、崩溃报告

应用缓存 (6 项)

# 规则 说明
28 微信文件 删除 Documents\WeChat Files (需确认)
29 微信程序缓存 删除 xwechat_files 缓存
30 QQ/TIM 临时文件 删除 Tencent Files 临时缓存 (需确认)
31 下载目录旧文件 (>30天) 删除 30 天前的下载文件 (需确认)
32 回收站 清空回收站 (需确认)
33 Steam 下载缓存 删除 Steam 下载临时文件

系统优化 (2 项)

# 规则 说明
34 休眠文件 powercfg -h off 禁用休眠释放 hiberfil.sys (需管理员)
35 DNS 解析缓存 ipconfig /flushdns 清除 DNS 缓存

Lua 内置扩展 (编译进二进制,30+ 条)

类别 规则示例
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 缓存

Lua 脚本扩展

配置表模式(零代码)

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

Lua 可用 API

函数 用途
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 --release

许可证

MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors