在 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 和其他代理。

简要总结

  1. 安装 Herdr 0.9.2 或更高版本(macOS/Linux 上也可以用 tmux/zellij)
  2. 在 Happier 中:设置(Settings)→ 会话(Session)→ 新会话的终端宿主(Terminal host for new sessions) → Herdr(或 tmux/zellij)
  3. 在 Herdr 窗格中运行 happier claude 或 happier codex(或者让 Happier 启动一个)
  4. 在手机上:会话出现在 Herdr 中,已连接且实时更新
  5. 之后: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,你可以在手机上访问同一个会话,代理的终端界面保持不变。

开始设置:

前提条件

使用 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 应用(移动端、网页或桌面)中:

  1. 进入 设置(Settings)
  2. 选择 会话(Session)
  3. 找到 新会话的终端宿主(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 claude

Happier 会复用当前的 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 应用

  1. 在手机上打开 Happier 应用
  2. 会话列表中会显示正在运行的 Claude Code 或 Codex 会话
  3. 点击会话打开

会发生什么:

  • 应用显示会话的对话记录和控制项
  • 如果会话在 Herdr 中,你可以连接查看它的终端界面
  • 审批请求会同时出现在应用和终端中

连接到 Herdr 窗格

从终端(本地或 SSH):

happier attach <session-id>

这会把你带到 Claude Code 或 Codex 正在运行的同一个 Herdr 窗格。

你也可以使用:

happier herdr

这会在终端中打开 Herdr,你可以用 Herdr 的操作切换到会话所在的窗格。

为什么这样可行

Herdr(以及 tmux/zellij)即使在你断开连接后也会保持终端会话存活。

Happier 利用了这一点:

  1. 在命名的 Herdr 窗格中启动代理会话
  2. 跟踪哪个会话在哪个窗格
  3. 在手机上按名称展示会话
  4. 让 happier attach 直接跳到那个窗格

结果是:你只需启动一次代理会话,就可以从以下位置访问:

  • 原来的终端
  • 通过 happier attach 打开的新终端
  • 通过 Happier 应用的手机
  • Herdr 原生的窗格切换

故障排查

症状:Happier 提示需要设置终端宿主

可能的原因:

  • 没有安装 Herdr,或版本低于 0.9.2
  • Herdr 服务器没有运行

解决方法:

  1. 确认已安装 Herdr:herdr --version
  2. 确认版本为 0.9.2 或更高
  3. 如果 Herdr 没有运行,启动它:herdr
  4. 重新尝试启动会话

症状:会话启动了,但不在 Herdr 中

可能的原因:

  • 会话启动后才更改了终端宿主设置
  • 你使用的是旧版 Happier CLI(0.2.16 之前)

解决方法:

  1. 检查 CLI 版本:happier --version
  2. 如有需要,升级到 CLI 0.2.16 或更高版本
  3. 在 设置(Settings)→ 会话(Session)→ 新会话的终端宿主(Terminal host for new sessions) 中确认设置
  4. 停止该会话并启动新会话

症状:无法连接到会话窗格

可能的原因:

  • 会话的 Herdr 窗格被手动关闭了
  • Herdr 服务器重启后窗格没有恢复

解决方法:

  1. 检查会话是否仍在运行:happier sessions
  2. 如果会话还在但窗格没了,代理进程会继续运行
  3. 你仍然可以通过 Happier 应用(对话记录/审批)控制它
  4. 连接会创建一个新视图,不需要原来的窗格

症状:有多个 Claude 会话,分不清哪个窗格是哪个

可能的原因:

  • 启动会话前没有先查看会话列表

解决方法:

  1. 用 happier sessions 列出所有活动会话及其 ID
  2. 用 happier attach <session-id> 跳到特定会话的窗格
  3. 或者打开 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 中继会失去联系,直到机器重新连接。

终端宿主会影响性能吗?

不会。终端宿主只是代理终端界面显示的位置,代理进程及其性能不受影响。

相关指南

claudecodexherdrtmuxzellijmobileterminal
最后更新: 2026-10-26