Wipecraft

你的 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

开发者工具

在作者的 Mac 上:Claude Desktop VM 包 11 GB,模拟器 62 GB,旧 worktree 9 GB。

系统数据

系统设置中的“储存空间”面板只为“系统数据”显示一个数字。Wipecraft 从磁盘的已用空间出发,把每个已用字节分成四部分:macOS、App、你的文件和系统数据。这四部分加起来等于已用空间。

系统数据又分为五组。每组都有一种颜色和一句话的说明。

卡片上的废纸篓只会移除安全的内容:“可放心移除”和“会再出现”中未被锁定的项目。它绝不会动“由你决定”中的项目,被 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 不做的事

隐私的 10 条原则

  1. 无需账户。
  2. App 不收集遥测或使用情况分析数据。
  3. Wipecraft 不会把任何文件名或路径发送到任何地方。你自己连接的编程智能体会在你的 Mac 上通过本地连接接收扫描结果。该智能体如何处理这些结果,由其提供方负责。
  4. 扫描读取此 Mac 上的大小、日期和工具状态(git、simctl、Docker)。它不上传任何内容。
  5. App 只为两件事发起网络请求:你的许可证(如果你激活了许可证,并以你的 Mac 名称作为激活标签)和更新检查。另有一项可选检查通过你自己的 gh 登录进行,仅在已安装 gh 且已登录时进行。你可以在 “设置”中关闭它,之后 gh 不会再运行。
  6. 崩溃报告默认关闭。如果你开启它,只有在 App 崩溃时才会发送,且不含文件名或路径(Sentry,欧盟区域)。
  7. 除非你开启“监控”,否则没有任何内容在后台运行;开启后,菜单栏图标会显示它处于开启状态。唯一的其他情况是 Claude Code 插件(如果你安装了它):它的钩子会在会话开始或结束时运行 wipecraft。
  8. 不安装任何管理员辅助程序。只有在移除快照时才会要求输入管理员密码,且每次都会要求。wipecraft 命令以你自己的权限运行,不运行管理员命令。
  9. 删除日志保留在你的 Mac 上,由你自己导出。
  10. 你的许可证密钥保存在你的钥匙串中。wipecraft 命令从那里读取它来检查许可证。

完整详情:wipecraft.app/privacy/zh-Hans

价格

$9.99 一次性付费,限前 500 位买家。之后为 $19。

购买 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 的语言。