Install
openclaw skills install tvs-cc-migratorClaude Code 配置迁移工具。备份和恢复 ~/.claude/ 下的所有配置(CLAUDE.md、rules、skills、commands、agents、自定义插件、settings.json 等)。当用户提到备份配置、迁移 Claude Code、导出设置、恢复配置、换电脑等场景时使用此 skill。
openclaw skills install tvs-cc-migrator将本机的 Claude Code 配置打包备份,并在新机器上通过 Claude 智能恢复。
备份分两步:先扫描,再打包。不要直接打包,因为用户可能有敏感信息需要先确认。
运行扫描命令,检测 ~/.claude/ 下所有可迁移的配置:
node <skill-path>/scripts/backup.mjs --scan
脚本会输出一份 JSON 报告,包含所有检测到的配置项。每项包含:
id — 唯一标识,后续用于排除name — 显示名称description — 用途说明file_count — 文件数量contains_sensitive — 是否包含敏感信息sensitive_fields — 具体哪些字段是敏感的(仅 settings.json)读取扫描报告后,向用户展示检测到的所有配置:
检测到以下 Claude Code 配置:
[编号] [名称] — [描述]([文件数] 个文件)
...
以下配置包含敏感信息:
- settings.json 中的 env.ANTHROPIC_AUTH_TOKEN(有值)
- settings.json 中的 env.ANTHROPIC_BASE_URL(有值)
请确认:
1. 以上配置是否全部需要备份?如果有不需要的,请告诉我编号或名称
2. 敏感信息如何处理?
a. 清空敏感字段后备份(推荐,恢复时需手动填写)
b. 保留原值备份(注意:备份包中会包含密钥等敏感数据)
c. 跳过 settings.json 不备份
等待用户确认后再继续。
根据用户的选择构造命令:
# 备份所有(清空敏感字段)
node <skill-path>/scripts/backup.mjs [output-dir] --exclude=settings_sensitive
# 排除某些配置
node <skill-path>/scripts/backup.mjs [output-dir] --exclude=plugin_docx,agents
# 保留敏感字段原值
node <skill-path>/scripts/backup.mjs [output-dir]
output-dir 可选,默认输出到 ~/Desktop/cc-backup-<date>/--exclude=id1,id2 排除指定配置项(id 来自扫描报告)--exclude=settings_sensitive 特殊标记:保留 settings.json 但清空敏感字段备份完成后告知用户备份包路径和内容摘要。
恢复由 Claude 完成,不是脚本自动执行。这是因为恢复需要人为决策(覆盖 vs 追加)和敏感信息处理。
新机器上的用户只需让 Claude 读取备份包中的 RESTORE_GUIDE.md,Claude 即可按指引完成恢复。
向用户确认:
请选择恢复策略:
- 全量覆盖 — 用备份内容完全替换本机配置(已有配置会被覆盖)
- 追加合并 — 仅添加本机没有的配置,已有的不动
type 执行恢复根据 manifest.json 中每个条目的 type 字段决定恢复方式:
| type | 全量覆盖 | 追加合并 |
|---|---|---|
direct_copy | 直接覆盖目标路径 | 目标文件不存在时才复制 |
merge_settings | 合并 JSON 结构,清空敏感字段后写入,提示用户填写 | 仅补充缺失的键,不修改已有键 |
reinstall | 输出安装命令列表,让用户执行 | 仅列出本机未安装的 |
manifest.json 中的路径使用 <claude-home> 占位符,恢复时根据当前平台解析:
~/.claude%USERPROFILE%\.claudesettings.json 中的敏感信息由 manifest.json 的 sensitive_fields 字段标记。恢复时:
env 对象中所有包含 TOKEN、SECRET、KEY、PASSWORD、CREDENTIAL、AUTH 的键enabledPlugins、extraKnownMarketplaces),仅处理敏感值manifest.json 中 type: "reinstall" 的条目是市场插件,不直接复制文件。读取 reinstall_commands 字段,向用户展示安装命令列表,询问是否执行。
{
"version": "1.0",
"created_at": "ISO 时间戳",
"source_machine": "来源机器名",
"source_user": "用户名",
"source_platform": "darwin | linux | win32",
"summary": {
"total_files": "总文件数",
"total_items": "配置项数"
},
"items": [
{
"name": "显示名称",
"type": "direct_copy | merge_settings | reinstall",
"source": "备份包内的相对路径",
"target": "恢复到的目标路径(使用 <claude-home> 占位符)",
"description": "用途说明",
"files": ["文件列表"],
"sensitive_fields": ["仅 merge_settings 类型"],
"reinstall_commands": ["仅 reinstall 类型"]
}
]
}
Claude 读取 manifest.json 后应能完整理解: