← 返回信息流
AI 资讯Hacker News·22 小时前

Show HN: Pulse 仪表盘支持手机端审批 Claude Code 工具调用

原标题:Show HN: Pulse – Dashboard for Claude Code, approve tool calls from your phone

速览

Pulse 是一款专为 Claude Code 设计的仪表盘工具。它提供了便捷的手机端界面,让用户能够远程审批工具调用请求。这一功能增强了 Claude Code 在移动场景下的可用性和安全性。

AI 深度解读

Show HN: Pulse – Claude Code 的本地仪表盘,手机端批准工具调用

背景

随着 AI 编码助手(如 Claude Code)深入开发者的日常 Workflow,开发者面临着新的交互挑战:虽然 Claude Code 已经能够自动执行复杂的编程任务,但其运行过程往往处于“黑盒”状态,且涉及敏感的系统操作(如文件读写、命令执行)时,缺乏一种便捷、实时的监控与干预机制。

目前,Claude Code 会将所有会话记录写入磁盘,但开发者难以直观地查看 Token 消耗、上下文使用情况,更难以在移动端对需要权限的工具调用进行即时审批。此外,本地运行的 AI 工具通常缺乏跨设备的通知能力和会话恢复机制,一旦终端崩溃或笔记本休眠,可能导致上下文丢失或任务中断。

在此背景下,开发者 Nikita Doudikov 发布了 Pulse,一个专为 Claude Code 设计的本地仪表盘工具。Pulse 旨在解决上述痛点,通过读取本地日志文件,提供实时的可视化监控、跨设备的工具调用审批以及会话保护功能,同时严格遵循“零依赖、本地优先、无遥测”的隐私原则。

核心内容

Pulse 是一个基于 Node.js 的本地 Web 应用,它通过只读方式解析 Claude Code 生成的日志文件,将其转化为实时的仪表盘数据。以下是其核心功能模块的详细解读:

1. 实时仪表盘与可视化

Pulse 提供了一个本地运行的 Web 界面(默认地址 http://127.0.0.1:4317),主要功能包括:

  • Token 与成本监控:按小时、天、周、模型和项目维度实时展示 Token 消耗及等效 API 成本。用户可以设置预算阈值,一旦超额,手机会收到警报。
  • 上下文填充视图:显示当前活跃会话的上下文窗口使用情况。
  • 环境化办公视图(Ambient Office):提供一个全屏的小吉祥物视图,展示 Claude 的工作、休息或等待状态,并给出大致的预计完成时间(ETA)。这一功能适合放在第二显示器上,既美观又具有“陪伴感”。
  • 全文搜索:支持对磁盘上所有历史会话进行全文检索,点击即可跳转至对应的转录文本。

2. 跨设备工具调用审批

这是 Pulse 最具创新性的功能之一,解决了开发者无法随时随地审批 AI 操作的问题:

  • 手机端审批:通过集成 ntfy 服务,Pulse 可以向用户的手机推送包含 Allow(允许)、Allow all(全部允许)和 Deny(拒绝)按钮的通知。
  • 无需复杂网络配置:该功能不依赖同一 Wi-Fi 网络,无需配置 IP 或开放端口,即使在蜂窝网络(Cellular)下也能正常工作。
  • 安全机制:Pulse 仅在等待特定请求时响应回复,过期的通知无法触发任何操作,确保安全性。
  • 富交互界面:除了简单的推送按钮,用户也可以在局域网内通过 http://<your-machine>:4317/phone 访问更丰富的界面,查看 Claude 的实时状态并执行暂停/恢复操作。

3. 会话保护与恢复

Pulse 确保了开发工作的连续性,防止因终端崩溃或设备冻结导致的数据丢失:

  • 自动快照:Pulse 会自动将最近活跃的会话快照保存到 ~/.claude-pulse/exports/snapshots/ 目录。即使不运行恢复命令,最新状态也始终保留在磁盘上。
  • 会话恢复:通过 claude-pulse recover 命令,用户可以一键恢复最近的会话,生成可读的转录文本(Markdown 格式)。例如,claude-pulse recover 2 可恢复倒数第二个会话。
  • 数据压缩:恢复过程会将庞大的日志文件(如 15 MB)压缩为轻量级的 Markdown 文件(约 180 KB),便于存储和分享。
  • 全局导出:使用 claude-pulse export-all 可以将所有会话导出为单个压缩的 Markdown 文件,方便备份。

4. 架构与隐私设计

  • 本地优先(Local First):Pulse 仅读取 ~/.claude 目录下的日志文件,服务仅绑定在 127.0.0.1,不向外发送任何数据。
  • 零依赖与无遥测:项目没有外部依赖,不收集任何遥测数据,不调用任何网络接口(除了用于推送通知的 ntfy 服务)。
  • Hooks 机制:Pulse 通过 Claude Code 的 Hooks 机制(NotificationStopPreToolUse)与 Claude Code 通信。
    • Notification:当 Claude 需要用户注意时触发。
    • Stop:当会话结束时触发。
    • PreToolUse:在工具执行前触发,用于请求用户批准。
  • 容错设计:如果 Pulse 未运行、超时(默认 60 秒)或发生错误,Claude Code 会回退到传统的终端提示符等待用户输入,确保 AI 不会因此挂起。

5. 安装与使用

  • 快速启动:无需安装,直接运行 npx pulse-for-claude-code
  • 配置 Hooks:运行 claude-pulse install-hooks 即可自动将 Hooks 配置写入 ~/.claude/settings.json
  • 后台运行:支持 claude-pulse start 在后台独立运行,即使终端关闭也不会停止。
  • 系统服务:在 macOS 上,可通过 claude-pulse install-service 将其设置为开机自启并自动重启。

关键要点

  • 隐私与安全:Pulse 是纯本地工具,数据不出本机(除 ntfy 推送外),无账号、无遥测、无网络调用,适合对隐私敏感的开发者。
  • 移动端控制:通过 ntfy 实现跨网络的工具调用审批,解决了移动办公场景下无法即时干预 AI 操作的痛点。
  • 成本透明:提供细粒度的 Token 消耗和成本监控,帮助用户控制 API 费用。
  • 会话持久化:通过自动快照和一键恢复功能,有效防止因设备故障导致的上下文丢失。
  • 极简架构:基于 Node.js,零依赖,通过只读解析 JSONL 日志文件实现数据同步,技术实现轻量且高效。
  • 非阻塞设计:审批超时或失败时自动回退到终端交互,保证 Claude Code 的稳定性。

意义与影响

Pulse 的出现标志着 AI 编码助手从“自动化执行”向“人机协同控制”迈出了重要一步。

  1. 增强开发者控制权:传统的 AI 编码工具往往在用户不知情的情况下执行大量操作。Pulse 通过可视化的仪表盘和即时的审批机制,将控制权交还给开发者,特别是在涉及文件系统修改和命令执行时,提供了必要的安全护栏。
  2. 优化开发体验(DX):通过“环境化办公视图”和跨设备通知,Pulse 将 AI 助手更好地融入了开发者的工作流。开发者可以在处理其他任务时,通过手机随时掌握 AI 进度并进行干预,减少了等待焦虑和上下文切换成本。
  3. 推动本地 AI 工具的发展:Pulse 坚持“本地优先”和“零依赖”的理念,为本地 AI 工具的开发树立了标杆。它证明了在不牺牲隐私和功能的前提下,可以构建出强大且易用的 AI 辅助工具。
  4. 促进 AI 成本的精细化管理:随着 AI 调用成本的增加,开发者对 Token 消耗的关注度日益提高。Pulse 提供的实时成本监控和预算警报功能,有助于开发者更有效地管理 AI 使用成本。

总体而言,Pulse 不仅是一个监控工具,更是一个增强型的人机交互界面,它通过技术手段弥合了 AI 自动化能力与人类控制需求之间的差距,为未来的 AI 辅助开发工具提供了重要的参考范式。

查看原文 →github.com