Windows 终端内运行的磁盘清理工具(Python + Textual TUI)。 清理用户目录缓存、已卸载软件残留、C 盘系统垃圾,全程预览确认后再删、默认进回收站可恢复。
🖥️ 宝塔风格多 Tab 终端界面 · 🌐 中英双语 · 🛡️ 白名单保护 + 回收站可恢复
这个程序源于我自己的真实困扰:日常开发 + 用 AI 辅助开发,日积月累产生了大量 编程语言包、工具链、缓存和垃圾数据(Yarn/npm/pnpm 缓存、Go 编译缓存、已卸载软件的 残留目录、几十 GB 的 WSL 虚拟磁盘……),C 盘空间被无声吃掉,却不知道哪些能删、 哪些不能删。
于是我做了这个工具:用「可删 / 谨慎 / 保留」三级标注 + 白名单保护 + 回收站可恢复, 让清理变得安全可控——勾选 → 确认 → 进回收站,拿不准的就不动。
| Tab | 功能 |
|---|---|
| 1 仪表盘 | C 盘容量条、可清理汇总、回收站、WSL 压缩、主题切换、空间预警 |
| 2 一键清理 | 25 条分类缓存规则,勾选后清理(进回收站);推荐选择/仅安全项引导 |
| 3 AppData | 按目录/按程序看占用;勾选『可删』项清理(程序视图只删缓存子目录,本体保留) |
| 4 软件残留 | 强信号识别已卸载软件残留(AppData 候选 + Program Files 孤儿 + 回收站) |
| 5 C盘占用 | 根目录 + 系统文件分析(pagefile/更新缓存/WinSxS),可删项可清理 |
| 6 大文件 | 扫描用户目录 ≥100MB 文件,只报告不删除 |
| 7 日志 | 清理历史记录(jsonl) |
| 8 规则管理 | 每条清理规则的启停(YAML 配置) |
| 9 白名单 | 受保护路径,永不清理(.ssh、凭据等默认内置) |
| 0 已装程序 | 已安装程序全清单(注册表+开始菜单+ProgramFiles),只读可搜索 |
其他亮点:
- 🎨 3 套主题:默认深蓝 / 微信绿
#07C160/ 腾讯蓝#4582E6(官方设计系统色板) - 🌐 中英双语:自动检测系统语言,
l键或按钮切换,--lang en|zh|auto命令行指定 - ⌨️ 空格键选中:↑↓ 移动光标 → 空格 选中/取消(☐→☑),顶部实时显示选中项
- 🔍 强信号残留检测:注册表 217+ 已装程序 ↔ exe 版本信息 ↔ AppData 目录交叉比对,误报率低
- 📦 WSL 一键压缩:识别 WSL 虚拟磁盘(40G+),工具内直接 Optimize-VHD 压缩
- Windows 10/11
- Python 3.10+(推荐 3.12)
:: 1. 创建虚拟环境(建议放 D 盘或其他盘,不占 C 盘)
py -3.12 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
:: 2. 普通启动
run.bat
:: 3. 管理员启动(可清理系统级项目 C:\Windows\Temp 等)
run-admin.bat
:: 4. 指定语言 / 干跑模式
.venv\Scripts\python.exe app.py --lang en
.venv\Scripts\python.exe app.py --dry-run- 选择:↑↓ 移动光标,空格 选中/取消;一键清理页有「推荐选择」按钮一键勾选全部安全缓存
- 删除:点「清理/删除选中」→ 确认弹窗 → 进回收站(可恢复)
- 风险分级:🟢 绿=安全可勾(纯缓存)· 🟡 黄=谨慎(删后需重新登录/下载)· 🔴 红=不可删(系统文件/登录数据,无勾选入口)
- 按
?查看完整帮助
- 默认
lang: auto按系统语言自动切换(中文系统→中文,其他→English) - 仪表盘「切换语言」按钮或
l键切换(写入 config,重启生效) python app.py --lang en|zh|auto命令行指定
- 全程确认后删:勾选 → 确认弹窗 → 进回收站(send2trash),绝不静默删除
- 白名单保护:
.ssh、.git-credentials、NTUSER.DAT、Desktop 等永不清理 (realpath 解析 junction/symlink,防路径穿透) - 风险分级:admin 级规则默认不勾选、非管理员自动跳过;回收站清空/WSL 压缩双重警告
- dry-run 模式:
--dry-run只模拟不真删 - 安全审计见 SECURITY.md
app.py Textual TUI(10 Tab)
core/
i18n.py 中英文翻译字典 + 语言检测/切换
themes.py 3 套主题(微信绿/腾讯蓝/深蓝)
cleaner.py 删除执行(回收站/永久/清空,白名单拦截,注入防护)
whitelist.py 白名单(realpath 规范化)
rules.py 规则加载 + 后台并行扫描
leftovers.py 已卸载软件残留检测(强信号)
appdata.py AppData 按目录/按程序分析
cdisk.py C 盘根目录分析
installed.py 已装程序清单(注册表/开始菜单/ProgramFiles)
wsl.py WSL 虚拟磁盘压缩
logger.py 清理历史日志
rules/*.yaml 25 条清理规则(YAML 配置,可增删)
config.yaml 白名单 / 语言 / 阈值配置
- Textual 8 — 终端图形界面(TUI)
- psutil — 磁盘容量监控
- send2trash — 删除进回收站(可恢复)
- PyYAML — 规则与配置
MIT License — 详见 LICENSE