# 手机上开的 Claude Code 会话，回到电脑怎么接着做

> 在手机上用 BotBus 开了一个 Claude Code 或 Codex 会话，回到电脑想接着做却找不到？这篇讲原因，以及在终端、Claude 桌面 App 里接上同一条会话的办法和限制。

Canonical: https://botbus.io/blog/resume-phone-session-on-desktop  
Published: 2026-11-01

## 先说结论

在手机上用 [BotBus](https://botbus.io/) 开的会话，就是电脑上一条普通的 agent 会话，回到电脑可以原样接着做：Mac 版菜单栏「本机 Agent」里把鼠标停在某个 agent 上，详情里列出从手机发起的会话，点「继续聊」就会打开「终端」，用这个 agent 自己的命令（比如 `claude --resume <id>`、`codex resume <id>`）接上同一条会话。Claude Code 的会话还可以交给 Claude 桌面 App，在它的侧栏里接着聊。唯一要等的是：手机上那一轮还在跑、或者在等你审批和回复时，不能接，两边同时写一条会话，记录会分叉。

## 为什么会“找不到”手机上开的会话

很多人第一次遇到的情况是：路上用手机让 Claude Code 开了个头，回到电脑打开 Claude 桌面 App，侧栏里没有这条会话；在终端里敲 `claude --resume`，也不一定一眼认出是哪条。

原因在于手机上的任务是怎么跑的。你在手机上新建任务时，BotBus 在电脑上替你起的是 agent 的无界面进程：Claude Code 是 `claude -p`，Codex 是常驻的 `codex app-server`，Hermes 是 `hermes chat -q`，其他 agent 各有各的方式。会话本身照常写在 agent 自己的数据里，和你在电脑上手动开的会话存在同一个地方，只是来源不一样。

各家的桌面界面未必列这类会话。以 Claude 桌面 App 为例，它的侧栏、`/resume` 列表和「Import Claude Code CLI Sessions…」都会跳过 `claude -p` 起的会话（transcript 里标的是 `entrypoint: sdk-cli`），所以手机上开的 Claude 会话不会自己出现在桌面 App 里。会话没丢，只是桌面 App 不主动收。

所以问题不是“怎么把会话从手机搬回电脑”，会话一直在电脑上；问题是“怎么在电脑上找到它，并用一个能交互的界面接上”。

## 自己动手的办法

不装 BotBus 也有办法，只是要多几步：

- **Claude Code**：进项目目录跑 `claude --resume`，在列表里挑；或者知道会话 id 时直接 `claude --resume <session-id>`。要注意 Claude Code 按当前目录找会话，目录不对就找不到。
- **Codex**：`codex resume` 会列出可以接续的会话，也可以 `codex resume <id>` 直接接。
- **其他 agent**：看各自的文档，比如 Hermes 的 `--resume`、Pi 的 `--session`。

这些办法的麻烦在于你得先知道会话 id 和工作目录。手机开的会话如果开在 git worktree 里，目录还不是项目根目录。BotBus 做的事情，就是把“手机上开过哪些会话、各在哪个目录、该用哪条命令”替你记下来。

## 在 Mac 上：菜单栏里点「继续聊」

以下是 Mac 版菜单栏的界面：

1. **打开菜单栏的 BotBus**，在「本机 Agent」里把鼠标停在某个 agent 那一行上（或点一下）。旁边会弹出这个 agent 的详情，像系统菜单的子菜单。
2. **找到「手机发起的会话」**。这里列出最近 30 条从手机开的会话，更多的只显示条数。
3. **点会话右边的「继续聊」**。BotBus 会打开「终端」，先 `cd` 进这条会话实际的工作目录（worktree 里开的会话就进那个 worktree），再用 agent 自己的命令接上：
   - Claude Code：`claude --resume <id>`
   - Codex：`codex resume <id>`
   - Hermes：`hermes --resume <id>`
   - Pi：`pi --session <记录文件>`
   - OpenClaw：`openclaw tui --session <key>`
   - OpenCode：`opencode --session <id>`
4. **接着在终端里聊**。agent 退出后，窗口里会留一个停在项目目录的 shell，方便你顺手 `git diff` 或跑测试。

几个细节：Hermes、Pi、OpenClaw、OpenCode 这类用 node 或 python 写的 CLI，BotBus 会把它们所在的目录临时放到这条命令的 PATH 最前面，和手机任务用的是同一个运行时，不会被你 shell 里旧版本的 node 卡住；打开终端用的是一次性脚本，不需要给 BotBus 开“自动化”授权。

“手机发起过”这件事 BotBus 记在本机，重启后仍然认得。这份记录是从有这个功能的版本开始积累的，更早之前手机开的会话不在列表里，那些可以用上一节的办法自己接。

## Claude Code 的会话：交给 Claude 桌面 App

如果你平时在 Claude 桌面 App 里用 Claude Code，而不是终端，Mac 版还有另一条路。

BotBus 会检查 `claude://` 链接实际会交给哪个 App。装的是较新版本的 Claude 桌面 App 时，Claude 那一栏的「继续聊」会变成下拉菜单，有两个选项：「在终端里继续」和「在 Claude 桌面 App 里继续」。选后者，桌面 App 会把这条会话连同完整的对话记录收进自己的侧栏并切过去，之后就在桌面 App 里接着聊，会话也一直留在它的列表里。桌面 App 版本不够时，按钮照旧直接开终端，并提示装了新版桌面 App 后可以在桌面 App 里接着聊。

BotBus 用的是 Claude 桌面 App 的恢复链接（`claude://resume?session=<id>`），不写桌面 App 的私有目录，导入由桌面 App 自己完成。这条链接没写进 Claude 的文档，所以要提前说清楚：桌面 App 哪天改了它，就只剩终端那条路。桌面 App 没登录等原因导不进去时，由它自己提示。

## 不想每次都点：自动加到 Claude 桌面 App

Mac 版 Claude Code 设置页里有一项「手机上新开的会话自动加到 Claude 桌面 App」，默认打开。手机上新开的 Claude 会话这一轮停下后，BotBus 会把它交给桌面 App。

因为桌面 App 每收到一条都会显示窗口并切过去，BotBus 不会在你干活时打断你，只挑两种时候交：

- 你刚把 Claude 桌面 App 切到前面或刚打开它；
- 电脑闲置一分钟以上，而且前面不是全屏的别的 App（看视频、演示、全屏共享时不交）。

两种都不是的时候，BotBus 先发一条系统通知「手机上的新会话」，点它会马上交过去；不点就等合适的时机，交了以后通知自动收回。桌面 App 没开着时 BotBus 不会替你打开它。

为了不把一大串旧会话一口气塞进桌面 App，自动交只管开关打开以后、24 小时以内新开的会话；交过的不会再交，所以你在桌面 App 里归档掉的会话不会被拉回来。你在菜单里手动选过“终端”或“桌面 App”的会话，也不再自动交。

会话名会一起带过去：手机新建 Claude 会话时，BotBus 用首条 prompt（截到 80 字）给会话起名，桌面 App 导入后拿它当标题，终端里 `/resume` 列表也会显示这个名字。以前开的会话，或续聊时分出来的新会话没有名字，导入后在桌面 App 里显示为 "Untitled"。

## Windows 和 Linux

- **Windows 版**：托盘右键菜单里的「本机 Agent」每个 agent 是一个子菜单，同样列出手机发起的会话，点一条会在新的控制台窗口里用 agent 的命令接上；还在跑的会话是灰的。没有交给 Claude 桌面 App 的那条路。
- **Linux 版**：目前没有这个入口。可以照“自己动手的办法”一节，在会话所在目录用 agent 自己的 resume 命令接上。

安装方法见[下载区](https://botbus.io/#download)。

## 限制与边界

- **这一轮在跑、或在等手机时不能接**。手机上那一轮还在执行、或者在等你审批、回答提问时，「继续聊」是灰的；点下去的那一刻 BotBus 还会按最新状态再查一次（菜单开着时手机可能刚发了续聊），不能接就弹窗说明原因。先在手机上处理完、或[中断](https://botbus.io/blog/stop-ai-agent-remotely)这一轮再接。
- **接上以后，同一时间只在一边说话**。终端里那个 agent 进程在跑的时候，再从手机续聊同一条会话，等于两个进程写一条记录。建议在电脑上聊完、退出 agent 后再回到手机。
- **不是所有 agent 都有按钮**。DeepSeek Harness 和其余经 ACP 接入的 agent 没有可核实的接续命令，不给按钮。手机上开的 DeepSeek Harness 会话可以在 `dsh web` 的会话列表里看到。
- **Codex 桌面 App 是另一回事**。这里讲的是在终端里接上 Codex 会话。想让 Codex 桌面 App 和手机同时用一条会话，要先退出已经开着的 Codex，再从 BotBus 菜单栏「本机 Agent」的 Codex 那一行点「启动 Codex」；手机续聊本身的用法见[在手机上续聊](https://botbus.io/blog/continue-agent-session-on-phone)。
- **Claude 桌面 App 那条路依赖未公开的链接**。它可能随桌面 App 更新失效，到时只剩终端。
- **电脑要开着**。会话都在电脑上，手机上看到的是同步过去的内容；手机和电脑之间的内容端到端加密，服务器仍看得到设备编号、在线状态、更新时间和数据大小，见[端到端加密说明](https://botbus.io/docs/security)。

## 常见问题

### 手机上开的会话，是不是只能在手机上续聊？

不是。会话存在电脑上 agent 自己的数据里，和电脑上手动开的会话没有区别。回到电脑后可以用 agent 的 resume 命令接上，接完再回手机续聊也可以，只要两边别同时在跑。

### 为什么 Claude 桌面 App 的侧栏里看不到手机开的会话？

Claude 桌面 App 的侧栏、`/resume` 列表和导入 CLI 会话的功能都会跳过 `claude -p` 起的会话，而手机任务正是这样起的。Mac 版 BotBus 可以经恢复链接把会话交给桌面 App，默认会在合适的时机自动交，也可以在菜单里手动选「在 Claude 桌面 App 里继续」。

### 「继续聊」为什么是灰的？

这条会话这一轮还在跑，或者在等你在手机上审批、回答。等它停下，或在手机上中断这一轮，按钮就能用了。

### 在 worktree 里开的会话，电脑上接的时候在哪个目录？

在那个 worktree 里。BotBus 会先 `cd` 进会话实际的工作目录再执行 resume 命令，不会跑到主仓库去。worktree 的用法见[从手机新建任务](https://botbus.io/blog/start-coding-task-from-phone)。

### 以前手机开的会话为什么不在列表里？

“手机发起过”是从有这个功能的 BotBus 版本开始记录的，更早的会话没有记下来。它们仍然在 agent 的数据里，可以进项目目录用 `claude --resume`、`codex resume` 这类命令自己找。装最新版 BotBus 之后，新开的会话都会进列表。
