- CLI
- 0.2.17
- 预览 ref
- a2c45c8
注意: 根据功能矩阵(英文),内嵌终端是实验性功能。它可以在会话内快速执行命令,但对于完整的终端工作流,可以考虑 SSH/tmux 或 Herdr 这样的专用终端宿主。
在手机上,你通常并不想要“完整的终端体验”。
你想要的更小:
- 运行
git status - 查看一份日志的末尾
- 检查开发服务器是否启动
- 复制或打开会话输出的本地 URL
大多数时候,光是切换到另一个 SSH 应用,就足以让你把这件事往后拖。
有帮助的是一种“快速命令”工作流:它是真实的(在拥有仓库的机器上运行),但不会让你在小屏幕上陷入完整的 SSH/tmux 设置。
大多数工具会把你推向两个极端之一:
- 完全生活在 SSH/tmux 里
- 或者完全没有终端(只有截图、日志或代理说的话)
Happier 是一款用于跨设备运行和编排编码代理的开源应用,它为你提供一个附着在会话上的内嵌终端。
简要总结
- 决定你需要什么:
- 几条真实的命令或日志行(很合适),或者
- 完整的终端工作流(SSH/tmux 仍然更好)
- 在你想运行命令的机器上设置 Happier(连接守护进程),并连接你的手机。
- 打开任意会话 → 点击会话标题栏中的 终端(Terminal)。
- 用它执行快速命令和查看日志,它会自动重连并跟随会话。
问题所在
用手机使用 Happier 时,你通常是在做一个小决定,而不是“整天做终端工作”。
但小决定也需要真实的状态:
- 我在哪个分支?
- 那条命令跑完了吗?
- 报错的那一行是什么?
内嵌终端之所以有用,是因为它是会话界面的一部分,而不需要切换上下文。
常见做法及其权衡
- SSH 应用 + tmux:完全可行,但在手机上阻力很大。
- 远程桌面:可行,但笨重又麻烦。
- 只相信代理的对话记录:在你需要一条真实命令输出之前都还行。
- Happier 内嵌终端:给你一个真实的 shell,但以会话为中心的工作流来使用。
如果你第一次接触 Happier(它是什么,在哪里获取)
如果你之前没见过 Happier:它是一款面向 Claude Code、Codex 和 OpenCode 等 AI 编码代理的开源配套应用(移动端/网页/桌面)。
这里的工作流是:仓库/工作区留在拥有它的机器上,你在手机上用 Happier 查看和操作,偶尔也运行一条 shell 命令。
开始设置:
- 如何在手机上使用 Happier
- GitHub: https://github.com/happier-dev/happier
- 安装/下载: https://github.com/happier-dev/happier#how-it-works
- Discord(社区与支持): https://discord.gg/W6Pb8KuHfg
可行的工作流(分步操作)
1) 启用内嵌终端功能
打开 设置(Settings)→ 功能(Features),并启用:
- 内嵌终端(Embedded terminal)
再选择一个默认位置:
- 底部面板(Bottom panel)(大屏幕推荐)
- 侧边栏(Sidebar)
- 详情面板(Details panel)
在手机上,Happier 会使用更聚焦的终端展示方式,而不是试图在屏幕上保留桌面式的停靠面板。
2) 从会话中打开终端
- 打开任意会话。
- 点击会话标题栏中的 终端(Terminal)。
Happier 会打开一个由已连接守护进程支持的实时 shell。
3) 用它运行“会话相关”的命令
一些常见的例子:
git statusgit difftail -f <logfile>pnpm dev/npm run dev(然后打开检测到的 URL)
重要细节:命令在当前会话的已连接机器上运行。
4) 移动终端而不丢失 shell
内嵌终端的设计初衷是让你感觉它是会话自己的那个终端。
所以即使你把它停靠到别的位置(底部/侧边栏/详情),Happier 也会保留同一个底层终端会话。
5) 提供商登录流程也使用同一套终端基础
这是一个不错的一致性细节:当提供商支持在 Happier 内进行原生 CLI 登录时,这些登录界面复用同一个内嵌终端传输通道。
所以一旦你熟悉了终端的行为(重连、清屏/重启、检测到的 URL 横幅),提供商登录界面也会显得很熟悉。
要求(必须满足的条件)
如果终端打不开,文档把原因归结为三个要求:
- 已启用 内嵌终端(Embedded terminal) 功能开关
- 你的守护进程正在运行且已连接
- 会话能解析到一个可访问的机器目标
如果机器离线(或守护进程未连接),你看到的会是错误状态,而不是实时 shell。
为什么可行(以及什么会出问题)
它可行,是因为 Happier 把终端当作会话的一部分(而不是一个单独、脆弱的“远程终端页面”)。
以下情况会出问题:
- 守护进程没有运行
- 你在错误的服务器配置上
- 会话无法解析到可访问的机器
常见错误
- 启用了功能却忘了守护进程 → 终端依赖守护进程。
- 以为它在手机上运行 → 它在已连接的机器上运行。
- 用它做长时间的交互式工作 → 它适合快速检查和查看日志。