claude-tap:把 AI 编程助手的每一次请求都摊开来看
项目速览:在本地跟踪查看器中拦截并检查来自 Claude Code、Codex CLI、Gemini CLI、Cursor CLI、OpenCode、Kimi/Kimi Code、Pi 和 Hermes 的 Coding Agent API 流量。
秒懂
- 它是什么?
- claude-tap 是一个本地代理与流量查看器,拦截 Claude Code、Codex CLI、Gemini CLI 等编程代理的 API 请求,让你在浏览器里检查系统提示词、工具调用和流式响应。本文梳理它的工作方式、安装步骤、适用边界,并指出它不适合哪些场景。
- 适合谁用?
- claude-tap 适合那些需要调试代理行为、审查上下文变化、或者想保留完整请求证据的开发者,尤其是同时使用多个编程代理的人。它不适合对流量安全要求极高、完全不能接受任何代理层介入的环境,也不适合只想快速跑通任务的普通用户。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库在最近一天内有新的提交。
- 用什么语言写的?
- 主要是 Python(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题:代理的黑箱变成可检查的记录
AI 编程助手越来越复杂,系统提示词、工具定义、对话历史、流式输出都混在一次 API 请求里。出了问题,你只能看到最终结果,不知道是哪一步导致的。claude-tap 把这个问题摊平:它作为本地代理拦截客户端发出的 HTTP 请求,把请求体和响应体记录下来,再在浏览器里展示。你不需要抓包工具,也不需要读原始 JSON。它面向的是调试代理行为、对比不同轮次上下文变化、以及保存证据链的开发者。
工作原理:本地代理加追踪查看器
claude-tap 的核心是一个本地代理服务器。你启动它,然后让编程客户端(比如 Claude Code)通过这个代理发送请求。它记录下每个请求的完整内容,包括系统提示词、消息历史、工具 schema、工具调用结果、流式响应片段和 token 用量。记录以会话为单位保存,每个会话是一个本地 trace 文件。默认情况下,claude-tap 会启动一个实时浏览器查看器,你可以在浏览器里逐条检查请求。如果不想启动查看器,可以用 --tap-no-live 关闭,回到旧版行为。记录的数据还支持导出为自包含的 HTML 文件,方便分享或归档。
支持的客户端和启动方式
README 列出的客户端很多:Claude Code、Codex CLI、Codex App、Gemini CLI、Grok Build CLI、DeepSeek Harness、Kimi CLI、MiMo Code、OpenCode、OpenClaw、Pi、Hermes Agent、Cursor CLI、Qoder CLI、Antigravity CLI、CodeBuddy CLI。启动方式统一:claude-tap 后面跟 --tap-client 参数指定客户端,双横线之后的参数原样传给客户端。比如追踪 Codex CLI 用 claude-tap --tap-client codex,追踪 Gemini CLI 用 claude-tap --tap-client gemini -- -p "hello"。不带参数时默认启动 Claude Code,并自动识别 ANTHROPIC_BASE_URL 等环境变量指向的自定义上游。
安装与升级:两条路径都很快
安装需要 Python 3.11 以上。推荐用 uv:uv tool install claude-tap。也可以用 pip:pip install claude-tap。升级方式对应三种:claude-tap update、uv tool upgrade claude-tap、pip install --upgrade claude-tap。注意,claude-tap update 是项目自带的命令,uv 和 pip 的升级命令则是包管理器层面的。如果你用 uv 安装,就不要用 pip 去升级,否则可能出现两个版本并存。
一个关键限制:代理模式不适合所有场景
claude-tap 的拦截方式依赖客户端支持走代理。对于 Claude Code、Codex CLI 这类命令行工具,设置代理很容易。但 Cursor 这样的 IDE 集成环境,README 提到需要启动 cursor-agent 并配合实时转录监听,也就是用 claude-tap --tap-client cursor 来捕获。这种方式不是纯粹的代理拦截,而是监听本地转录文件,所以捕获的完整度可能不如代理模式。另外,如果客户端使用了 WebSocket 或加密传输,代理可能只能看到部分内容。README 没有详细说明每种客户端的限制,所以实际效果需要自己验证。
替代方案:抓包工具与专用转录查看器
如果你不想引入 claude-tap 这一层代理,可以用通用抓包工具,比如 mitmproxy 或 Wireshark。它们能捕获任何 HTTP/HTTPS 流量,但你需要自己解析 JSON,而且没有针对代理上下文的界面。另一个方向是 Phistory,README 提到它专门做版本化的系统提示词快照,从 Claude Code、Codex、Kimi 等客户端导出提示词历史,并提供对比查看器。Phistory 依赖 claude-tap 的只捕获导出功能,所以它更像是 claude-tap 的上层应用,而不是替代品。如果你只需要看提示词变化,Phistory 更轻量;如果你需要完整的请求级证据,claude-tap 更合适。
维护与许可:活跃更新,MIT 协议
项目最近一次提交在 2026 年 8 月,发布了 v0.1.145,说明维护活跃。版本号迭代很快,从 v0.1.143 到 v0.1.145 只隔了几天,意味着功能变化频繁,升级时要注意兼容性。许可证是 MIT,意味着你可以自由使用、修改和分发,但需要保留版权声明。没有看到企业支持或商业服务,所以生产环境使用需要自己承担维护成本。
编辑结论
claude-tap 适合那些需要调试代理行为、审查上下文变化、或者想保留完整请求证据的开发者,尤其是同时使用多个编程代理的人。它不适合对流量安全要求极高、完全不能接受任何代理层介入的环境,也不适合只想快速跑通任务的普通用户。在采用之前,先确认你的客户端版本是否在支持列表内,并检查代理端口是否与公司网络策略冲突。另外,虽然 README 声称会脱敏常见认证头,但你应该自行验证脱敏是否覆盖了你所用客户端的全部敏感字段。
社区笔记