你的 AI 智能体在 Mac 上留下了什么
Claude Code、Codex、Cursor 和 Claude Desktop 会在你的磁盘上留下会话历史记录、worktree、VM 镜像和缓存。Wipecraft 逐项显示它们的大小和用途,不碰你进行中的工作,对于不会自动重建的内容,移除后有 7 天时间可以恢复。
下载 macOS 版扫描免费 · macOS 14 或更高版本
你的工作原地不动
存有进行中工作的行会被锁定。你能看到它们,但无法选择。
- Claude Code 或 Codex 运行时:它打开的会话、它在过去 24 小时内更改的所有内容,以及它所在的 worktree。
- Cursor 打开时,Cursor 的缓存。
- 有未提交更改的 worktree、过去 7 天内有更改的 worktree,或提交不在主分支或远程仓库上的 worktree。
- 已启动的模拟器。
- Claude Desktop 的当前沙盒镜像。
默认不选中任何内容。“选择推荐项”只会选中“可放心移除”和“会再出现”中的项目,绝不会选中“由你决定”中的项目。
扫描只读取。有一项测试会在完整扫描前后比较测试主目录下的每个文件,并在命令行的 scan 和 status 之后再比较一次。
7 天的反悔时间
没有任何 App 会重新创建的文件,在你移除时会进入同一磁盘上的隔离区。每一行都显示“剩余 N 天”和“恢复”按钮。7 天后,隔离区会在 Wipecraft 下次打开或运行每日检查时自动清空。如果你今天就需要这些空间,“立即清空”会在第二次确认后释放它。
有三类操作不经过隔离区。
- 对应 App 会自行重新创建的缓存、日志和临时文件会被直接移除。它们无法恢复,行或卡片会在你确认之前说明这一点。Wipecraft 只对已知会被 App 重新创建的文件夹和文件这样做。凡是不确定会由哪个 App 重新创建的内容,一律进入隔离区。
- worktree 通过 git 移除,其分支保留在仓库中。
- 少数工具命令标为“不可撤销”,Wipecraft 会说明是哪些命令,并再次询问你。
有些缓存会留在隔离区,因为对应工具不会自行把它们找回来:JetBrains 和 Android Studio 的缓存(其中也包含 IDE 的本地历史记录)、Maven 和 Go 模块,以及 Library/Caches 中的工具数据,例如 Poetry 环境、Playwright 和 Cypress 浏览器以及 llama.cpp 模型。
会话历史记录不会被删除,而是移入可恢复的压缩归档。
有内容变大时会通知你
“监控”默认关闭,由你决定是否开启。开启后,菜单栏中会显示一个图标,Wipecraft 每天在你选择的时间检查一次。出现以下情况时会通知你:
- 某个项目在 7 天内增长 2 GB 或以上,
- 磁盘可用空间不足 10%,
- 1 GB 或以上的 worktree 或模拟器已 7 天未被使用,
- 上次时间机器备份已超过 7 天。
退出 App,一切都会停止。
你设定的规则与筛选
清理规则是可选的。在你于“设置 > 自动清理”中添加规则之前,没有任何规则。
- 规则指定来源、项目需未使用的天数(7 到 365)和最小大小。
- 每日检查后,符合规则的项目会移到隔离区或归档,并由一条通知告诉你数量。
- 规则会跳过已锁定的行。规则从不运行命令,从不移除 worktree,也从不执行任何无法撤销的操作。被直接移除的缓存不属于计划清理;规则只会选取移到隔离区或归档的项目。
- 规则只在“监控”开启时运行。
- 没有许可证时,规则不会移动任何内容。如果某条规则本来会移动内容,Wipecraft 每天会告诉你一次清理未运行。
每个结果列表都可以按项目未被使用的时长、来源和安全级别筛选。筛选会隐藏行,并将它们移出所选内容。
从不碰未推送的工作
对于 git 仓库仍然存在的 worktree,只有当它的提交在别处也有一份时,才会建议移除。唯一的例外是仓库已不存在的 worktree,见最后一点。
- 它的提交必须在主分支或某个远程分支上。否则该行会被锁定,原因为 “其提交尚未进入主分支或远程仓库。”
- 上次推送之后的新提交会让它保持锁定。
- squash 合并会在主分支上产生新的提交,因此该分支自己的提交永远不会出现在主分支上。如果 GitHub 显示该分支的 pull request 已合并,Wipecraft 会解除这一项锁定。它通过你自己的
gh 登录查询,仅在已安装 gh 且已登录时进行,你也可以在“设置 > 隐私”中关闭它。未提交的更改仍会锁定该 worktree。
- 在移除 worktree 之前,Wipecraft 会再检查一次。如果提交已不在主分支或远程仓库上,或者 pull request 不再显示为已合并,它不会移除任何内容。
- 主仓库已被移动或删除的 worktree 无法由 git 检查。Wipecraft 仅在它 30 天(默认值)无更改后才会提供它,并将整个文件夹移到隔离区,可用“恢复”找回。
移除 worktree 时保留你的 .env
git worktree remove 会删除整个文件夹,包括 git 忽略的文件:.env、本地数据库和编辑器设置。Wipecraft 会先把这些文件移出来。
- 移除 worktree 之前,Wipecraft 会将其中被忽略且不属于构建产物的文件移到隔离区,保留 7 天。构建产物(如
node_modules 和 target)会随 worktree 一起删除。
- 在你确认之前,该行会显示有多少个文件会进入隔离区。
- 如果 git 拒绝移除该 worktree,Wipecraft 会把这些文件放回原处。
- “恢复”会重新创建这些文件原先所在的文件夹。
- 这些文件从不单独提供。构建产物作为单独的一行提供,已锁定的 worktree 也是如此。
可在终端和 Claude Code 中使用
命令行。 Wipecraft 在 App 内附带了 wipecraft 命令。“设置 > 通用 > 命令行工具”会显示将它链接到 PATH 的那一行命令。
wipecraft scan 和 wipecraft status 列出可释放的内容,加上 --json 时输出带版本号的 JSON。它们不做任何更改。
wipecraft clean 显示它将要做什么。在你加上 --apply 之前,不会有任何更改。
- 加上
--apply 后,wipecraft clean 对你指定的每个项目执行与 App 相同的操作:对应 App 会重新创建的缓存、日志和临时文件会被直接移除且无法恢复(计划中会写明“Would remove directly”),其他文件移到隔离区,会话历史记录进入归档,已完成的 worktree 在其被忽略且不属于构建产物的文件移到隔离区之后,通过 git worktree remove 移除。删除日志会记录每项操作。--all-safe 只选择会移到隔离区的项目。它需要与 App 相同的许可证。
- 它会拒绝已锁定的行,以及自扫描以来发生变化的行。它不执行标为“不可撤销”的操作,而是提示你打开 App。
wipecraft quarantine list 显示隔离区中的内容,wipecraft quarantine restore <id> 会将某个条目放回原处。两者都不需要许可证。
- 如果 App 或另一个终端正在移动文件,该命令会停止并提示 Wipecraft 正忙,不移动任何内容。
- 它可以输出 zsh、bash 和 fish 的补全脚本。
Claude Code 插件。 该插件添加两个命令和两个会话钩子。
/wipecraft:status 汇总 wipecraft scan --json 的结果。/wipecraft:tidy 先显示试运行结果,只有在你于对话中同意后才运行 --apply。
- 会话开始时,如果可释放的空间超过 1 GB,它会在会话中添加一行。这行内容来自上次刷新时保存的摘要,因此会话从不需要等待扫描。如果没有过去 24 小时内的摘要,它不输出任何内容,并在后台刷新摘要。
- 会话在某个链接的 worktree 中结束时,它会用一行输出该 worktree 的状态。
- 整理已完成的 worktree 默认关闭。它是“设置 > 智能体”中的一个开关。
- 开关打开后,会话结束并经过短暂延迟,
wipecraft clean 会在后台运行,且只针对该会话的 worktree。它经过与命令相同的检查,仍处于锁定状态的 worktree 会保留。
其他智能体(MCP)。 wipecraft mcp 是一个服务器,Claude Code、Codex、Cursor 和其他智能体可以在你的 Mac 上启动它。它只通过标准输入和输出通信;其源代码不使用网络连接,也不监听任何端口。
- 智能体可以读取总计、列出和解释项目,以及查看隔离区中的内容。这些请求不做任何更改。
- 在你于“设置 > 智能体”中打开“允许智能体通过 MCP 清理”之前,无法通过智能体进行清理。
- 打开后,除非智能体要求应用,否则请求只显示计划。应用需要许可证,并会跳过已锁定的行。对智能体指定的每个 ID,它执行与
wipecraft clean --apply 相同的操作:对应 App 会重新创建的缓存、日志和临时文件会被直接移除且无法恢复,其他文件移到隔离区,会话历史记录进入归档,已完成的 worktree 通过 git 移除。工具说明会告诉智能体哪些项目无法恢复,以便它在应用之前告知你。移除时间机器本地快照这类标为“不可撤销”的操作,仍然会被拒绝。
- “设置 > 智能体”列出了 Claude Code、Codex 和 Cursor 的设置文本。Wipecraft 只显示这些文本,不更改任何智能体的设置。
它能找到什么
每一行都会说明它是什么、有多大,以及移除后会怎样。如果某项内容可以找回,也会说明如何找回。
Claude Code、Codex、worktree 以及下面的开发者工具会在开启“开发者模式”后显示。参见常见问题。
AI 智能体和 AI App
- Claude Code。 会话历史记录,按项目和月份分组。它们会被归档,而不是删除。此外还有文件历史、shell 快照、调试日志和插件。
- Codex。 会话、已归档的会话,以及线程历史和日志数据库。这些全部会被归档,而不是删除。此外还有生成的图像和缓存。
- Claude Desktop。 VM 包。当前沙盒镜像会显示并锁定。它的压缩副本和遗留的温启动数据只在 Claude Desktop 关闭时提供。还有缓存。
- Cursor。 它的缓存。
- 本地模型。 Ollama、LM Studio、Hugging Face 缓存、PyTorch 缓存和 Whisper 模型,并显示大小和上次使用时间。
- Git worktree。 来自任何智能体,或来自你自己:你个人文件夹中 git 仓库的 worktree,以及
.claude/worktrees 中的文件夹。每个都显示其分支、大小、上次更改时间,以及单独列出的 git 忽略的文件。worktree 按创建它们的工具分组:Claude Code、Codex、Cursor 或其他。分组依据文件夹或分支名称。
- Worktree 遗留项。 主仓库已被移动或删除的文件夹会列出,git 中那些文件夹已不存在的 worktree 记录也会列出。移除这些记录会运行
git worktree prune,它不删除任何文件。如果某条记录的文件夹只是被移动而非删除,它会保持锁定,该行会提示运行 git worktree repair。
开发者工具
- Xcode。 每个项目的构建数据、归档、设备支持文件、预览和模块缓存。Xcode 打开的项目会被锁定。
- 模拟器。 每台设备及其大小和上次使用时间。“移除设备”和“抹掉内容”是两个单独的操作。运行时镜像只在没有模拟器使用时才会提供。
- 软件包缓存。 npm、pnpm、Yarn、pip、Homebrew、CocoaPods、Swift Package Manager、Gradle 和 Cargo,以及 Bun、uv、conda、Go 和 Maven。
- 构建产物。 30 天未更改的项目中的
node_modules。还有 .venv、target、.next、build、dist、Pods 和 .build 等文件夹,但仅当项目有其标记文件(例如 Cargo.toml 或 package.json)、git 忽略该文件夹,且项目 30 天未更改时才会列出。这 30 天可以更改。在项目文件夹中启动的编程智能体或编辑器,在运行期间会锁定该项目。
- 编辑器。 VS Code、JetBrains IDE 和 Android Studio 的缓存和日志。对应的编辑器运行时,它们会被锁定。属于旧版 IDE 的文件夹会注明这一点。
- Android。 模拟器(虚拟设备)和 SDK 系统镜像。模拟器会移到隔离区;当有模拟器正在运行或其锁定文件存在时,它会被锁定。系统镜像在有设备使用时会被锁定,Wipecraft 无法读取某个设备的设置时也会被锁定。
- Docker。 Docker 运行时的镜像和卷。容器正在使用的镜像或卷会被锁定。还有当前没有构建在使用的构建缓存;移除它会运行
docker builder prune --all --force,此操作无法撤销。OrbStack 的数据文件夹会显示大小,Wipecraft 不会移除它。
在作者的 Mac 上:Claude Desktop VM 包 11 GB,模拟器 62 GB,旧 worktree 9 GB。
系统数据
系统设置中的“储存空间”面板只为“系统数据”显示一个数字。Wipecraft 从磁盘的已用空间出发,把每个已用字节分成四部分:macOS、App、你的文件和系统数据。这四部分加起来等于已用空间。
系统数据又分为五组。每组都有一种颜色和一句话的说明。
- Mac 需要这些。 交换文件、系统数据库,以及 App 为自己保留的数据。会显示,但绝不会建议移除。
- 可放心移除。 对应 App 会自行重新创建的缓存、日志和临时文件。
- 会再出现。 可以移除,但随着使用会重新填满,例如浏览器缓存和软件包缓存。
- 由你决定。 不会自行回来的东西的唯一副本,例如本地模型、模拟器、worktree、Docker 镜像和会话历史记录。卡片会说明每一项是什么,以及你上次使用它是什么时候。它们会进入隔离区(7 天内可以撤销),或进入归档(可以恢复)。
- macOS 未显示。 减去 Wipecraft 能识别的所有内容之后剩下的部分,并附有原因:完全磁盘访问权限已关闭、只有管理员才能读取的文件夹,或 APFS 的额外开销与克隆文件。
卡片上的废纸篓只会移除安全的内容:“可放心移除”和“会再出现”中未被锁定的项目。它绝不会动“由你决定”中的项目,被 App 打开的项目会保持锁定。卡片会先翻转过来,说明将发生什么,以及能否撤销。
时间机器本地快照在这些分组之外,逐个列出,并显示日期。macOS 不报告本地快照的大小,因此 Wipecraft 不做估算。移除快照会标为“不可撤销”,并且每次都会要求输入管理员密码。
部分文件夹需要完全磁盘访问权限。没有该权限时,你的用户文件夹仍会被扫描,概览会说明哪些文件夹无法统计。
撤销的方式
| 行的类型 | Wipecraft 的操作 | 如何找回 |
|---|
| 会自动重建 | 不经过隔离区,直接将其移除。仅适用于对应 App 会重新创建的缓存、日志和临时文件。行或卡片会在你确认之前说明这一点。 | 没有需要恢复的内容。App 需要时会重新创建。无法撤销。 |
| 可恢复 | 将文件移到隔离区。 | 7 天内用“恢复”找回。或者重新下载或重新构建。 |
| 会话历史记录(标为“可恢复”) | 将其压缩到归档中,然后移除原始文件。 | 恢复归档。归档会一直保留,直到你恢复它们。 |
| Worktree(标为“可恢复”) | 将其中被忽略且不属于构建产物的文件(如 .env)移到隔离区,然后运行 git worktree remove。文件夹连同其中的构建产物会被直接删除,不经过隔离区。 | 分支保留在仓库中。用该分支运行 git worktree add 即可重新检出。“恢复”可找回保留的文件。 |
| 不可撤销 | 运行工具自身的命令。它会先说明是哪个命令,并再次询问你。 | 确认对话框会说明如何重新获取。 |
| 已锁定 | 不做任何操作。 | 无需找回。 |
对应工具不会自行找回的缓存不属于第一行。它们会进入隔离区:JetBrains 和 Android Studio 的缓存、Maven 和 Go 模块,以及 Library/Caches 中的工具数据,例如 Poetry 环境、Playwright 和 Cypress 浏览器以及 llama.cpp 模型。
不可撤销的操作有:移除时间机器本地快照、删除模拟器运行时、抹掉模拟器内容、移除 Docker 镜像或卷,以及移除 Docker 构建缓存。
对于仓库存在的 worktree,Wipecraft 只在它处于干净状态时才建议移除:没有已跟踪文件被更改,没有未被 git 忽略的未跟踪文件,7 天内没有更改(默认值;可在“设置”中更改),且它的提交在主分支或远程仓库上。主仓库已不存在的 worktree 无法由 git 检查。它会在 30 天(默认值)无更改后提供,并作为整个文件夹进入隔离区。它被 git 忽略的文件(构建产物、依赖项)也是单独的一行,会进入隔离区。即使 worktree 本身已锁定(例如因为有未提交的更改),这一行也可能会提供。
隔离区在同一磁盘上移动文件,因此空间会在清空时释放。隔离区界面会同时显示两个数字:“在隔离区中”和“立即清空可释放”。
每项操作都会写入本地删除日志:时间、内容、大小以及操作类型。你可以在“设置”中将其导出为 CSV。
Wipecraft 不做的事
- 没有卸载器。
- 不清理内存。
- 不做杀毒或恶意软件扫描。
- 没有“为你的 Mac 加速”。
- 没有订阅。
隐私的 10 条原则
- 无需账户。
- App 不收集遥测或使用情况分析数据。
- Wipecraft 不会把任何文件名或路径发送到任何地方。你自己连接的编程智能体会在你的 Mac 上通过本地连接接收扫描结果。该智能体如何处理这些结果,由其提供方负责。
- 扫描读取此 Mac 上的大小、日期和工具状态(git、simctl、Docker)。它不上传任何内容。
- App 只为两件事发起网络请求:你的许可证(如果你激活了许可证,并以你的 Mac 名称作为激活标签)和更新检查。另有一项可选检查通过你自己的
gh 登录进行,仅在已安装 gh 且已登录时进行。你可以在 “设置”中关闭它,之后 gh 不会再运行。
- 崩溃报告默认关闭。如果你开启它,只有在 App 崩溃时才会发送,且不含文件名或路径(Sentry,欧盟区域)。
- 除非你开启“监控”,否则没有任何内容在后台运行;开启后,菜单栏图标会显示它处于开启状态。唯一的其他情况是 Claude Code 插件(如果你安装了它):它的钩子会在会话开始或结束时运行
wipecraft。
- 不安装任何管理员辅助程序。只有在移除快照时才会要求输入管理员密码,且每次都会要求。
wipecraft 命令以你自己的权限运行,不运行管理员命令。
- 删除日志保留在你的 Mac 上,由你自己导出。
- 你的许可证密钥保存在你的钥匙串中。
wipecraft 命令从那里读取它来检查许可证。
完整详情:wipecraft.app/privacy/zh-Hans
价格
$9.99 一次性付费,限前 500 位买家。之后为 $19。
- 一个许可证可用于 2 台 Mac。
- 扫描免费。清理需要许可证。
- 包含此主要版本的更新。
- 14 天内可退款,无需理由。
- 无订阅,无需账户。通过 Polar 付款。
购买 Wipecraft免费下载并扫描
常见问题
扫描真的免费吗?
是的。完整扫描、每一行及其详情,以及监控提醒都无需许可证即可使用。将文件移到隔离区、归档和移除需要许可证。
Wipecraft 会自行删除内容吗?
默认不会。默认不选中任何内容,在你选择“应用”之前不会移除任何内容。你已放入隔离区的项目会在 7 天后被移除;这发生在 Wipecraft 打开时和每日检查期间。有三项可选设置在你开启后,可以在你不按“应用”的情况下移动或移除项目:清理规则(“设置 > 自动清理”)、Claude Code 会话结束后整理已完成的 worktree,以及智能体请求时通过 MCP 清理。这三项默认都关闭,并且每一项都经过与 App 相同的检查:已锁定的行和自扫描以来发生变化的项目会被拒绝。
Claude Code 或 Codex 正在运行时会怎样?
它打开的会话、它在过去 24 小时内更改的所有内容,以及它所在的 worktree 都会被锁定。对于 Claude Code,它所在项目的最近一个月也会被锁定。较早的会话仍可选择。如果 Wipecraft 无法判断某个工具是否正在运行,这些行会保持锁定,直到下次扫描。
移除 worktree 时会丢失提交吗?
对于仓库存在的 worktree,Wipecraft 只在它处于干净状态、7 天(默认值)未更改,且它的提交在主分支或远程仓库上时才会提供。其分支上的提交保留在仓库中。提交不在任何分支上的 worktree 不会提供。例外是主仓库已被移动或删除的 worktree:git 无法检查它,因此 Wipecraft 会在它 30 天(默认值)无更改后提供,并将整个文件夹移到隔离区,可用“恢复”找回。
它会向外发送数据吗?
只为两件事:你的许可证(激活时,以你的 Mac 名称作为激活标签;每次启动时检查一次;以及从某台 Mac 上移除时)和更新检查。另有一项可选检查会通过你自己的 gh 登录询问 GitHub 某个分支的 pull request 是否已合并。它发送分支名称和提交 ID,仅在已安装 gh 且已登录时运行,你可以在“设置”中关闭它。Wipecraft 不发送任何文件名、路径或扫描结果。隐私页面列出了每个请求包含的内容。
Claude Code 插件或智能体会发送什么吗?
Wipecraft 不发送任何内容。插件和 wipecraft mcp 会把结果传给你 Mac 上的智能体。/wipecraft:status 把扫描输出(包括文件夹路径)交给 Claude,会话开始时的那一行会给它一行带大小的内容,因此 Claude 的提供方会收到你在该会话中看到的内容。你通过 MCP 连接的任何智能体也是如此。
智能体能清理我的磁盘吗?
除非你开启,否则不能。读取始终允许。通过 MCP 清理默认关闭,直到你在“设置 > 智能体”中开启;它需要许可证,在应用前会显示计划,并对它指定的每个 ID 执行与 wipecraft clean --apply 相同的操作:对应 App 会重新创建的缓存、日志和临时文件会被直接移除且无法恢复,其他文件移到隔离区并保留 7 天,会话历史记录进入归档,已完成的 worktree 通过 git 移除。标为 “不可撤销”的操作会被拒绝。Claude Code 会话结束后的整理是另一个单独的开关,同样默认关闭。
为什么我看不到 Codex 或我的 worktree?
它们属于“开发者模式”。该模式会添加编程智能体、worktree、Xcode、模拟器、软件包缓存和 Docker。当 Wipecraft 找到 ~/.claude 文件夹或 Xcode 时,它默认开启;否则请在“设置 > 开发者模式”中开启。它在下次扫描时生效。
为什么它要求完全磁盘访问权限?
macOS 只允许 App 在获得完全磁盘访问权限后读取某些文件夹,例如“邮件”下载内容、“信息”附件和 iOS 备份。你可以跳过。你的用户文件夹仍会被扫描,Wipecraft 会告诉你哪些文件夹无法统计。
如果我的 Mac 离线会怎样?
一切照常工作,也不会有任何功能被锁定。Wipecraft 会在下次联网打开时再次检查许可证。
我需要什么?
macOS 14 Sonoma 或更高版本,Apple 芯片或 Intel 均可。Wipecraft 直接销售,不在 Mac App Store 上架。界面提供英语、简体中文、日语、德语、法语、西班牙语、巴西葡萄牙语、韩语、俄语、意大利语和土耳其语,支持浅色和深色模式。它跟随你 Mac 的语言。