刷新技能Skill:一键清理 Claude Code 孤儿进程与膨胀的 ~/.claude/ 目录
- 它是什么:刷新技能(英文名 skill-refresh,技能ID 12885)是一个面向 Claude Code 的资源管理技能,只做两件事——清理孤儿进程、清理
~/.claude/目录里长期积累的文件。 - 核心命令:以
/refresh方式触发,支持--dry-run(只预览不改动)与--force(跳过确认,按 8 小时默认阈值执行)两种标志。 - 安全边界清晰:只针对 TTY 为
?的孤儿进程,永不杀死活动会话,排除当前进程树;settings.json、.credentials.json、sessions-index.json、history.jsonl等受保护文件永不删除。 - 顺手修一个隐藏坑:除了进程和目录,它还会清理
specs目录下超过 1 小时的孤儿后飞行标记(.postflight-pending、.postflight-loop-guard),避免技能中断后流程卡死。 - 适合谁用:长期高频使用 Claude Code 的开发者、磁盘经常告警的机器、以及跑在共享环境或自动化流水线上的会话。
该技能叫什么?如何一键安装 AI 技能提升开发效率?
这个技能的中文名是刷新技能,英文名 skill-refresh,技能ID 12885,描述为「管理 Claude Code 资源 - 终止孤儿进程并清理 ~/.claude/ 目录」。
它要解决的是 Claude Code 重度使用者几乎都会遇到的两个问题:
- 进程层面的「幽灵会话」:异常的、被中断的 Claude Code 会话会留下没有终端挂载的孤儿进程,长期堆积占用内存,还可能干扰新会话。
- 目录层面的「慢性膨胀」:
~/.claude/下的projects/、debug/等目录会随着使用不断累积历史文件,动辄占用数 GB 到十几 GB 磁盘空间,而用户往往不知道空间去哪了、也不敢乱删。
「一键安装」AI 技能的思路,本质上就是把这些「平时靠手动敲 find、ps、rm 的运维动作」固化成一个可复用的技能包,装一次、以后一句话调用。安装与使用时的关键点如下:
- 安装前提:需要你身处支持 Skill 机制的 Claude Code 环境中,并具备 Bash 执行能力(该技能声明允许的工具为
Bash、AskUserQuestion)。此外,技能详情中的错误处理明确提示,运行依赖.claude/scripts/下的claude-refresh.sh与claude-cleanup.sh两个脚本;若缺失会提示「请确保 claude-refresh.sh 和 claude-cleanup.sh 已安装」,因此安装时请确认脚本已就位。 - 安装入口:在技能市场 / 技能管理入口中搜索技能名「刷新技能」或技能ID 12885 完成添加(具体入口地址与安装命令以官方说明为准)。
- 验证是否生效:先执行一次预览模式
/refresh --dry-run。如果能看到「Claude Code 刷新」「Claude Code 目录清理」两段输出,并且列出当前~/.claude/总大小、按目录细分与可回收空间,说明技能已经正常工作。干运行模式下会明确提示「未进行任何更改」,可以放心试。
需要强调的是:该技能是内联直接执行的,不会生成子代理,因此调用开销低、响应快,适合作为高频使用的日常维护动作。
该技能的主要功能和特点
- 孤儿进程识别与终止:只把 TTY 为
?的 Claude Code 进程判定为孤儿,主动排除当前进程树,永不杀死活动会话。这比直接pkill -f claude安全得多。 - 目录体量调查:调用
claude-cleanup.sh展示当前~/.claude/目录大小、按目录细分(如projects/、debug/)、文件数量以及「可回收的空间」,让你在删之前先看清账。 - 按年龄阈值清理:支持三种阈值口径——8 小时(默认,积极清理)、2 天(保守清理)、干净状态(只保留 1 小时安全边距内的内容)。年龄阈值可按需在交互中选择。
- 三种运行模式:交互模式(默认,用
AskUserQuestion弹选项让你挑阈值)、--dry-run预览模式(只报告「将删除 N 个文件、将回收 X GB」)、--force强制模式(跳过确认,直接按 8 小时默认值执行)。 - 孤儿后飞行标记清理:扫描
specs目录(深度 3 层内)、修改时间超过 60 分钟的.postflight-pending与.postflight-loop-guard文件,同时兼容清理遗留的全局标记specs/.postflight-pending、specs/.postflight-loop-guard。这类标记正常应在技能后飞行结束后清理,但进程中断时会残留并影响后续流程。 - 硬性安全护栏:
sessions-index.json(每个项目目录内)、settings.json、.credentials.json、history.jsonl属于受保护文件,永不删除;最后 1 小时内修改的文件无论阈值如何都不会被删。 - 友好的错误处理:脚本缺失、权限不足(部分文件删除失败会分别报告成功数与失败数)、
~/.claude/目录不存在等情况都有明确提示,不会静默失败。
和「普通工具」相比,它的差异化在于懂 Claude Code 的目录语义——知道哪些文件是命脉、哪些是缓存垃圾,并且把「进程」和「目录」两类清理合并成一次操作。
如何使用该技能?
技能的完整执行链路分为五个步骤,用户侧基本只需要一条命令加一次选择。
步骤 1:触发并解析参数
/refresh # 交互模式(默认)
/refresh --dry-run # 预览模式
/refresh --force # 强制模式,8 小时默认阈值
技能会从命令输入中解析 --dry-run 与 --force 两个标志。
步骤 2:进程清理
执行 claude-refresh.sh(若带 --force 则透传该参数),输出孤儿进程扫描结果。典型输出类似:
Claude Code 刷新
===================
未找到孤儿进程。
所有 3 个 Claude 进程都是活动会话。
步骤 3:清理孤儿后飞行标记
打印「=== 清理孤儿后飞行标记 ===」段落,查找并删除超时的后飞行标记;若一个都没找到,会明确输出「未找到孤儿后飞行标记。」
步骤 4:目录调查
运行 claude-cleanup.sh,展示 ~/.claude/ 的总大小、目录细分表格与可回收空间。示例输出中会出现类似「projects/ 7.0 GB、可清理 6.5 GB、980 个文件」这样的明细(示例数值仅供参考,实际以你机器为准)。
步骤 5:按模式执行
--dry-run:显示「干运行模式」,列出将删除的文件数与将回收的空间,然后结束,一行数据都不改。--force:直接按--age 8执行清理,输出「已删除 / 失败 / 回收空间 / 新总大小」。- 交互模式:先判断是否存在清理候选(脚本找到候选时返回退出码 1)。若无候选,输出「未在默认阈值内找到清理候选。所有文件要么受保护,要么最近修改过。」;若有候选,则弹出「选择清理年龄阈值」的三选一(8 小时默认 / 2 天 / 干净状态),再映射为
--age 8、--age 48、--age 0执行。
一次完整的交互式清理,输出大致如下(示例):
清理完成
================
已删除: 5577 个文件
失败: 0 个文件
回收空间: 6.7 GB
新总大小: 600.0 MB
输入输出小结:输入就是一条斜杠命令加可选标志,输出是「进程清理结果 + 标记清理结果 + 目录调查表格 + 清理结果」四段结构化文本,便于复制到工单或群里同步。
同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| 刷新技能(skill-refresh) | 专为 Claude Code 设计的资源清理技能 | 孤儿进程终止、~/.claude/ 目录清理、孤儿后飞行标记清理、三级年龄阈值、干运行预览 |
需在支持 Skill 的 Claude Code 环境中安装(技能ID 12885),并具备 claude-refresh.sh / claude-cleanup.sh 脚本 |
日常维护、磁盘告警、会话异常排查 | 优势:懂 Claude Code 目录语义、有受保护文件清单与 1 小时安全边距、一条命令完成两类清理;不足:仅覆盖 Claude Code 生态,需依赖脚本就位 |
手动 Shell 命令(ps + kill、find + rm) |
通用运维手段,零依赖 | 完全自由地筛选与删除 | 需熟悉进程与文件系统知识,误删风险自担 | 一次性排查、特殊定制需求 | 优势:无安装成本、最灵活;不足:易误杀活动会话、易删到凭据文件、每次都要重写命令 |
磁盘空间分析工具(du / ncdu 类) |
空间可视化与定位 | 目录大小排行、交互式浏览 | 需自行安装工具 | 找出「谁占了空间」 | 优势:可视化直观;不足:只诊断不清理,不理解 Claude Code 的进程与标记文件 |
| 自建清理脚本 + 定时任务(cron) | 自动化运维方案 | 按计划批量删除 | 需自写脚本、自测风险、自行维护 | 长期无人值守的机器 | 优势:可全自动;不足:规则写死易误删、缺少交互确认与干运行保护、维护成本高 |
从对比可以看出,刷新技能的定位不是「通用清理器」,而是「Claude Code 专属的保养工具」:它把安全边界(受保护文件、1 小时边距、只杀孤儿进程)内置在流程里,这正是手写命令和定时脚本最难保证的部分。
该技能的典型应用场景与实际体验情况
场景一:重度开发者的磁盘告警
前端/全栈开发者每天开多个 Claude Code 会话,几个月后笔记本剩余空间见底,却不知道 ~/.claude/ 已经膨胀到数 GB。使用方式是先 /refresh 看目录调查表,确认 projects/、debug/ 占用最大后,选择「8 小时(默认)」执行。实际体验:上手几乎零成本,输出表格一眼就能看懂空间去哪了;注意首次执行建议先 --dry-run 建立心理预期。
场景二:会话异常后的进程残留排查
当 Claude Code 出现卡顿、或者上次异常退出后再启动感觉「有东西在后台跑」时,用 /refresh 让技能扫描孤儿进程。实际体验:它只对 TTY 为 ? 的进程动手,正常活动会话会明确告诉你「所有 N 个进程都是活动会话」,误杀焦虑大幅降低。
场景三:技能中断导致流程卡住
某些技能执行到一半被中断,specs 目录下会遗留 .postflight-pending 或 .postflight-loop-guard 标记,导致后续流程一直认为「上一个后飞行没结束」。这时跑一次 /refresh,技能会清理超过 1 小时的孤儿标记。实际体验:这是最容易被忽视的价值点——很多人只会清缓存,却不知道标记文件才是流程卡死的元凶;干运行模式下会先列出「将删除以下孤儿标记」。
场景四:共享机器或自动化环境的定期保养
在多人共用或流水线使用的机器上,历史文件和残留进程会越积越多。把 /refresh --force 作为固定的维护动作(例如每周一次),跳过交互直接按 8 小时阈值清理。实际体验:适合「不想每次点选项」的用户;但由于跳过了确认,建议先确认团队内没有依赖旧文件的流程。
上手难度与注意事项:整体上手难度低,一条命令加一次选择即可;需要注意的是,删除类操作不可逆,务必先用 --dry-run 预览;另外若脚本缺失或权限不足,技能会给出明确报错/警告,按提示补齐脚本或调整权限即可。
该技能能为用户带来的价值
- 磁盘空间直接回收:技能详情中的示例流程展示了「总计 7.3 GB、可回收 6.7 GB、清理后新总大小 600.0 MB」的效果量级(示例数值,实际以本机为准),也就是说常见情况下能回收绝大部分体积,而不是杯水车薪。
- 把「不敢删」变成「敢删」:受保护文件清单(
settings.json、.credentials.json、sessions-index.json、history.jsonl)加上 1 小时安全边距,把最容易出事的两个雷区直接封死,用户不需要记住任何路径规则。 - 把多步运维压缩成一步:过去要分别做「看进程、杀进程、看目录、挑阈值、删文件」五件事,现在是一条
/refresh加一次选择,高频使用场景下节省的是重复判断的心力。 - 降低事故概率:只杀 TTY 为
?的孤儿进程、排除当前进程树,避免了手写pkill时误伤活动会话的经典事故;--dry-run则提供了「先看再删」的缓冲带。 - 顺带解决流程卡死问题:孤儿后飞行标记清理是很多用户自己都想不到的排查点,技能把它纳入标准流程,长期看能减少「莫名其妙的卡住」带来的排障时间。
- 长期价值:作为一种「定期保养」习惯的载体,它让 Claude Code 的本地资源占用保持可控,机器不会因为长期使用而持续劣化。
常见问题 FAQ
Q1:刷新技能怎么安装?装完怎么确认生效?
在支持 Skill 的 Claude Code 环境中搜索技能名「刷新技能」或技能ID 12885 添加(具体安装入口以官方说明为准),并确认 .claude/scripts/ 下存在 claude-refresh.sh 与 claude-cleanup.sh。验证方式是执行 /refresh --dry-run,能看到「Claude Code 刷新」与「Claude Code 目录清理」两段输出即视为生效。
Q2:这个技能收费吗? 技能本身是 Claude Code 的资源管理工具,其调用会走你自己的 Claude Code 环境;是否产生额外费用取决于你所在平台与模型的计费方式,以官方说明为准。
Q3:它会不会误删我的配置或误杀正在用的会话?
不会。技能明确列出受保护文件:sessions-index.json、settings.json、.credentials.json、history.jsonl 永不删除;最后 1 小时内修改的文件永不删除;进程侧只针对 TTY 为 ? 的孤儿进程,且排除当前进程树,永不杀死活动会话。保守起见仍建议先跑 --dry-run。
Q4:--dry-run、--force 和默认交互模式该怎么选?
想先看清楚会删什么、删多少,用 --dry-run;赶时间、信任默认 8 小时阈值,用 --force;想自己挑「8 小时 / 2 天 / 干净状态」三档阈值,直接 /refresh 走交互模式。频繁维护的机器适合 --force,重要工作机建议保持交互或干运行。
Q5:它和手动 rm -rf 或定时清理脚本比,优势在哪?
手动命令最灵活但风险最高,容易误删凭据与索引文件、误杀活动会话;定时脚本规则写死、缺乏预览与确认。刷新技能内置了安全边距、受保护清单、孤儿进程判定和三种运行模式,还额外处理了 .postflight-pending 这类普通脚本根本不会管的标记文件——它懂 Claude Code 的目录语义,这是替代方案最难复制的部分。