用 Claude Code 或 Codex 安全地给 Windows 清理空间
C 盘一变红,现在越来越多人会让 Claude Code 或 Codex 帮忙查原因。这一步交给 Agent 很合适,它能列出上百个目录,认出 AppData\Local\npm-cache 是包管理器的缓存、Documents\WeChat Files 是微信聊天记录,再用大白话讲清楚。风险在下一步,同一个 Agent 按自己读到的目录大小拼出一条 Remove-Item -Recurse -Force 或者 del /s /q,生成的命令里引号或反斜杠错一个,就可能指到别的目录上去,而这两条命令都不会先问你,不进回收站,也不留任何记录。
这篇讲一种更稳的分工,Agent 负责读和解释,带预览的清理工具负责删,中间由你点头。这里用的工具是 Mole 的免费 PowerShell 版 Mole CLI for Windows,以及它的官方 Agent skill,这个 skill 会教 Claude Code、Codex、Cursor 等 Agent 怎么正确地用 Mole。换成别的工具,只要它有预览模式,下面这套习惯一样适用。
为什么不该让 Agent 用 Remove-Item 清理
让 Agent 直接用 PowerShell 或 cmd 命令清理,会少掉四样东西:
- 预览。
Remove-Item一执行就生效,你批准的是一行命令,看不到它展开后的几千个文件。PowerShell 虽然有-WhatIf,但没有什么能保证 Agent 会用它。 - 退路。 这样删掉的文件不经过回收站。
- 记录。 下周某个软件的设置没了,你没办法知道是不是那次清理动过它。
- 不能碰的清单。 一个叫
Cache的目录,里面可能是浏览器的登录会话、游戏存档,或者某个正在运行的软件还在写的数据库。
专门做清理的工具本来就带着这四样,Agent 要做的就变成读懂它的输出,然后问你。想先了解哪些目录要紧,Windows 缓存哪些能删,哪些要留按目录逐个讲过。
安装
先用 Scoop 装 Mole CLI for Windows,再装 skill:
scoop install mole
npx skills add tw93/Mole -a claude-code codex cursor -g -y
装 skill 的命令需要 Node.js,会一次给 Claude Code、Codex 和 Cursor 都装上,用不到的 Agent 从命令里删掉就行。Claude Code 里也可以依次运行 /plugin marketplace add tw93/Mole 和 /plugin install mole@mole,Codex 里依次运行 codex plugin marketplace add tw93/Mole 和 codex plugin add mole@mole。CLI 请用 1.37.0 或更新的版本,这一版加了 mo analyze --json 和 mo uninstall --list,正好是 Agent 最常用的两条命令,mo --version 可以看当前版本。
skill 给 Agent 定的四条规矩
- 先读,再动。 Agent 先用只读命令回答问题,磁盘占用看
mo analyze --json,CPU、内存和磁盘看mo status --json,以前清理过什么看mo history --json,装了哪些软件看mo uninstall --list,再加上mo clean --dry-run,这些都不用问你就可以跑。 - 每次删除前先预览。 Agent 先带上
--dry-run跑一遍,然后讲给你听,一共多大,最大的几组是什么,每一组是直接删除、进回收站,还是之后要重新下载才能恢复。 - 敲下删除命令之前先问你。 由 Agent 调用时,
mo clean一启动就开始删,中间不会再确认,所以你的同意必须在看完预览之后、在对话里先给出。 - 有些步骤留给你自己。 卸载软件、在列表里勾选、任何需要管理员 PowerShell 的操作,都留在你自己的终端里做,Agent 只给你准确的命令然后停下,它不会尝试提权。
skill 还规定 Agent 不能自己编参数,Mole CLI for Windows 本来就没有 --yes 或 --force,Mole 跳过或保护的东西,Agent 也不能改用 Remove-Item 硬删。
一次完整的对话是什么样
假设你输入:「C 盘快满了,是什么占的?」
Agent 先跑 mo --version,看到第二行是 Windows:,就切换到 Windows 的规则,然后跑 mo analyze --json。返回的是用户目录和各个磁盘的概览,大小以字节为单位,每项带一个 scan_status,取值是 complete、partial 或 unavailable,旧的下载文件、Temp 目录、包管理器缓存这类常见的大户还会标上 insight: true。想看得更细,它会接着跑 mo analyze --json D:\,或者对最大的那个目录再看一次。
接着它会把找到的东西分给能处理的人:
| 找到的东西 | 交给谁 |
|---|---|
| 临时文件、软件和浏览器缓存、日志 | mo clean |
| Windows Temp、系统日志、错误报告和内存转储 | mo clean --system,由你以管理员身份运行 |
项目里的编译产物和 node_modules |
mo purge,由你来运行 |
| 不再用的已安装软件 | mo uninstall,由你来运行 |
| 文档、照片、视频、游戏库、虚拟机 | 你自己决定,没有哪条 Mole 命令会删它们 |
如果你想清理出空间,它会先跑 mo clean --dry-run,每一个候选路径都写进 %USERPROFILE%\.config\mole\clean-list.txt,所以在真正动手之前,你问一句「Chrome 保存的密码在不在里面」,它可以直接查给你看。只有你说了可以,它才会运行 mo clean。在 Windows 上 mo clean 不会清空回收站,游戏录像和显卡着色器缓存默认也不动,除非你要求加上 --game-media 或 --gpu-shaders,因为着色器缓存清掉后,游戏下次启动要花不少时间重新编译。
哪些事留给你,为什么
需要管理员权限的部分。 Agent 运行的 mo clean 只清你这个账户下的东西。要清系统范围的部分,用「以管理员身份运行」打开 PowerShell,先跑 mo clean --system --dry-run,再跑 mo clean --system。如果你的管理员账户是另一个 Windows 用户,那个窗口用的是另一个用户目录,白名单和日志都和你的分开。
卸载软件。 Agent 可以从 mo uninstall --list 里找到这个软件,列表会给出名称、来源(注册表或 Microsoft Store)、发布者、版本和大小。卸载本身是一个选择列表,所以由你先跑 mo uninstall --dry-run,看清每个软件会用哪个卸载程序,再跑 mo uninstall,输入名字搜索并勾选。Mole 会调用软件厂商自己的卸载程序,它目录里的东西删不删由厂商决定,卸载完之后,Mole 再把确认属于它的残留安装目录移到回收站。有些卸载程序会弹出自己的 UAC 提示或安装向导。卸载后通常会留下什么,可以看软件卸载以后,Windows 上还留下什么。
项目目录和系统文件检查。 mo purge 会打开选择列表,所以要在你的终端里跑。mo optimize 最后会问要不要运行系统文件检查(SFC),这一步要好几分钟,答不答应也由你来定。
事后怎么核对
真正跑完之后,Agent 会读命令的摘要和 mo history --json --limit 1,告诉你删了什么、跳过了什么,跳过的不会再重试。记录保存在 %USERPROFILE%\.config\mole\operations.log,预览不会写进去,所以里面只有真正的删除。
几周后想知道「Mole 是不是删了我的文件」,也是查这份记录,Agent 会在 mo history --json --limit 200 里找这个路径。没找到,说明 Mole 没有删除它的记录,这不等于证明别的东西也没删过它。
想让某个目录以后永远不被清理,让 Agent 把它加入保护就行,它会在你同意后把路径写进 %USERPROFILE%\.config\mole\whitelist.txt,用带 BOM 的 UTF-8 保存,这样 Windows PowerShell 5.1 读中文路径才不会乱码,然后再跑一次 mo clean --dry-run 确认。
用的不是 Mole 怎么办
这些规矩不只适用于 Mole,换成别的工具,可以在对话一开始先贴上这样一段:
删除任何东西之前,先把清单给我看,说清楚哪些进回收站、哪些是永久删除。
用工具自带的预览或 -WhatIf 模式,不要用 Remove-Item -Recurse -Force 或 del /s,
不要提权,也不要让我开管理员窗口。任何会删文件的命令,都等我说可以再执行,
执行完告诉我删了什么、跳过了什么。
常见问题
Windows 上哪些 AI Agent 能用 Mole 的 skill?
安装命令里写了 Claude Code、Codex 和 Cursor,npx skills 也能给其他读取 skill 文件的 Agent 安装。Agent 必须能在你的电脑上执行命令,Windows PowerShell 5.1 和 PowerShell 7 都可以。
Agent 会不会不问我就删文件?
skill 要求它先预览、等你同意,但这是给 Agent 的指令,不是一把锁,所以 Agent 自己对 shell 命令的确认提示请保持打开,也不要在它的设置里预先放行 mo clean 或 Remove-Item。卸载和需要管理员权限的清理,Agent 根本跑不了。
会不会清空我的回收站,或者删掉游戏存档?
在 Windows 上 mo clean 不会清空回收站,游戏录像和着色器缓存也默认不动,除非你要求。游戏存档和游戏库是你的数据,没有哪条 Mole 命令会删它们。不过软件自己的卸载程序仍可能删掉它目录里的数据,这也是 Agent 把卸载交给你来做的原因。
Mole CLI for Windows 收费吗?
不收费,它以 GPL-3.0 协议开源,skill 也在同一个仓库里。Mole for Windows 是另一个有窗口的付费软件,两者的区别在Mole CLI for Windows 和 Mole for Windows 有什么区别。
Mac 上也能这样用吗?
能。skill 读到 mo --version 是 macOS 时会改用 macOS 的命令,那边卸载的 App 进废纸篓,mo clean 默认会清空废纸篓。Mac 版的这篇在用 Claude Code 或 Codex 安全地给 Mac 清理空间。
延伸阅读
- Windows C 盘快满了,先分类再决定怎么处理,讲空间通常去了哪里。
- 开发工具越装越多,npm、pip 和 Gradle 的哪些文件该留,讲编程工具塞满的那些缓存。
- C 盘空间去哪了,先找出大文件,讲怎么手动找同样的东西。