在 Herdr(以及 tmux/zellij)中运行 Claude Code 或 Codex,并在手机上继续
在 Herdr 终端窗格中启动 Claude Code 或 Codex 会话,让它们持续运行,同时在手机上监控和控制。
- CLI
- 0.2.17
- 预览 ref
- a2c45c8
在独立终端窗口中启动的 Claude Code 会话有个问题:当你想在手机上查看进度时,会话在运行,却不在一个你能连接的地方。
Herdr(以及 tmux/zellij)改变了这个工作流:代理会话在持久的终端窗格中启动,Happier 可以在手机上打开这些同样的窗格。Happier 是一款开源应用,让你跨设备运行和编排 Claude Code、Codex 和其他代理。
简要总结
- 安装 Herdr 0.9.2 或更高版本(macOS/Linux 上也可以用 tmux/zellij)
- 在 Happier 中:设置(Settings)→ 会话(Session)→ 新会话的终端宿主(Terminal host for new sessions) → Herdr(或 tmux/zellij)
- 在 Herdr 窗格中运行
happier claude或happier codex(或者让 Happier 启动一个) - 在手机上:会话出现在 Herdr 中,已连接且实时更新
- 之后:
happier attach <session-id>会把你带回同一个窗格
问题所在
在普通终端窗口中启动代理意味着:
- 会话在运行,但无法从另一个终端访问
- 关闭窗口后终端不会保留
- 很难从另一台设备查看代理在做什么
目标是让代理会话:
- 在持久的终端复用器中启动
- 可以从手机访问(而不只是 SSH 后猜是哪个会话)
- 在笔记本休眠或断开连接后依然存在
常见做法及其权衡
- 普通终端窗口:在你关闭它或笔记本休眠之前都能用,无法重新连接。
- 手动使用 tmux:好一些,但你得记得先启动 tmux、给会话命名,还要在手机上分辨哪个 tmux 会话是哪个。
- SSH 后找到正确的窗格:可行但繁琐,最后只能猜窗口编号。
Happier 配合 Herdr(或 tmux/zellij) 通过以下方式解决了这个问题:
- 自动在所选终端宿主中启动会话
- 在手机上按会话名称展示
- 让你连接到完全相同的窗格
如果你第一次接触 Happier
Happier 是一款面向 Claude Code、Codex 和 OpenCode 等 AI 编码代理的开源配套应用(移动端/网页/桌面)。
这里的工作流是:Happier 在 Herdr(或 tmux/zellij)中启动 Claude Code 或 Codex,你可以在手机上访问同一个会话,代理的终端界面保持不变。
开始设置:
- 如何在手机上使用 Happier
- GitHub: https://github.com/happier-dev/happier
- 安装: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
前提条件
使用 Herdr
- Herdr 0.9.2 或更高版本(需要稳定版)
- 支持 macOS 和 Linux
- 不支持原生 Windows(请改为在 WSL 中使用 tmux)
检查 Herdr 版本:
herdr --version如果你使用的是旧版本或开发版,请升级到 0.9.2 或更高的稳定版。
使用 tmux 或 zellij
- 在 macOS 或 Linux 上安装了 tmux 或 zellij
- tmux/zellij 没有最低版本限制
- 也可以在 Windows 的 WSL 中使用
Happier CLI
在你希望运行代理的机器上安装 Happier CLI:
分步操作:为新会话配置终端宿主
1) 打开 Happier 设置
在 Happier 应用(移动端、网页或桌面)中:
- 进入 设置(Settings)
- 选择 会话(Session)
- 找到 新会话的终端宿主(Terminal host for new sessions)
2) 选择终端宿主
选择以下之一:
- 不使用终端宿主(No terminal host):会话以无界面方式启动(默认)
- tmux:使用 tmux 作为终端宿主
- zellij:使用 zellij 作为终端宿主
- Herdr:使用 Herdr 作为终端宿主(需要 CLI 0.2.16 或更高版本)
在本指南中,选择 Herdr(如果你更喜欢 tmux,就选 tmux)。
为什么这很重要:
- 设为 不使用终端宿主(No terminal host) 时,Happier 会话在后台运行,直到你主动连接
- 设为某个终端宿主时,支持的会话会立即出现在那个终端中
- 会话仍然可以同时从终端和 Happier 应用连接
3) 该设置按机器生效
Happier 把这个偏好保存在账号中,但按机器分别生效。
如果你有多台机器:
- 每台可以使用不同的终端宿主
- 或者在本地覆盖账号默认值
4) 确认设置已保存
界面上应显示你选择的宿主(例如 Herdr)。
在 Herdr 中启动 Claude Code 会话
方式 A:在 Herdr 窗格内启动
如果你已经在 Herdr 窗格中:
happier claudeHappier 会复用当前的 Herdr 窗格来显示 Claude Code 的终端界面。
方式 B:让 Happier 创建新窗格
如果你在 Herdr 外运行 happier claude,Happier 会创建一个新的 Herdr 窗格并在其中启动 Claude Code。
你会看到什么
Claude Code 的终端界面(TUI)出现在 Herdr 窗格中:
- 终端中的提示和回复
- 内联的审批请求
- 会话实时运行且已连接
在 Herdr 中启动 Codex 会话
Codex 的工作流相同:
happier codex根据 Codex 文档(英文):
- Codex 在 macOS 和 Linux 上使用其原生 App Server 路径
- 选择 Herdr(或其他终端宿主)后,Happier 会在该宿主中启动 Codex TUI
- 没有终端宿主时,Codex 以服务器支持的无界面方式运行,直到你连接
在手机上查看和连接
从 Happier 应用
- 在手机上打开 Happier 应用
- 会话列表中会显示正在运行的 Claude Code 或 Codex 会话
- 点击会话打开
会发生什么:
- 应用显示会话的对话记录和控制项
- 如果会话在 Herdr 中,你可以连接查看它的终端界面
- 审批请求会同时出现在应用和终端中
连接到 Herdr 窗格
从终端(本地或 SSH):
happier attach <session-id>这会把你带到 Claude Code 或 Codex 正在运行的同一个 Herdr 窗格。
你也可以使用:
happier herdr这会在终端中打开 Herdr,你可以用 Herdr 的操作切换到会话所在的窗格。
为什么这样可行
Herdr(以及 tmux/zellij)即使在你断开连接后也会保持终端会话存活。
Happier 利用了这一点:
- 在命名的 Herdr 窗格中启动代理会话
- 跟踪哪个会话在哪个窗格
- 在手机上按名称展示会话
- 让
happier attach直接跳到那个窗格
结果是:你只需启动一次代理会话,就可以从以下位置访问:
- 原来的终端
- 通过
happier attach打开的新终端 - 通过 Happier 应用的手机
- Herdr 原生的窗格切换
故障排查
症状:Happier 提示需要设置终端宿主
可能的原因:
- 没有安装 Herdr,或版本低于 0.9.2
- Herdr 服务器没有运行
解决方法:
- 确认已安装 Herdr:
herdr --version - 确认版本为 0.9.2 或更高
- 如果 Herdr 没有运行,启动它:
herdr - 重新尝试启动会话
症状:会话启动了,但不在 Herdr 中
可能的原因:
- 会话启动后才更改了终端宿主设置
- 你使用的是旧版 Happier CLI(0.2.16 之前)
解决方法:
- 检查 CLI 版本:
happier --version - 如有需要,升级到 CLI 0.2.16 或更高版本
- 在 设置(Settings)→ 会话(Session)→ 新会话的终端宿主(Terminal host for new sessions) 中确认设置
- 停止该会话并启动新会话
症状:无法连接到会话窗格
可能的原因:
- 会话的 Herdr 窗格被手动关闭了
- Herdr 服务器重启后窗格没有恢复
解决方法:
- 检查会话是否仍在运行:
happier sessions - 如果会话还在但窗格没了,代理进程会继续运行
- 你仍然可以通过 Happier 应用(对话记录/审批)控制它
- 连接会创建一个新视图,不需要原来的窗格
症状:有多个 Claude 会话,分不清哪个窗格是哪个
可能的原因:
- 启动会话前没有先查看会话列表
解决方法:
- 用
happier sessions列出所有活动会话及其 ID - 用
happier attach <session-id>跳到特定会话的窗格 - 或者打开 Happier 应用,点击会话查看详情
常见问题
tmux 和 zellij 也能这样用吗?
可以。工作流相同:
- 把 新会话的终端宿主(Terminal host for new sessions) 设为 tmux 或 zellij
- 运行
happier claude或happier codex - 会话出现在 tmux 窗口或 zellij 窗格中
happier attach的用法也一样
必须用 Herdr 吗?
不必。你可以使用:
- 不使用终端宿主(No terminal host)(连接前以无界面方式运行)
- tmux
- zellij
- Herdr
选择适合你工作流的那个。
可以切换终端宿主吗?
可以。在 设置(Settings)→ 会话(Session)→ 新会话的终端宿主(Terminal host for new sessions) 中更改。
该设置适用于新会话。已有会话会继续使用原来的宿主。
笔记本休眠了会怎样?
只要机器可以访问,会话及其 Herdr 窗格就会保留。
重新连接时:
- Herdr 会保持窗格存活
- 代理进程继续运行
happier attach照常可用
如果机器完全离线,Happier 中继会失去联系,直到机器重新连接。
终端宿主会影响性能吗?
不会。终端宿主只是代理终端界面显示的位置,代理进程及其性能不受影响。