用途:在移动或重命名项目文件夹时,同步迁移 Claude Code 的状态数据,避免历史丢失。
主要能力:目录级模式(默认)一次完成四件事——在磁盘上执行 mv、重写 ~/.claude/projects/<slug>/.jsonl 会话存储(含子目录 slug)、重写 ~/.claude/history.jsonl 提示词上箭头历史、重写 ~/.claude/sessions/.json 运行中会话记录。会话级模式(通过 --session/--grep/--pick 启用)只迁移选定的 .jsonl 文件,重写其 cwd,并只更新匹配的运行中会话记录,不触碰 history.jsonl,也不移动文件夹本身。
使用方式:基本命令为 npx -y @lovstudio/cc-mv <FROM> <TO> [options]。常用选项包括 --dry-run 预览、--json 机器可读输出、--no-mv 仅迁移 CC 状态(用于文件夹已被外部移动后的恢复)、--list-sessions 列出会话、--session <id> 指定会话、--grep <pattern> 按首条用户提示正则匹配、--pick 交互选择、--delete-source 删除源会话。别名 npx -y @lovstudio/cc-migrate-session <FROM> <TO> 默认等价于 --no-mv。迁移后需在新目录执行 cd <TO> 与 claude --resume 重启 Claude Code,当前会话无法自行切换 cwd。
适用场景:整体移动或重命名项目、文件夹已外部移动后恢复历史、只迁移部分会话或按主题拆分会话历史。
限制:会话级模式忽略子目录 slug;目录级模式不会删除旧 slug 目录,源会话默认保留;TO 已存在时拒绝执行 fs mv;会话级与 --mv 组合会被拒绝;格式错误的 jsonl 行原样保留。建议确认 claude --resume 可用后再删除旧 slug 目录。