Files
collection-claude-code-sour…/docs/cc_analysis/analysis_20260401/清除Claude_Code追踪数据指南.md
2026-04-04 09:43:49 -07:00

8.3 KiB
Raw Blame History

macOS 上清除 Claude Code 追踪数据指南

基于 Claude Code 源码2026-03-31 泄露快照512K 行 TypeScript的逆向分析。 所有文件路径和字段名均从源码中确认。


背景Claude Code 追踪了什么?

Claude Code 不收集硬件指纹(无 MAC 地址、CPU 型号、内存大小、GPU 信息),但通过以下机制实现用户追踪:

追踪标识 持久性 存储位置 说明
userID 永久(直到手动删除) ~/.claude.json 随机生成的 64 位十六进制字符串,跨会话追踪主键
anonymousId 永久 ~/.claude.json 格式 claudecode.v1.<uuid>,备用追踪 ID
accountUuid 永久(绑定账号) ~/.claude.jsonoauthAccount OAuth 登录后直接关联身份
emailAddress 永久 ~/.claude.jsonoauthAccount 登录邮箱
rh (仓库哈希) 按仓库 每次 API 请求 Header git remote URL 的 SHA256 前 16 位
Statsig Stable ID 永久 ~/.claude/statsig/ 特性开关系统的设备标识

数据流向:

  • Anthropic 1P/api/event_logging/batch(完整环境数据 + Auth
  • Datadoghttps://http-intake.logs.us5.datadoghq.com(白名单事件,已脱敏)
  • OTLP(可选)→ 用户自配的端点(默认关闭)

第一级:重置设备标识(最重要)

这是跨会话追踪的主键。清除后你对 Anthropic 来说就是一台"全新设备"。

# 查看当前的追踪 ID
grep -E '"userID"|"anonymousId"|"firstStartTime"|"claudeCodeFirstTokenDate"' ~/.claude.json
# 删除追踪标识(保留其他配置不变)
python3 -c "
import json, os
p = os.path.expanduser('~/.claude.json')
with open(p, 'r') as f: d = json.load(f)
removed = []
for k in ['userID', 'anonymousId', 'firstStartTime', 'claudeCodeFirstTokenDate']:
    if k in d:
        removed.append(k)
        del d[k]
with open(p, 'w') as f: json.dump(d, f, indent=2)
print(f'已删除: {removed}')
print('下次启动 Claude Code 会自动生成新的 userID')
"

效果: 下次启动时会生成全新的 userID,之前的使用记录无法与你关联。


第二级:清除遥测和分析数据

# 未成功上报的分析事件(包含完整的环境信息、会话数据)
rm -rf ~/.claude/telemetry/

# Statsig/GrowthBook 特性开关缓存(包含 stable_id 设备标识)
rm -rf ~/.claude/statsig/

# 统计缓存
rm -f ~/.claude/stats-cache.json

效果: 清除本地缓存的遥测数据和特性开关系统的设备标识。


第三级:清除会话和历史记录

# 完整命令历史(你输入过的所有提示词)
rm -f ~/.claude/history.jsonl

# 会话快照
rm -rf ~/.claude/sessions/

# 大段粘贴内容的哈希缓存
rm -rf ~/.claude/paste-cache/

# Shell 环境快照
rm -rf ~/.claude/shell-snapshots/

# 会话环境变量
rm -rf ~/.claude/session-env/

# 文件编辑历史Claude 做过的每次文件修改)
rm -rf ~/.claude/file-history/

# 调试日志
rm -rf ~/.claude/debug/

效果: 清除所有本地会话痕迹。不影响 Claude Code 正常使用。


第四级:清除 OAuth 账号关联

# 查看当前关联的账号信息
python3 -c "
import json, os
with open(os.path.expanduser('~/.claude.json')) as f: d = json.load(f)
oa = d.get('oauthAccount', {})
print(f\"账号 UUID: {oa.get('accountUuid', '无')}\")
print(f\"邮箱: {oa.get('emailAddress', '无')}\")
"
# 从 macOS Keychain 删除 OAuth Token
security delete-generic-password -s "claude-code" 2>/dev/null
security delete-generic-password -s "claude-code-credentials" 2>/dev/null

# 清除配置文件中的账号缓存
python3 -c "
import json, os
p = os.path.expanduser('~/.claude.json')
with open(p, 'r') as f: d = json.load(f)
removed = []
for k in ['oauthAccount', 's1mAccessCache', 'groveConfigCache',
          'passesEligibilityCache', 'clientDataCache',
          'cachedExtraUsageDisabledReason', 'githubRepoPaths']:
    if k in d:
        removed.append(k)
        del d[k]
with open(p, 'w') as f: json.dump(d, f, indent=2)
print(f'已删除: {removed}')
"

效果: 断开与 Claude.ai 账号的本地关联。下次使用需要重新登录。


第五级:完全重置(核弹选项)

# 1. 备份你的自定义配置
mkdir -p ~/Desktop/claude-backup
cp ~/.claude/CLAUDE.md ~/Desktop/claude-backup/ 2>/dev/null
cp ~/.claude/settings.json ~/Desktop/claude-backup/ 2>/dev/null
cp -r ~/.claude/skills ~/Desktop/claude-backup/ 2>/dev/null
cp -r ~/.claude/hooks ~/Desktop/claude-backup/ 2>/dev/null
echo "已备份到 ~/Desktop/claude-backup/"

# 2. 删除所有 Claude Code 数据
rm -rf ~/.claude/
rm -f ~/.claude.json

# 3. 清除 Keychain 中的 Token
security delete-generic-password -s "claude-code" 2>/dev/null
security delete-generic-password -s "claude-code-credentials" 2>/dev/null

echo "已完全重置。下次启动 Claude Code 会重新初始化。"

效果: 等同于全新安装。所有配置、历史、记忆、技能、插件设置全部清除。


防止未来追踪

方法 1禁用非必要网络流量

~/.claude/settings.json 中添加:

{
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}

效果: 禁用分析上报、GrowthBook 特性开关拉取、配额预检等非必要请求。

方法 2使用第三方云后端

源码确认:使用 Bedrock 或 Vertex 时,isAnalyticsDisabled() 返回 true,完全跳过所有分析代码。

# 使用 AWS Bedrock需要 AWS 凭证)
export CLAUDE_CODE_USE_BEDROCK=1

# 或使用 Google Vertex AI需要 GCP 凭证)
export CLAUDE_CODE_USE_VERTEX=1

方法 3定期自动清理

创建一个定时清理脚本 ~/claude-privacy-clean.sh

#!/bin/bash
# 清除 Claude Code 追踪数据(保留配置)

rm -rf ~/.claude/telemetry/
rm -rf ~/.claude/statsig/
rm -f ~/.claude/stats-cache.json
rm -f ~/.claude/history.jsonl
rm -rf ~/.claude/sessions/
rm -rf ~/.claude/paste-cache/
rm -rf ~/.claude/shell-snapshots/
rm -rf ~/.claude/session-env/
rm -rf ~/.claude/debug/

# 重置 device ID
python3 -c "
import json, os
p = os.path.expanduser('~/.claude.json')
if os.path.exists(p):
    with open(p,'r') as f: d = json.load(f)
    for k in ['userID','anonymousId','firstStartTime','claudeCodeFirstTokenDate']:
        d.pop(k, None)
    with open(p,'w') as f: json.dump(d,f,indent=2)
"

echo "[$(date)] Claude Code 追踪数据已清除"
# 添加执行权限
chmod +x ~/claude-privacy-clean.sh

# 可选:添加到 crontab 每天自动执行
# crontab -e
# 0 3 * * * ~/claude-privacy-clean.sh >> ~/claude-clean.log 2>&1

各级清理的影响对比

操作 对 Anthropic 的效果 对你的影响
重置 Device ID 无法关联历史使用数据 无感知,自动生成新 ID
清除遥测 本地缓存的分析事件不会补发 无感知
清除历史 丢失命令历史和 ctrl+r 搜索
清除 OAuth 断开账号关联 需要重新登录
完全重置 等同全新用户 丢失所有自定义配置
禁用非必要流量 不再接收分析数据 特性开关可能不更新
使用 Bedrock/Vertex 分析代码完全不执行 需要云厂商凭证

附:数据文件速查表

文件/目录 包含的追踪数据
~/.claude.json userID, anonymousId, oauthAccount, 首次使用时间, GitHub 仓库映射
~/.claude/telemetry/ 未上报的 1P 分析事件JSON含完整 EnvContext
~/.claude/statsig/ Statsig stable_id, 特性开关缓存
~/.claude/stats-cache.json 统计数据缓存
~/.claude/history.jsonl 完整命令历史(你输入的每一条提示词)
~/.claude/sessions/ 会话元数据
~/.claude/paste-cache/ 粘贴内容的哈希地址缓存
~/.claude/file-history/ Claude 做过的文件修改记录
~/.claude/debug/ 调试日志
~/.claude/shell-snapshots/ Shell 环境快照
macOS Keychain → claude-code OAuth access/refresh token

来自AI超元域 | B站频道https://space.bilibili.com/3493277319825652

基于 Claude Code 源码逆向分析2026-03-31