夜雨聆风学习资料网

ARTICLE · 979967

分享一个漂亮实用的能分析清理本地 AI 应用缓存的工具

分享一个漂亮实用的能分析清理本地 AI 应用缓存的工具

随着AI工具越用越多越频繁,缓存文件也越堆越多,平常也不注意清理,时间一长,磁盘就开始告警。

虽然市面上有很多清理软件,但是最主要的是针对AI缓存文件的清理,于是就自己开发了这么一款工具,代码已经开源,从评论区获取。

下面介绍一下这款工具:DSHClean!

DSHClean 是一个用 SwiftUI 原生实现的 macOS 清理与维护工具,菜单栏常驻,主窗口提供系统清理、AI 工具分析、应用卸载、磁盘分析等九个模块。

一、菜单栏仪表盘

极简风格,点击菜单栏的托盘图标,展开仪表盘:

菜单栏仪表盘:实时指标、磁盘余量与四个快捷入口
二、功能模块详解
1、系统清理
系统清理:按类别列出,每项都带说明文字

扫描类别:AI 工具缓存(目前还在测试,代码已经开源)、应用缓存、应用日志、沙盒容器缓存、浏览器缓存、开发工具缓存(Xcode DerivedData、npm/pip/Homebrew 等)、系统杂项、废纸篓。

自己了做了一个测试:扫出 28 项 / 26.2GB,其中 AI 工具缓存里仅 claude 一项就有 7.85GB。

2、AI 工具分析(核心特色)

这是开发 DSHClean 的主要原因,可以知道这些 AI 工具到底在我的 Mac 上做了什么?

AI 工具分析:左侧工具列表与总占用,右侧选中工具的详情

操作步骤:

  • 1、进入模块自动开始分析(只读,不删任何东西);
  • 2、左侧是识别到的 AI 工具列表及总占用,右侧是选中工具的详情;
  • 3、详情分两部分——
  • • 占用分布:每个数据目录的大小、占比,以及用途标注(「会话记录」「缓存(可重建)」「模型文件」「登录凭据(勿删)」……);
  • • 最近 7 天写入的文件:按时间排列的写入活动,能看到工具最近在活跃地写什么。
Claude Code 详情:占用分布带用途标注

识别范围:Claude Code / Desktop、Codex、ChatGPT、Gemini CLI、GitHub Copilot、Cursor、Trae、Kimi、豆包、DeepSeek、Windsurf、Aider、MiniMax——13 类主流 AI 编程与对话工具。

实际使用感受: AI 工具在使用了很长一段时间后,能过知道这些工具在磁盘上都存储了一些什么文件。点开 Claude Code 能看到 ~/.claude 下会话记录与缓存各占多少,标着「缓存(可重建)」的就可以放心交给系统清理模块处理。

注意:本模块只做分析,不提供删除——清理动作统一收口到系统清理的「AI 工具缓存」类别。

3、应用卸载
应用卸载:可按大小 / 上次使用 / 名称排序

操作步骤:

  • 1、进入模块自动盘点;
  • 2、用右上角排序切换:按大小 / 按上次使用 / 按名称(「按上次使用」配合「从未使用」标记,是找出积灰应用的利器);
  • 3、点某应用的「卸载…」,弹窗预览将一并移入废纸篓的全部关联文件(Application Support、Caches、Preferences、LaunchAgents 等 12 类位置);
  • 4、确认后应用本体和残留一起进废纸篓。

安全细节:残留匹配以 bundle ID 精确匹配为主(不做全盘模糊搜索,快且不误伤);若同一应用还有另一处安装(如 Homebrew 装了同款 CLI),共享数据会被自动跳过;正在运行的应用拒绝卸载。

4、磁盘分析
磁盘分析:用户目录按大小降序排列

操作步骤:

  • 1、进入模块自动扫描用户目录,按大小降序列出;
  • 2、双击任意目录下钻,顶部出现面包屑可随时返回任意层级;
  • 3、需要找大文件时切换右上「大文件」标签页,按需列出 ≥100MB 的文件(只在打开该标签时才扫描,不拖累主扫描);
  • 4、支持搜索框过滤;勾选条目可移入废纸篓。
双击下钻:Library → Application Support

实测:用户目录下 Library 223.1GB、soft 87.5GB、Applications 87.3GB;下钻 Library → Application Support 后立刻看到 Claude 16.9GB、Cursor 3.31GB 排在最前——和 AI 工具分析的结论互相印证。

性能提示:扫描用 4 路并发 du 子进程,冷缓存扫完整用户目录约 3.5 分钟;扫过的目录会被系统页缓存预热。

5、产物清理
产物清理:按项目列出构建产物

面向开发者的模块:扫描配置目录下的 node_modules、target、dist、build、.next、__pycache__、venv 等构建产物。

  • 1、进入模块点「开始扫描」;
  • 2、结果按大小排列,每项标注所属项目与产物类型;
  • 3、7 天内有活跃提交的项目默认不勾选(通过 .git/index、package.json 等文件的修改时间判断,不会误删正在进行的项目依赖);
  • 4、确认清理,全部进废纸篓。

实测:一条 workplace-dsh/node_modules 就有 1.75GB。扫描根目录默认为 ~/Projects、~/Developer、~/soft,可在设置页增删。

6、开机启动项
开机启动项:LaunchAgents 及其运行状态

列出 LaunchAgents 启动项及其运行状态,「禁用」后重启依然保持(写入 launchctl 的 disabled 数据库)。系统级启动项只读展示,避免误伤。觉得开机变慢、后台不明进程多的时候先来这里看。

7、进程管理
进程管理:按名称 / PID / 端口查询

按名称 / PID / 端口查询进程,查看启动时间、资源占用、完整启动命令;lsof 反查「哪个进程占了我的端口」是高频用法。只能结束当前用户自己的进程,系统进程只读。

8、操作历史
操作历史:每次删除都有记录

每一次删除都记录在 ~/Library/Logs/DSHClean/operations.log,带应用图标归属。清理出问题时来这里查「当时到底删了什么」。

9、设置
设置:产物清理扫描目录与温度数据源
  • • 产物清理扫描目录:增删产物清理的扫描根目录;
  • • 温度数据源:显示当前温度来源,并说明如何开启 CPU 核心温度(见文末常见问题)。
三、与同类工具的实际对比
维度
DSHClean
CleanMyMac
Mole
DaisyDisk
AppCleaner
定位
清理+分析
全能维护
轻量清理
磁盘可视化
卸载残留
价格
免费开源
订阅制
免费开源
买断
免费
AI 工具视角
✅ 独有
—
—
—
—
应用卸载+残留
✅
✅
—
—
✅(专精)
磁盘分析
列表+面包屑
✅
—
✅ 最强可视化
—
菜单栏监控
✅ 基础
—
✅
—
—
资源占用
极低
中
低
低
极低

相比 CleanMyMac:CleanMyMac 功能确实最全(粉碎机、隐私、健康监控、实时防护),UI 打磨也是标杆;但它是订阅制,且「智能清理」一键式的设计让用户看不清删了什么。DSHClean 反其道:每一步都给你看清单和说明。如果你只想装一个工具解决所有维护问题,CleanMyMac 依然合理;如果你在乎「知道它在删什么」和免费开源,DSHClean 是更干净的选择。

相比 Mole:清理规则与安全模型借鉴了 Mole 的设计思想(Mole 的领域知识很扎实)。差异在于 DSHClean 有图形界面、AI 工具分析、应用卸载和趋势图;Mole 更极简,命令行习惯者会喜欢。两者不冲突。

相比 DaisyDisk:磁盘可视化 DaisyDisk 的太阳图交互确实比列表直观,这是它的护城河。DSHClean 的磁盘分析朴素(列表+面包屑+大文件),胜在和清理动作打通——看到大的就能勾选进废纸篓,不用二次拖拽。

相比 AppCleaner:卸载残留查找是它的本行,做得很好。DSHClean 的卸载能力相当(12 类位置精确匹配、姊妹安装守卫、按上次使用排序),好处是不用再多装一个应用。

DSHClean 目前的不足(手册如实说):没有粉碎机 / 隐私清理这类进阶功能;磁盘分析没有可视化图表;不支持 Intel Mac 和 macOS 13 及以下;无多语言;温度显示在未配置 powermetrics 时是主板传感器而非核心温度。都在权衡之内,但你应该知道。

四、性能与资源占用实测

以下数据来自 M1 系列芯片 + macOS 14 的真实测量:

指标
实测值
常驻 CPU(空闲)
≈ 0%(实测 0.7%,含窗口 UI 渲染)
常驻内存
约 130MB
菜单栏轮询
无(磁盘 60s 一次 statfs;指标仅面板展开时采样)
系统清理扫描
约 35 秒(28 项 / 26.2GB)
AI 工具分析
约 15 秒(10 个工具 / 7.64GB)
应用卸载盘点
约 20 秒(115 个应用)
磁盘分析(冷缓存)
约 215 秒(完整用户目录,4 路并发 du)
磁盘分析(热缓存)
约 10 秒(同目录复扫)

扫描全部以后台低优先级(.utility QoS)执行,可以随时取消;磁盘遍历刻意压在 4 路并发并带节流,宁可慢一点也不让风扇转起来——

长时间全速扫描发热的清理工具本身就违背了它存在的意义。

五、常见问题

Q1:温度显示 50 多度,但其他工具显示 CPU 78 度?A:温度显示目前显示的还存在问题,正在优化。未配置 powermetrics 时,DSHClean 只能读到主板传感器(免 root 的最优来源),它比 CPU 核心温度低 15–30°C,面板上标注为「主板(非核心)」。想显示真实核心温度,跑一次配置脚本:

./scripts/setup-powermetrics.sh   # 一次性配置,输入一次登录密码

配置后约 5 分钟内自动切换为「核心」温度,无需重启应用。该脚本只向 /etc/sudoers.d/ 写入一条仅允许 /usr/bin/powermetrics 的免密规则,可用 remove-powermetrics.sh 随时撤销。

Q2:清理后磁盘空间没有立刻变化?A:因为内容在废纸篓里。确认无误后清空废纸篓(系统清理里「废纸篓」类别默认不勾选,就是防误删)。

Q3:扫描可以中途停止吗?A:可以,所有扫描都有「取消」按钮,立即生效。已经列出的结果不会丢失,切换模块再回来还在。

Q4:为什么不支持清理 X(某个系统目录)?A:DSHClean 刻意只做用户级目录:系统级清理收益小、风险高,且需要 root 权限。判断依据见 DESIGN.md。

Q5:卸载应用后 Preferences 里的 .plist 还在?A:检查该应用是否在保护名单(密码管理器、云盘、聊天类应用的数据被刻意保留)。

— END —

如果这篇文章对你有帮助,点赞、在看、转发就是对我最大的支持。

相关学习资料