Happy:Claude Code 移动端客户端技术分析
一、项目概述
1. 项目简介
Happy 是 Claude Code 和 Codex 的移动端和 Web 客户端,支持实时语音交互、端到端加密和完整功能体验。该项目由 slopus 团队开发,采用 MIT 开源协议,在 GitHub 上获得了超过 7700 个 Star。
2. 核心特性
- 移动端访问:通过 iOS 和 Android 应用随时查看 AI 编码进度
- 推送通知:在 Claude Code 或 Codex 需要权限或遇到错误时接收提醒
- 即时切换设备:一键在手机或桌面端之间切换控制权
- 端到端加密:代码在设备间传输时全程加密保护
- 开源透明:代码完全开源,无遥测、无追踪
3. 项目组成
Happy 生态系统包含三个核心组件:
- happy-cli:Claude Code 和 Codex 的命令行接口
- happy-server:加密同步的后端服务器
- happy-coder:移动客户端(本项目)
二、技术架构
1. 技术栈分析
A. 前端框架
项目采用混合架构:
- React Native + Expo:用于 iOS 和 Android 移动应用
- Tauri:用于 macOS 桌面版本
- TypeScript:占比 99.5%,提供类型安全保障
B. 核心依赖
- Expo SDK:简化跨平台开发流程
- Unistyles:统一的样式系统
- NativeWind:Tailwind CSS for React Native
- Zustand:轻量级状态管理
- WebSocket:实时通信
2. 系统架构
graph TB
subgraph 客户端层
iOS[iOS App]
Android[Android App]
Web[Web App]
macOS[macOS Desktop]
end
subgraph CLI层
happy_cli[happy-cli]
claude[Claude Code]
codex[Codex]
end
subgraph 服务层
happy_server[happy-server]
WebSocket[WebSocket服务]
Encrypt[端到端加密]
end
iOS --> WebSocket
Android --> WebSocket
Web --> WebSocket
macOS --> WebSocket
happy_cli --> happy_server
claude --> happy_cli
codex --> happy_cli
WebSocket --> Encrypt
happy_server --> Encrypt
3. 工作流程
sequenceDiagram
participant U as 用户
participant CLI as happy-cli
participant S as happy-server
participant M as 移动端
U->>CLI: 运行 happy 命令
CLI->>S: 建立加密会话
S-->>CLI: 会话ID
CLI-->>U: 显示二维码
U->>M: 扫码/登录
M->>S: 订阅会话
S-->>M: 实时更新
U->>CLI: 按键切换回本地
CLI->>S: 切换模式
S-->>M: 通知切换三、核心功能分析
1. 安装与配置
A. 移动端安装
- iOS:App Store 下载(Happy - Claude Code Client)
- Android:Google Play 下载(com.ex3ndr.happy)
- Web:访问 https://app.happy.engineering
B. CLI 安装
npm install -g happy-coderC. 使用方式
# 替代 claude 命令
happy
# 替代 codex 命令
happy codex2. 设备切换机制
核心设计理念是无缝切换:
- 本地模式:在计算机上正常使用 Claude Code/Codex
- 远程模式:通过移动端查看和控制 AI 编码过程
- 切换触发:计算机端按任意键即可切回本地模式
- 状态同步:通过 WebSocket 保持实时状态同步
3. 安全设计
A. 端到端加密
- 代码在传输前加密
- 只有授权设备能解密
- 服务器无法查看明文代码
B. 隐私保护
- 无遥测数据收集
- 无用户行为追踪
- 开源代码可审计
四、技术亮点
1. 混合架构设计
项目同时支持三种部署方式:
- React Native:移动端主流方案
- Tauri:轻量级桌面应用
- Web:无需安装的网页版
这种设计最大化了用户覆盖面,同时保持了代码复用率。
2. 实时通信
使用 WebSocket 实现双向实时通信:
- 低延迟的命令传输
- 实时的状态更新
- 支持推送通知
3. 开发友好
项目提供了完善的开发环境:
- Docker 支持:容器化开发环境
- EAS 构建:Expo Application Services
- 详细的贡献指南
五、项目数据
1. 社区活跃度
- GitHub Stars:7700+
- Forks:572
- Contributors:25
- Issues:222
- Pull Requests:26
2. 开发活动
- 总提交数:849+
- 最新版本:1.6.2
- 主要语言:TypeScript 99.5%
六、应用场景
1. 远程监控
开发者离开工位时,通过手机查看 AI 编码进度,及时发现并处理问题。
2. 即时响应
通过推送通知,在 Claude Code 需要权限确认或遇到错误时立即收到提醒。
3. 多设备协作
在手机和电脑之间灵活切换,选择最合适的设备进行操作。
七、技术挑战与解决方案
1. 跨平台兼容性
挑战:同时支持 iOS、Android、Web 和 macOS
解决方案:
- 采用 React Native 统一移动端
- 使用 Tauri 构建桌面应用
- 共享核心业务逻辑代码
2. 实时同步
挑战:保持多设备状态一致性
解决方案:
- WebSocket 长连接
- 乐观更新策略
- 冲突解决机制
3. 安全与隐私
挑战:保护用户代码安全
解决方案:
- 端到端加密
- 零数据留存策略
- 开源透明
八、未来展望
1. 功能扩展
- 支持更多 AI 编码工具
- 增强协作功能
- 优化语音交互体验
2. 平台支持
- Windows 桌面版
- Linux 桌面版
- 更多移动平台
3. 生态建设
- 插件系统
- API 开放
- 社区贡献机制