1. 项目定位与用途
ClawTalk 是一款面向 OpenClaw 生态的原生 iOS 客户端应用,定位为隐私优先的 AI 代理交互工具。它允许用户通过语音或文本与自托管的 OpenClaw 代理进行自然对话,所有数据处理均在用户设备上完成,确保对话内容不会上传至第三方服务器。应用设计注重实时交互体验,支持流式响应、Markdown 渲染、多代理频道管理等功能,适用于个人助手、开发调试、创意工作等多种场景。作为 OpenClaw 网关的移动端接入点,ClawTalk 扩展了 AI 代理的可访问性,使用户能够随时随地进行安全、高效的 AI 交互。
2. 核心功能与特性
ClawTalk 提供丰富的交互功能:语音输入支持 push-to-talk 和免提模式,并具备 Voice Activity Detection;设备端语音识别使用 WhisperKit,音频永不离开设备;响应以流式方式实时显示,支持完整 Markdown 渲染;文本转语音提供 Apple、ElevenLabs、OpenAI 三种引擎选择;支持发送最多 8 张图片 per 消息;多代理频道允许为不同 AI 代理创建独立对话空间;内置令牌使用统计(针对 Open Responses API);完全适配深色模式,采用 OpenClaw 龙虾品牌视觉;安全方面,所有凭证存储于 iOS 钥匙串,强制 HTTPS 连接(本地/私有网络除外)。此外,应用还提供工具仪表板用于查看代理能力与状态。
3. 解决的问题与价值
ClawTalk 主要解决三个层面的问题:隐私安全方面,传统语音助手需上传音频至云端,而 ClawTalk 通过设备端 STT 完全避免音频外泄,结合钥匙串存储与 HTTPS 加密,构建端到端安全链路;交互体验方面,流式响应减少等待感,语音输入解放双手,多频道设计实现代理隔离与任务分流;生态集成方面,作为 OpenClaw 的官方移动客户端,填补了移动端交互空白,并推动网关 API 完善(如会话持久化、工具调用等)。其价值在于为技术用户提供可控、高效、隐私安全的 AI 代理访问方式,尤其适合敏感信息处理与多任务场景。
4. 安装与构建
ClawTalk 提供两种获取方式:App Store 已发布版本(一次性付费 $2.99),或从源码免费构建。源码构建需满足:iOS 17.0+ 设备或模拟器、Xcode 16.0+(Swift 5.10)、Homebrew 安装的 xcodegen 工具。构建步骤:1) 安装 xcodegen (`brew install xcodegen`);2) 在项目根目录运行 `xcodegen generate` 生成 Xcode 项目(读取 `project.yml`);3) 打开 `ClawTalk.xcodeproj` 进行编译运行,或使用 `xcodebuild` 命令行构建。物理设备需在 `project.yml` 中设置 `DEVELOPMENT_TEAM` 并重新生成。首次构建时 Swift Package Manager 会自动解析 WhisperKit、KeychainAccess、MarkdownUI 等依赖。
5. 使用指南
使用 ClawTalk 前需准备自托管 OpenClaw 网关:编辑网关配置启用 HTTP API 的 chatCompletions 端点,并通过 Cloudflare Tunnel 或 Tailscale 安全暴露 HTTPS 地址。在应用中,进入设置输入网关 URL 与令牌(格式参考 `.env.example`),测试连接成功后即可使用。创建或选择频道以关联特定代理;通过按住按钮或免提模式进行语音输入,或直接文本输入;发送图片、查看流式响应与工具调用状态;在工具仪表板浏览代理能力;在会话中查看输入输出令牌统计。注意:部分功能(如模型切换、文件读取)需等待网关 API 支持,详情见 `docs/GATEWAY_WISHLIST.md`。
6. 架构与实现特点
ClawTalk 采用模块化 Swift 架构,核心模块包括:Agent(设备认证与 OpenClaw 客户端)、Audio(音频捕获与播放管理,含 VAD 与回声消除)、Gateway(HTTP/WebSocket 连接与协议实现,含 SSE 流式处理)、Node(设备能力封装,如相机、位置、通知、屏幕等)、Security(基于钥匙串的安全存储)、Storage(频道与对话持久化)、STT(语音识别服务,集成 WhisperKit 本地模型与 OpenAI 云端 API)、TTS(语音合成,支持 Apple、ElevenLabs、OpenAI)。应用通过 XcodeGen 管理项目结构,依赖 Swift Package Manager 处理第三方库。设计上遵循隐私优先原则,敏感操作尽可能本地化;通信层抽象为 GatewayProtocol,便于切换 HTTP 与 WebSocket 模式。当前部分高级功能受限于上游网关实现,已在文档中列出需求。