在移动设备上进行 AI 辅助编程长期面临两大瓶颈:移动端缺乏成熟的终端交互界面,且 Claude Code CLI 本身运行在远程开发机上。CloudCLI(又称 Claude Code UI)正是为解决这一矛盾而生的开源项目 —— 它在本机启动 Web 服务器,提供响应式移动端界面,让用户通过浏览器直接调用远端的 Claude Code、Cursor CLI 或 Codex 会话。对于需要在 iPad、Android 平板乃至手机上管理代码项目的开发者而言,这相当于把完整的 AI 开发环境装入口袋。
架构核心:本地 HTTP 服务 + WebSocket 流式交互
CloudCLI 的设计理念是在运行 Claude Code 的机器上启动一个本地 HTTP 服务器,默认监听 http://localhost:3001。该服务并非简单的终端复用,而是在终端之上封装了一层结构化的项目与会话管理 UI。客户端通过浏览器访问时,页面与后端之间建立 WebSocket 连接,实现 AI 响应内容的实时流式推送 —— 用户在移动端看到的代码补全、文件编辑建议,均以流式方式从后端推送至前端,延迟控制在数百毫秒级别。这种架构的优势在于:所有计算与 AI 调用仍在本地机器完成,移动端仅负责呈现与交互,真正实现了算力与便携性的分离。
启动服务的核心命令为 cloudcli 或 claude-code-ui,常用参数包括 --port 指定监听端口、--database-path 定义会话历史存储路径。默认端口为 3001,若本机已被占用,可通过 --port 8080 切换至其他端口。项目默认使用 SQLite 存储会话元数据,数据库文件路径建议显式指定以便备份,例如 --database-path /home/user/.claude-code-ui/data.db。
移动端访问的网络配置方案
仅在本机启动服务只能满足同设备访问要让平板或手机通过局域网(LAN)访问,还需解决网络绑定问题。默认情况下服务仅绑定 localhost,若要从同一网络的另一设备访问,需要显式绑定至 0.0.0.0 或局域网 IP。启动命令可改为 cloudcli --host 0.0.0.0 --port 3001,随后在移动设备的浏览器中输入开发机的局域网 IP 加端口号即可,例如 http://192.168.1.100:3001。这种方式适合在同一 Wi-Fi 环境下的临时使用,例如在客厅用 iPad 连接书房电脑上的 Claude Code 会话。
若需要跨公网长期访问,例如在外部网络下使用手机管理托管在云服务器上的 Claude Code 实例,则需要配合内网穿透工具或反向代理。常见方案包括使用 Cloudflare Tunnel、ngrok 或自建 WireGuard VPN。部署时建议通过 PM2 将 CloudCLI 设为后台服务,确保服务器重启后 UI 仍可持续访问。PM2 启动配置示例:pm2 start cloudcli -- --host 0.0.0.0 --port 3001 --database-path /data/claudecode-ui.db,并使用 pm2 save 与 pm2 startup 实现开机自启。
移动端交互设计与工程细节
CloudCLI 在移动端的产品设计上做了大量针对性优化。布局层面采用响应式设计,桌面端为左侧文件树、右侧聊天的双栏布局,而在手机屏幕上自动切换为底部标签栏加单栏内容区的组合,文件浏览器被收纳至可滑出的侧边抽屉。交互层面支持触摸手势:向右滑动调出项目列表、双指捏合缩放代码编辑器、底部上滑查看历史消息。这些细节使移动端体验接近原生应用而非简单的网页缩放。
值得注意的是,项目支持 PWA(渐进式网页应用)标准。在 iOS Safari 中访问页面后,点击分享按钮选择「添加到主屏幕」,即可在桌面生成一个带图标的快捷入口,后续打开时将全屏显示且无地址栏,交互行为与原生 App 无异。这对于频繁需要从手机调用 Claude Code 的开发者而言省去了每次打开浏览器、输入地址的繁琐步骤。
会话持久化与跨设备同步
CloudCLI 的会话管理机制解决了移动端使用的另一核心痛点:对话状态的跨设备延续。每次与 Claude Code 的交互都会被记录至本地 SQLite 数据库,包括对话时间戳、使用的模型、生成的代码片段等元数据。当从手机切换至电脑浏览器访问同一服务时,历史会话列表完整保留,可直接点击任意历史会话恢复对话上下文。这种设计使得用户在手机上开始的代码审查或需求讨论,可以无缝交由电脑上的大屏幕继续完成。
项目还提供会话导出功能,支持将完整对话历史导出为 Markdown 或 JSON 格式,便于归档或分享给团队成员。对于团队协作场景,可结合 Git 仓库的远程地址,在不同成员的设备上分别部署 CloudCLI 实例,实现会话模板的复用。
实际部署参数与监控要点
生产环境下推荐使用以下参数组合启动 CloudCLI:
cloudcli --host 0.0.0.0 --port 3001 \
--database-path /var/lib/claudecode-ui/data.db \
--allowed-origins https://your-domain.com
其中 --allowed-origins 用于限制可访问的域名,防止未授权的跨域请求。若通过 Cloudflare 等 CDN 代理,需将 CDN 分配的域名加入白名单。日志层面建议通过 PM2 的日志管理功能定期轮转:pm2 install pm2-logrotate,避免长期运行后磁盘被日志文件撑满。
在移动端网络不稳定的场景下,WebSocket 连接可能因网络切换而中断。CloudCLI 目前会在连接恢复后自动尝试重连,但会话内的临时输入内容不会本地缓存,建议用户在发起复杂指令前确认网络稳定性。
局限性与适用边界
尽管 CloudCLI 大幅提升了移动端使用 Claude Code 的可行性,但仍存在若干工程限制需要评估。首先,所有 AI 推理仍在本地机器执行,移动端仅负责 UI 呈现,这意味着开发机必须保持在线且算力充足,移动端本身不参与任何模型计算。其次,受限于移动浏览器的安全策略,文件编辑功能无法直接修改本地文件系统 —— 用户通过 UI 发起的文件操作实际由后端代理执行,需确保后端运行用户对目标项目目录具有写权限。最后,移动端屏幕尺寸限制了代码编辑的效率,复杂的多文件重构或大型代码库浏览仍建议在桌面端完成,移动端更适合进行代码审查、简单修改或会话管理。
综合来看,CloudCLI 为「移动端 AI 编程」这一需求提供了目前最成熟的工程化方案。通过合理的网络配置与后台服务部署,开发者可以在 iPad 或手机上构建起完整的 Claude Code 访问能力,实现真正意义上的跨设备 AI 开发工作流。
资料来源:GitHub 仓库 siteboon/claudecodeui 官方文档与功能说明。