全部教程如何清理本地 Claude Code 缓存和配置(macOS / Windows 双系统)

如何清理本地 Claude Code 缓存和配置(macOS / Windows 双系统)

我是 Quentin,OpenClaw 作者,OpenClaw 拼车的维护者。

Claude Code 跑久了之后,本地会沉淀下一堆会话记录、shell 快照、todo、统计数据。它们躺在 ~/.claude/ 里,单个文件不大但加起来很猛 —— 我自己一台主开发机三个月就攒到 1.5 GB。

更糟的是:遇到一些诡异 bug,比如启动卡住、登录态错乱、模型切换失效,多半都是这堆历史数据把 Claude Code 自己绊住了

这篇给你两套方案:温柔派(只挪历史会话,保留登录态)和 核弹派(连 auth 一起重置)。两套都封装成可复用的 shell 脚本,下次再出问题直接跑就行。

清完一切想重新接拼车 token,一行就回到工作状态:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

为什么要清

Claude Code 在用户目录下用到的关键路径:

路径作用清掉影响
~/.claude/projects/各项目的会话记录历史对话消失
~/.claude/shell-snapshots/工具调用前的 shell 状态快照没影响,纯调试用
~/.claude/todos/当前 todo list当前 todo 丢失
~/.claude/statsig/远端实验配置缓存自动重新拉
~/.claude/ 其他插件、cache、log大概率没影响
~/.claude.json登录态 + 全部配置(含 auth profile)清掉 = 需要重新登录

所以清理策略要分两档:

  • 常规清理:留 ~/.claude.json 的 auth、留插件配置,只挪 projects / shell-snapshots / todos / statsig
  • 彻底重置:连 .claude 目录和 .claude.json 一起改名归档

macOS / Linux:脚本化清理

我建议永远不要 rm -rf。把目录改个名归档保留,万一发现某个项目记录有用还能找回来。下面两个脚本都按这个思路。

方法一:ccclear.sh —— 温柔清理

只挪历史会话目录,保留登录态。日常清理推荐这个。

#!/bin/bash
# ccclear.sh —— 温柔清理 Claude Code 历史记录
# 不动 ~/.claude.json,登录态保留
 
set -euo pipefail
 
TS=$(date "+%Y%m%d%H%M%S")
BASE=~/.claude
 
if [ ! -d "$BASE" ]; then
  echo "没有 ~/.claude 目录,无需清理"
  exit 0
fi
 
# 退出运行中的 Claude Code
pkill -f "claude" 2>/dev/null || true
 
# 挪走历史会话和实验缓存
[ -d "$BASE/projects" ]        && mv "$BASE/projects"        "$BASE/projects-$TS"
[ -d "$BASE/shell-snapshots" ] && mv "$BASE/shell-snapshots" "$BASE/shell-snapshots-$TS"
[ -d "$BASE/todos" ]           && mv "$BASE/todos"           "$BASE/todos-$TS"
[ -d "$BASE/statsig" ]         && mv "$BASE/statsig"         "$BASE/statsig-$TS"
 
echo "清理完成,归档时间戳:$TS"
ls -la "$BASE"

跑法:

chmod +x ccclear.sh
./ccclear.sh

方法二:ccmoveconfig.sh —— 彻底重置

~/.claude 整个目录和 ~/.claude.json 一起改名归档。等于全新初始化,重新启动会要求重新登录。

#!/bin/bash
# ccmoveconfig.sh —— 彻底重置 Claude Code
# 包括登录态、全部历史、所有配置
 
set -euo pipefail
 
TS=$(date "+%Y%m%d%H%M%S")
 
pkill -f "claude" 2>/dev/null || true
 
[ -d ~/.claude       ] && mv ~/.claude       ~/.claude-$TS
[ -f ~/.claude.json  ] && mv ~/.claude.json  ~/.claude.json-$TS
 
echo "已彻底归档,时间戳:$TS"
echo "下次启动 claude 会要求重新登录"

跑完之后怎么办?

如果你跑的是温柔版ccclear.sh),直接 claude 即可,登录态都还在。

如果你跑了彻底版ccmoveconfig.sh),别去再点 /login 折腾了,直接走 OpenClaw 拼车一键回血:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

脚本会重新写出 ~/.claude.json 的 auth profile,把 ANTHROPIC 环境变量也补好。一行结束。


Windows 系统

Windows 上 PowerShell 走法基本一致,路径换成 %USERPROFILE%

方法一:图形界面手动改名

打开文件资源管理器,地址栏输入 %USERPROFILE%(即 C:\Users\<你的用户名>)。找到这两项:

  • .claude\ 目录
  • .claude.json 文件

右键改名,加上日期后缀:

  • .claude.claude-20260427
  • .claude.json.claude.json-20260427

下次启动 Claude Code 等于全新初始化。

方法二:PowerShell 脚本

把下面存成 ccclear.ps1

# ccclear.ps1 —— Windows 版彻底清理
$ts = Get-Date -Format "yyyyMMddHHmmss"
$base = "$env:USERPROFILE"
 
Get-Process -Name "claude" -ErrorAction SilentlyContinue | Stop-Process -Force
 
if (Test-Path "$base\.claude")      { Rename-Item "$base\.claude"      ".claude-$ts" }
if (Test-Path "$base\.claude.json") { Rename-Item "$base\.claude.json" ".claude.json-$ts" }
 
Write-Host "清理完成,归档时间戳:$ts"
Get-ChildItem $base -Filter ".claude*"

跑法(管理员或普通 PowerShell 都行):

powershell -ExecutionPolicy Bypass -File .\ccclear.ps1

我自己的清理节奏

跑了快一年了,沉淀下这套节奏:

频率跑哪个触发条件
每月一次ccclear.sh例行卫生
出现「启动卡住 / 模型不切换」ccclear.sh一般就好了
出现「登录失败 / token 过期循环」ccmoveconfig.sh + 拼车 setup核弹级
大版本升级前ccclear.sh防止旧 statsig 配置干扰
切换 OpenClaw 网关或换 tokenccmoveconfig.sh + 拼车 setup必做

归档目录每三个月手动看一次有没有要保留的会话,没有就 rm -rf ~/.claude-* 永久删除。


几条最佳实践

  1. 永远归档不要直接删mv 重命名几乎零成本,删了就追不回来。
  2. 清理前确认 Claude Code 完全退出。脚本里我加了 pkill,手动操作时记得自己先关。
  3. 重要 prompt 写到项目 CLAUDE.md~/.claude 里的对话历史不是版本可控的,别把关键 prompt 留在那。CLAUDE.md 模板见 CLAUDE.md 约束提示词指南
  4. 彻底清完之后用拼车一键恢复。比手动登录快得多,也避免奇怪的 OAuth 重定向问题。
  5. 磁盘 < 5GB 时立刻清。Claude Code 在磁盘满的时候会出现非常诡异的写入错误。

立即开始

清完之后让 Claude Code 在 30 秒内回到工作状态:

curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x

更多文档见 https://cp.bizq.net


相关文章