Claude Code 会话迁移到新电脑
用 session-porter 把 Claude Code 会话 Pack 成单文件,Mac 与 Windows 互迁,路径 JSON 自动重写,凭证需单独备份。

换电脑或从 Mac 切到 Windows 继续昨天那轮 Claude Code,最痛的是会话历史和工作区状态对不上。claude code 会话怎么迁移电脑,社区工具 session-porter 用 Pack/Unpack 把本地会话目录打成单文件,跨平台路径还会自动重写。
session-porter 做什么
session-porter 是第三方开源 CLI,不是 Anthropic 官方能力。它针对 Claude Code 存在本机的会话数据:打包 Application Support 下的 claude-code-sessions 相关目录,生成一个可拷贝的单文件,在目标机器 Unpack 还原。
设计目标是「单文件、零依赖、可 undo」。不装 Node 全局包也能跑(具体以仓库 README 的安装说明为准)。Mac 与 Windows 双向都支持,难点在路径:两边用户目录、盘符、斜杠方向不同,porter 会在 JSON 里做四层转义重写,让会话里的文件引用尽量指向新机器上的正确位置。
Pack 与 Unpack 流程
在旧机器上,先正常退出 Claude Code,避免打包时会话文件仍被占用。进入 session-porter 目录或使用其发布包,执行 Pack 命令(README 里的具体子命令名以仓库为准),输出一个 .porter 或类似扩展名的归档。
把该文件通过 U 盘、内网盘或加密通道拷到新电脑。新机器装好 Claude Code 后,先不要急着开旧项目,执行 Unpack 指向刚才的文件。porter 会把会话树写进新机的 Application Support 对应位置,并尝试修正路径字段。
Unpack 完成后启动 Claude Code,在会话列表里应能看到迁移过来的线程。若某条会话引用的仓库路径在新机器不存在,对话里的 @ 文件链接可能失效,需要在新路径重新打开同一 git 仓库。Windows 目标机注意盘符从 C: 变 D: 时 porter 是否重写了绝对路径,Mac 目标机注意用户名从 luo 变 work 时的 home 前缀。
路径重写为什么会失败
session-porter 在 JSON 里做四层转义重写,是因为 Claude Code 会话文件里嵌套了带反斜杠的 Windows 路径和带引号的 Unix 路径。大部分仓库相对路径能自动对齐,但以下情况常留 manual fix:
会话里硬编码了 /Users/alice/old-repo,新机用户是 bob,Unpack 后要把仓库 clone 到同名目录或手动改 conflicts。会话附件引用了旧机临时目录 /tmp/scratch,新机不存在,该附件条目会空。子模块路径若在新机未 init,相关 @ 也会红。
处理方式是打开 conflicts 目录里的 diff,优先保留消息文本与 tool 输出,路径类字段按新机实际目录批量替换。不要直接删 conflicts 整个文件夹,除非确定丢弃目标机原有同 ID 会话。
冲突与 merge 策略
目标机已有 Claude Code 会话时,Unpack 可能撞上同 ID 或同名的条目。session-porter 采用 merge only:不静默覆盖,冲突项写入 .claude/porter/conflicts,由你人工决定保留哪边。
建议迁移前在新机器也 Pack 一次当备份。出现 conflicts 目录时,逐条对比冲突清单,通常保留较新的工作线程、删掉已 abandoned 的实验会话。merge only 比强制覆盖安全,但意味着你不能假设「Unpack 一定全自动完成」。
凭证与敏感信息
porter deliberately 不打包 API 密钥、OAuth token 等凭证。会话文本和历史还在,身份验证要在新机器重新登录 Claude Code,BYOK 或 CLI 基础配置 里的环境变量也要单独拷贝。
不要把 Pack 文件丢进公开网盘。里面可能有源码片段、内部 URL、对话里的密钥占位符。传输通道至少要有访问控制,Unpack 完成后可按 README 删除归档。
undo 与边界
Unpack 前 porter 会记录 undo 点,搞砸了可以回滚到 Unpack 之前的状态。这不能替代整机 Time Machine,只对 Claude Code 会话目录生效。
它不迁移:Cursor Cloud Agent 远端会话、Codex 云端线程、或 本地与 Cloud Agent 交接 那类跨产品状态。只覆盖 Claude Code 桌面/CLI 落在本机的 session 存储。团队若用共享机器,迁移前确认合规是否允许把会话带出公司设备。
和官方备份的预期差
Anthropic 未提供「导出全部会话到另一 OS」的一键功能,session-porter 填的是这个空档。版本随 Claude Code 存储格式变化可能失效,迁移前看仓库最近 commit 是否支持你当前的 Claude Code 版本。
实操顺序:旧机 Pack → 安全传输 → 新机备份现有会话 → Unpack → 处理 conflicts → 重新登录 → 打开仓库验证 @ 引用。六步走完,比手动复制 Application Support 文件夹少踩路径坑。
Mac 与 Windows 互迁注意点
Mac 会话数据通常在 ~/Library/Application Support/ 下,Windows 在 %APPDATA% 对应目录。porter 打包的是逻辑会话树,不是整个 Application Support,体积通常可控,但仍可能上百 MB 若线程里贴了大段日志。
从 Mac 迁到 Windows 时,先在新机装好同 major 版本的 Claude Code,再 Unpack。版本差距大时存储 schema 可能不兼容,README issue 区常有版本对照表。从 Windows 迁 Mac 时,注意 NTFS 盘拷到 APFS 后文件名大小写敏感变化,极少见但会影响 conflicts 里的路径匹配。
公司设备策略若禁止拷贝 Library 目录,session-porter 仍属用户自行工具,走合规审批后再 Pack。个人设备间迁移一般无此限制。