技术深度解析
Pulse 的工作原理看似简单:拦截 Claude Code 输出到终端的操作流,并将其转发到一个独立的 Web 服务器,该服务器渲染出一个移动友好的仪表盘。其架构由三个主要组件构成:一个捕获 Claude Code stdout/stderr 的终端包装器、一个广播这些事件的轻量级 WebSocket 服务器,以及一个针对移动视口优化的 React 前端。
终端包装器是关键部分。它使用 `pty.js` 或类似的伪终端库将 Claude Code 作为子进程启动,然后逐行读取其输出。每一次操作——无论是文件写入、Shell 命令还是 API 调用——都被解析为一个结构化的 JSON 事件,包含操作类型、参数、唯一 ID 和时间戳。这些事件通过 WebSocket 连接推送到仪表盘服务器,该服务器维护一个待批准队列。
批准机制是 Pulse 区别于简单日志工具的地方。当 Claude Code 请求执行某个工具时,Pulse 会拦截该请求并将其置于待处理状态。仪表盘会显示完整的上下文——工具名称、参数以及周围的对话历史——并提供一个简单的批准/拒绝按钮。只有在用户点击“批准”后,Pulse 才会将请求释放回 Claude Code 执行。这创建了一个人在回路中的门控机制,防止任何未经明确同意的操作发生。
Token 消耗追踪通过解析 Claude Code 自身从 API 响应头中输出的 Token 使用报告来实现。Pulse 按会话汇总这些数据,并显示输入、输出和总 Token 的实时累计值。这些数据本地存储在 SQLite 数据库中,用于历史分析。
GitHub 仓库(在 GitHub 上搜索 "pulse-claude-code",目前约 2800 星)主要用 TypeScript 编写,后端基于 Node.js,前端使用 React 和 Tailwind CSS。代码库非常干净且模块化,包含独立的终端包装器、服务器和前端包。安装非常简单:一条 `npx` 命令即可搭建整个技术栈。
| 特性 | Pulse | Claude Code 原生 | 终端日志工具 |
|---|---|---|---|
| 实时移动端流式传输 | 是 | 否 | 否 |
| 逐工具批准门控 | 是 | 否 | 否 |
| Token 追踪 | 是 | 基础(仅 API) | 否 |
| 开源 | 是 | 否 | 是(多种) |
| 设置复杂度 | 低(一条命令) | 低(内置) | 中等 |
| 延迟开销 | 每次操作约 200ms | 无 | 约 50ms |
数据要点: Pulse 每次工具调用因批准往返引入约 200ms 的延迟开销,但与安全性提升相比微不足道。在 Claude Code 生态系统中,没有其他工具提供移动批准门控,这使得 Pulse 在高风险远程操作中具有独特优势。
关键参与者与案例研究
主要参与者是这位匿名的佛兰德斯学生开发者,他在业余时间构建了 Pulse。该项目没有机构支持、没有风险投资、也没有企业背景。这既是其优势,也是其脆弱性。该开发者一直在 GitHub 和 X(原 Twitter)上活跃,分享进展并回应社区反馈。该项目在第一个月内迅速获得超过 2800 个 GitHub 星标,表明市场对代理监督工具的迫切需求。
Claude Code 本身,由 Anthropic 开发,是目标代理。Anthropic 将 Claude Code 定位为强大的终端编码助手,能够自主执行多步骤任务。然而,Anthropic 尚未发布除基础日志之外的官方监控或批准工具。这个空白正是 Pulse 所填补的。
AI 代理监控领域的其他参与者包括:
- LangChain 的 LangSmith:提供 LLM 应用的追踪和评估,但侧重于开发和调试,而非实时移动监督。
- Weights & Biases Prompts:提供提示监控和版本管理,但同样缺乏实时批准循环。
- OpenAI 的使用仪表盘:仅提供服务器端分析,无逐调用控制。
- 自建解决方案:许多团队拼凑了终端日志工具或 Slack 机器人,但都没有 Pulse 这样精致的移动 UI 和批准机制。
| 解决方案 | 实时移动端 | 逐调用批准 | 开源 | 成本 |
|---|---|---|---|---|
| Pulse | 是 | 是 | 是 | 免费 |
| LangSmith | 否 | 否 | 否 | 免费增值 |
| W&B Prompts | 否 | 否 | 否 | 免费增值 |
| 自定义脚本 | 视情况而定 | 视情况而定 | 是 | 开发者时间 |
数据要点: Pulse 是唯一同时提供实时移动端流式传输和逐调用批准的免费开源解决方案。最接近的替代方案要么是昂贵的企业工具,要么需要大量的定制开发。
行业影响与市场动态
Pulse 的出现标志着 AI 代理生态系统的一个更广泛转变:重心正从模型提供商转向工具构建者。随着前沿模型如