先说结论
在手机上用 BotBus 开的会话,就是电脑上一条普通的 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 版菜单栏的界面:
- 打开菜单栏的 BotBus,在「本机 Agent」里把鼠标停在某个 agent 那一行上(或点一下)。旁边会弹出这个 agent 的详情,像系统菜单的子菜单。
- 找到「手机发起的会话」。这里列出最近 30 条从手机开的会话,更多的只显示条数。
- 点会话右边的「继续聊」。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>
- Claude Code:
- 接着在终端里聊。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 命令接上。
安装方法见下载区。
限制与边界
- 这一轮在跑、或在等手机时不能接。手机上那一轮还在执行、或者在等你审批、回答提问时,「继续聊」是灰的;点下去的那一刻 BotBus 还会按最新状态再查一次(菜单开着时手机可能刚发了续聊),不能接就弹窗说明原因。先在手机上处理完、或中断这一轮再接。
- 接上以后,同一时间只在一边说话。终端里那个 agent 进程在跑的时候,再从手机续聊同一条会话,等于两个进程写一条记录。建议在电脑上聊完、退出 agent 后再回到手机。
- 不是所有 agent 都有按钮。DeepSeek Harness 和其余经 ACP 接入的 agent 没有可核实的接续命令,不给按钮。手机上开的 DeepSeek Harness 会话可以在
dsh web的会话列表里看到。 - Codex 桌面 App 是另一回事。这里讲的是在终端里接上 Codex 会话。想让 Codex 桌面 App 和手机同时用一条会话,要先退出已经开着的 Codex,再从 BotBus 菜单栏「本机 Agent」的 Codex 那一行点「启动 Codex」;手机续聊本身的用法见在手机上续聊。
- Claude 桌面 App 那条路依赖未公开的链接。它可能随桌面 App 更新失效,到时只剩终端。
- 电脑要开着。会话都在电脑上,手机上看到的是同步过去的内容;手机和电脑之间的内容端到端加密,服务器仍看得到设备编号、在线状态、更新时间和数据大小,见端到端加密说明。
常见问题
手机上开的会话,是不是只能在手机上续聊?
不是。会话存在电脑上 agent 自己的数据里,和电脑上手动开的会话没有区别。回到电脑后可以用 agent 的 resume 命令接上,接完再回手机续聊也可以,只要两边别同时在跑。
为什么 Claude 桌面 App 的侧栏里看不到手机开的会话?
Claude 桌面 App 的侧栏、/resume 列表和导入 CLI 会话的功能都会跳过 claude -p 起的会话,而手机任务正是这样起的。Mac 版 BotBus 可以经恢复链接把会话交给桌面 App,默认会在合适的时机自动交,也可以在菜单里手动选「在 Claude 桌面 App 里继续」。
「继续聊」为什么是灰的?
这条会话这一轮还在跑,或者在等你在手机上审批、回答。等它停下,或在手机上中断这一轮,按钮就能用了。
在 worktree 里开的会话,电脑上接的时候在哪个目录?
在那个 worktree 里。BotBus 会先 cd 进会话实际的工作目录再执行 resume 命令,不会跑到主仓库去。worktree 的用法见从手机新建任务。
以前手机开的会话为什么不在列表里?
“手机发起过”是从有这个功能的 BotBus 版本开始记录的,更早的会话没有记下来。它们仍然在 agent 的数据里,可以进项目目录用 claude --resume、codex resume 这类命令自己找。装最新版 BotBus 之后,新开的会话都会进列表。