Happy Docs 中文文档

Happy Coder 功能一览

Happy Coder 为 Claude Code 提供原生移动体验,支持文件提及、斜杠命令和自定义 agents。此外还提供语音编程、推送通知等多项增强功能。

核心架构功能

1. 实时 CLI 同步

桌面 CLI 和移动 App 之间通过加密中继服务器实现双向实时同步。 CLI 包装 Claude Code 的执行并流式传输终端状态,移动 App 提供输入反向流回 CLI。两端设备都可以发起对话、发送消息和接收响应——没有"主设备"和"从设备"的区分。

典型使用场景:

  • 在笔记本上启动 Claude Code 会话,立即在手机上看到内容,拿起手机边做家务边继续同一对话
  • 通勤时在手机上规划新功能,到公司坐下后在笔记本上用 IDE、终端、git 在同一个 Claude Code 会话中审查生成的代码
  • 在手机上当"试验场"——让 Claude Code 生成原型代码,回到电脑后用多显示器、IDE、热重载等桌面工具审查和迭代
  • 从手机发起涉及多文件的复杂代码变更请求,然后在笔记本上并排查看代码、导航文件,在同一会话中继续迭代

技术实现
- WebSocket 连接实现实时双向通信
- 终端状态序列化和同步
- 命令历史和上下文保留
- 跨设备光标位置和选择状态同步

2. 多会话管理

支持多个并发 Claude Code 会话,各自独立维护状态。 每个会话有自己的项目上下文、对话历史和终端状态。会话可以暂停、恢复和无缝切换。

典型使用场景:同时在多个项目上工作时,为每个项目维护独立的 Claude Code 会话,切换项目不丢进度、不混对话。

技术实现
- 唯一标识符的会话隔离
- 项目级上下文管理
- App 重启后会话持久化
- 后台会话状态保留

3. 端到端加密与零信任架构

CLI 和移动 App 之间的所有通信都使用共享密钥加密(通过扫描二维码交换)。中继服务器只处理加密数据块,无法访问明文。

典型使用场景:安全敏感的开发者可以放心将工具用于私有或敏感代码库,即使服务提供商也无法查看对话内容。

技术实现
- AES 加密所有传输中数据
- 通过二维码扫描完成密钥交换
- 零往返认证协议
- 公钥哈希作为通道标识
- 开源中继服务器支持自建

4. 离线优先架构与加密发布/订阅

通过加密中继服务器实现异步通信——中继服务器充当桌面 CLI 和移动 App 之间的消息队列。 CLI 记录 Claude Code 活动、加密后上传;手机端拉取并解密显示进度。指令反向流动——手机加密指令、上传到中继、桌面下载解密后执行。

典型使用场景:

  • 给 Claude Code 排队任务后去远足或穿越隧道,Claude 继续工作,你有信号时随时查看进度
  • 不再担心在 SSH App 上打了一大段精心格式化的命令、结果断网前没发出去的问题。Happy Coder 确保消息可靠投递

技术实现
- 加密数据块存储在中继服务器(服务器无法读取内容)
- CLI 将加密活动日志写入对象存储
- 移动 App 轮询加密更新并在本地解密
- 双向加密发布/订阅消息系统
- 会话持久化不依赖网络连接
- 简单中继服务器无权访问明文

5. MCP 工具和编辑操作的权限提示

实时权限系统拦截 Claude Code 发起的 MCP 工具调用和文件编辑操作,在手机上展示上下文丰富的允许/拒绝提示。 当 Claude Code 尝试使用 MCP 工具(JIRA、Linear、GitHub API 等集成)或执行敏感文件操作时,移动 App 展示完整的操作详情并等待明确的用户批准。

典型使用场景:

  • 通勤时用 Claude Code 的 JIRA 集成——在 Claude 创建或修改工单前看到确切操作,批准合理的自动化、阻止对生产系统的意外变更
  • 不在工位时审查和批准 Claude Code 提议的文件修改
  • 明确授权每个 MCP 工具操作(数据库查询、API 调用、外部集成),确保开发环境不会有未授权操作

技术实现
- CLI 中的拦截器中间件在需要权限时暂停执行
- 实时权限请求序列化并传输到移动 App
- 移动 UI 展示操作上下文和允许/拒绝按钮
- 加密的请求/响应流通过中继服务器保持零信任
- 操作排队系统在等待权限时保留 Claude Code 会话状态
- 粒度权限分类(文件操作、API 调用、系统命令、外部集成)
- 单会话权限记忆("本次会话记住"选项)

6. 文件提及

(从手机直接引用项目文件)

7. 自定义斜杠命令和 Agent 库

完整的 Claude Code 斜杠命令和自定义 agent 生态在移动端可用。 ~/.claude/agents/ 目录中所有用户定义的 agents 自动同步,通过移动界面即可访问。系统提供智能自动补全、命令历史和无缝 agent 切换。

典型使用场景:

  • 躺在床上通过手机使用自定义的 bedtime planning agent(/bedtime),用在桌面上调校好的专用 prompt 设置明天的编程任务
  • 通勤时用自定义的代码审查 agent(/review)分析 PR,不在多显示器前也能发现问题
  • 在移动端使用完整的专用 agent 库(数据库迁移助手、API 文档生成器、安全审计 bot)

技术实现
- 实时同步 ~/.claude/agents/ 目录内容到移动 App
- 所有可用 agents 的模糊搜索自动补全
- Agent 元数据解析(名称、描述、工具、模型偏好)
- 会话感知的 agent 切换保留上下文和对话历史
- 跨设备命令历史持久化和智能建议
- 移动端优化的 agent 选择 UI(分类和收藏)
- 后台 agent 定义更新无需重启 App

移动端优化体验功能

8. 推送通知系统

Claude Code 状态变化时触发推送通知,包括会话状态更新、完成提醒、错误通知和输入请求。 不同于社交媒体 App 需要担心通知疲劳,工作场景的通知优先确保即时感知——当你在积极开发时,需要第一时间知道每个异步操作何时完成,以便做出下一步决策。

技术实现
- 全面的状态变化通知(完成、错误、需要输入)
- 即时投递,不做智能过滤或延迟打包
- 深度链接到特定会话和精确完成点
- 富通知内容含操作详情

9. 语音代理集成

AI 驱动的语音界面充当用户和 Claude Code 之间的中介。 语音代理处理自然语言输入、维护对话上下文,并为 Claude Code 执行生成结构化 prompt。

典型使用场景:

  • 在正式提交给 Claude Code 执行前,通过语音对话头脑风暴和迭代编程想法——以对话方式思考问题,不会立刻锁定一个耗时的代码生成过程
  • 在低压力的对话格式中大声思考、细化方案,避免代价高昂的错误和定义不清的需求

更多详情参见 语音编程

技术实现
- 语音转文字 (STT) 使用 Eleven Labs
- 文字转语音 (TTS) 使用 Eleven Labs
- 对话状态管理独立于 Claude Code 会话
- Agent 助手(Claude Sonnet 4)可以向 Claude Code 发送消息,有专门的 prompt 优化,擅长将"橡皮鸭式"的意识流规划转化为 Claude Code 可执行的具体请求