
开源工具CallMeClaude让Claude Code卡住时打电话给用户
来源标题:Person of Interest, but the Machine is your Claude Code agent
开源项目CallMeClaude推出,可在Claude Code会话卡住或完成时拨打iPhone电话通知用户。用户通过摩托车对讲机、AirPods或手机直接语音下达指令,也可主动呼叫Claude。该工具自托管、运行在用户自己的Claude订阅上,无需SaaS或中继服务器。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
你的 Claude Code agent 遇到卡点时会给你打电话。你可以戴着头盔、坐在车里或窝在沙发上接听。 开源 · 自托管 · 运行在你自己的 Claude 订阅上 · 没有 SaaS,没有账号,没有中继服务器 安装 · 工作原理 · 设计文档 · Türkçe Claude Code 可以连续自主工作数小时,直到它停下来请求权限、说“没有你的批准我无法提交这个表单”,或者完成任务后等待下一条指令。每一次,你都得回到键盘前。 CallMeClaude 把你从这套循环里解放出来。一个运行在你 Mac 上的小 agent 会实时监视每一个 Claude Code 会话。当某个会话卡住或结束时,它会像真正的电话一样拨打你的 iPhone,用两句话告诉你发生了什么。你通过摩托车对讲机、AirPods 或手机本身接听并说出要做什么: 📞 Claude:“acme-web:申请表已填好,等你确认。要我提交吗?” 🧑 你:“提交吧,你有全部权限。然后继续处理邮件草稿。” 📞 Claude:“已提交,确认页面已打开。agent 已经转去处理邮件了。” 你也可以随时主动呼叫 Claude(“嘿 Siri,呼叫 CallMeClaude”)。询问状态更新、启动新会话、批准权限,或者让 Mac 替你在浏览器里点击操作。 监视每一个 Claude Code 会话:终端、IDE 或桌面应用。它使用 Claude Code 官方的 HTTP hooks,不改动任何东西。 能判断会话为什么停下:权限提示、提问、“我做不到”、任务完成或 API 错误。由 Claude Haiku 在你自己的套餐上完成分类。 通过 PushKit 和 CallKit 真正拨打你的电话。锁屏上可用,蓝牙或对讲机的接听按钮可用,通话会出现在“最近通话”里。 自然、可打断的语音:Gemini Live 的语音到语音,延迟约一秒。它像打电话一样说话:短句,不说文件路径,一次只问一个问题。 说你的语言:在应用里或通过 cmc setup --language 选择对话语言(en-US、tr-TR、de-DE、es-ES 等)。Claude 在通话中说该语言,并用它撰写会话摘要。你也可以说“从现在起说德语”。应用本身和 CLI 是英文的。 远程解除会话阻塞。它会保持停下的会话处于打开状态,并用你的语音指令继续它(Stop hook decision: block)。它也能回答权限提示、向 tmux 会话输入内容、恢复已结束的会话,或把指令排队到下一步。 当 agent 做不到时替你操作电脑,借助 Claude in Chrome、Peekaboo 和 cliclick。它总是先要求明确的语音确认。 为长时间无人值守而设计:launchd 服务、防睡眠检查、用于蜂窝网络访问的 Tailscale、可承受重连的通话、紧急开关和完整的审计日志。 工作原理 Mac(留在家中) iPhone(随身携带) ┌──────────────────────────────────────┐ ┌─────────────────────────┐ │ Claude Code 会话 │ │ CallKit 来电 │ │ │ HTTP hooks (127.0.0.1) │ VoIP push │(锁屏、最近通话) │ │ ▼ │ ──────────▶ │ │ │ │ Hub(cmc,launchd 服务) │ 你的 APNs │ ▼ │ │ ├─ 分类器 → Claude Haiku │ 密钥 │ 蓝牙 HFP │ │ ├─ 通话调度器 │ │ → 头盔对讲机 │ │ ├─ 语音桥 → Gemini Live │ ◀════════▶ │ │ │ └─ 大脑 → Claude Agent SDK │ PCM 音频 │ │ │ + 电脑操作 │ 经由 │ │ └──────────────────────────────────────┘ Tailscale └─────────────────────────┘ Hub(apps/mac-agent,TypeScript/Node):一个带 cmc CLI 的 launchd 服务。它在 127.0.0.1 上接收 Claude Code hooks,维护会话状态,决定何时拨打电话,把手机音频桥接到语音模型,并运行工具。 iOS 应用(apps/ios,Swift):CallKit、PushKit,以及带语音处理的 AVAudioEngine。它是一部轻薄的电话:负责响铃、传输音频并列出你的会话。 双层语音:快速的语音到语音模型负责对话。任何重要的事情都通过 hub 工具交给 Claude 和你的会话:指令、批准、关于代码的提问、电脑操作。参见 ADR-0003。 你的订阅,你的机器 CallMeClaude 从不查看、存储或转发你的 Claude 凭据。它只通过你已在自己 Mac 上安装并登录的 Claude Code 访问 Claude,经由 Claude Agent SDK,供个人和本地使用。没有中央服务器,也没有共享账号。每个安装只服务一位开发者,用量计入你自己的套餐限额。参见 ADR-0002 以及 Anthropic 关于将 Agent SDK 与你的 Claude 套餐配合使用的指引。 其余一切均为自带密钥,并直接与供应商通信:用于语音的 Gemini API 密钥和用于拨打你电话的 Apple APNs 密钥。密钥存储在 macOS Keychain 中。 Mac macOS 15+、Node 22.5+、pnpm、Homebrew、Xcode 16+ Claude 已安装 Claude Code 并登录你的 Pro/Max 套餐 语音 一个 Gemini API 密钥(获取一个) 手机 一部 iOS 17+ 的 iPhone 和一个付费的 Apple Developer 账号(VoIP push 需要它) 在路上 Mac 和 iPhone 上都安装 Tailscale(个人使用免费) Android 已在路线图上。 git clone https://github.com/wutlu/callmeclaude && cd callmeclaude pnpm install ln -s "$PWD/apps/mac-agent/bin/cmc.mjs" /opt/homebrew/bin/cmc cmc setup --gemini-key <GEMINI_KEY> --language en-US # hooks + launchd service; key → Keychain ./scripts/ios-install.sh # build and install the iPhone app over USB cmc pair # scan the QR code in the app cmc call-me # your phone rings 完整指南(包括 APNs 和 Tailscale)见 INSTALLATION.md。 cmc status # 会话和待定决策 cmc mode away # desk | away | ride | sleep:hub 何时可以打电话 cmc run ~/code/app "fix the failing tests" # 在 tmux 中启动 Claude Code,以便 hub 能向其中输入 cmc do "open the PR in Chrome and press Merge" # 让 hub 操作电脑 cmc ignore ~/code/private # 仅监视:报告状态,从不保持或呼叫 cmc panic # 中断一切并暂停自动化(cmc resume) cmc doctor # 检查整个设置
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。