- CLI
- 0.2.17
- 预览 ref
- a2c45c8
会话有时是在别处开始的:
- 在终端里启动的一次 Codex 运行
- 匆忙开始的一个 Claude Code 会话
- 存在于自己的服务器或存储中的 OpenCode 会话
之后打开手机时,你不想重新创建会话,也不想重新解释上下文。
目标是找到那个现有的提供商会话,在手机上打开并继续,而不是把上下文复制到一个全新的对话里。
棘手之处在于,大多数工具没有提供一个清晰的“从列表中挑一个现有会话,再决定它要变得多可移植”的工作流。
简要总结
- 决定你想要哪种连续性:
- 由提供商支撑(按原样打开现有的提供商会话)
- 导入/同步(让历史和之后的工作都放在一个由应用管理的会话里)
- 在存放提供商会话的机器上设置 Happier(并连接你的手机)。
- 使用 直连会话(Direct sessions)→ 浏览提供方会话(Browse provider sessions) 打开现有会话。
- 如果你想要长期连续性,查看过之后切换到 接管并导入(Take over + import)。
问题所在
当你说“我想在手机上继续”时,可能指的是两件非常不同的事:
- 在完全相同的提供商会话中继续(由提供商支撑的连续性)
- 把那个会话带到一个可移植、由应用管理的地方(导入/同步的连续性)
两者都合理。
问题是大多数工具把它们混为一谈,所以你要到后来才注意到区别:
- “为什么笔记本离线后,这个会话就不更新了?”
- “为什么换了机器之后,感觉像是另一个会话?”
一旦你给这两种所有权模式命名,其余的工作流就清晰多了。
常见做法及其权衡
- 在手机上开一个全新会话:可行,但你失去了原有的线程。
- 把上下文复制粘贴到新会话:可行,但总会漏掉什么(而且很难保持更新)。
- 把一切留在原机器上并远程连接(SSH/tmux/远程桌面):可行,但在手机上很笨重。
- Happier(直连会话 + 接管并导入):提供一个清晰的“先打开现有会话,再决定是否导入”的工作流。
如果你第一次接触 Happier(它是什么,在哪里获取)
如果你之前没见过 Happier:它是一款面向 Claude Code、Codex 和 OpenCode 等 AI 编码代理的开源配套应用(移动端/网页/桌面)。
这里的工作流是:把会话和仓库留在你控制的机器上,用手机上的 Happier 打开、监控和继续它们。
开始设置:
- 如何在手机上使用 Happier
- GitHub: https://github.com/happier-dev/happier
- 安装/下载: https://github.com/happier-dev/happier#how-it-works
- Discord(社区与支持): https://discord.gg/W6Pb8KuHfg
可行的工作流(分步操作)
注意: 根据功能矩阵(英文),直连会话(浏览和打开提供商原生会话)是实验性功能。在导入之前,拥有会话的机器必须保持可访问。从 0.2.16 开始,你可以查看导入进度并停止(Stop)导入,已导入的历史仍然可用。
1) 先打开现有会话(在决定导入任何东西之前)
这是大多数工具并不真正支持的一步。
在 Happier 中,流程是:
- 打开会话列表。
- 切换到 直连(Direct)标签页。
- 选择 浏览提供方会话(Browse provider sessions)。
- 选择:
- 一台机器
- 一个提供商(Codex / Claude / OpenCode)
- 一个来源
Happier 会显示它能为该选择发现的现有提供商会话列表。
你可以立即将其中一个作为 直连(Direct)会话打开(意思是:由提供商支撑、绑定在机器上)。
2) 先以直连方式打开(即使你打算之后同步)
以这种方式打开提供商会话时,Happier 会把它作为 直连(Direct)会话打开。
这很有用,因为它让你可以:
- 查看对话记录
- 跟进新的对话记录条目
- 监控实时会话
……而不必先决定导入/同步。
3) 决定:保持直连,还是接管并导入
打开会话后,你有两种“继续”方式:
选项 A:保持直连
在以下情况保持 直连(Direct):
- 你想用阻力最小的方式打开提供商会话
- 你接受提供商作为事实来源
- 需要使用时,拥有会话的机器会在线
这里的权衡很重要:
- 如果会话仍是直连而机器离线了,Happier 就无法继续跟进或刷新提供商的对话记录
选项 B:接管并导入
在以下情况使用 接管并导入(Take over + import):
- 你希望之后由 Happier 掌管对话记录
- 你希望即使原机器离线也能跨设备继续
- 你希望会话像普通的 Happier 同步会话一样工作
从概念上讲,接管并导入会:
- 读取提供商的对话记录
- 把这些历史导入 Happier 会话
- 把会话从 直连(Direct)转换为 同步(Synced)
4) 了解什么时候 Resume ID 更合适
当你想看列表再挑选时,浏览提供商会话很合适。
但有时你已经有了 ID(或者你想在新会话流程中按 ID 恢复)。
这时就该用 Resume ID:
- 开始一个新的 Happier 会话
- 提供提供商的可恢复会话 ID
- (可用时)使用 Resume ID 旁边的 浏览(Browse)选择器来填入
值得一提的细节:Resume ID 浏览选择器的范围限定在你在新会话页面中选择的机器/提供商/认证上下文(所以你不会选到一个来自另一个“主目录”、实际上无法恢复的会话)。
为什么可行(以及什么会出问题)
它可行,是因为 Happier 不假装存在一个通用的会话模型。
它给你提供了一座桥:
- 按原样打开提供商会话(直连)
- 只在你想要 Happier 原生的连续性时才同步/导入
它会在显而易见的直连会话场景中出问题:
- 机器离线 → 无法跟进或控制直连会话
常见错误
- 一上来就同步所有会话 → 先以直连方式打开,只同步你确定需要长期使用的会话。
- 忘了直连是绑定机器的 → 如果你需要“那台机器休眠时也能用”,就同步它。
- 混淆 Resume ID 和浏览 → 浏览是列表选择器,Resume ID 用于“把这个特定会话 ID 恢复到一个新的 Happier 会话中”。
常见问题
“接管并导入”会删除提供商会话吗?
不会。这是 Happier 中的导入/连续性操作。
我可以浏览多个 Codex 主目录中的会话吗?
Codex 可以有不止一个主目录(原生的和基于已连接服务的)。Resume ID 选择器有意限定在你当前的认证/主目录选择范围内。