使用 mitmproxy来窥探 claude code 的系统提示词
最近使用 claude code 过程中,想要查看一下具体的请求数据,学习一下它的提示词,但是 claude code 是个在 shell 中运行的工具,不太好查看,这里提供一种使用 mitmproxy 来抓包的方法,类似的还有使用 wir…
最近使用 claude code 过程中,想要查看一下具体的请求数据,学习一下它的提示词,但是 claude code 是个在 shell 中运行的工具,不太好查看,这里提供一种使用 mitmproxy 来抓包的方法,类似的还有使用 wireshark 等。
安装 mitmproxy
brew install mitmproxy有三种启动方式
# 启动命令行交互界面 (不支持 Windows)
mitmproxy
# 启动图形化网页界面 (推荐新手)
mitmweb
# 启动不交互的纯命令行版本
mitmdump这里使用 web 方式,方便操作查看,对新手比较友好
启动 web 版 mitmproxy
mitmweb -p 7890
这里有两个端口
- 7890,这个是 http 和 https 的代理端口,也是之后使用 claude code 进行代理的端口
- 8081, 这个是 web 端口,可以在浏览器中打开这个端口,进行可视化操作
浏览器会自动打开 http://127.0.0.1:8081, 如果没有自动打开就手动打开。
导入证书
这是非常关键的步骤,也是最麻烦的步骤,需要系统信任 mitmproxy 的证书,否则之后还是抓不到 https 的包
mitmproxy 在第一次启动的时候会自动生成证书,默认位置在
~/.mitmproxy/mitmproxy-ca-cert.pem输入以下命令
sudo security add-trusted-cert \
-d -r trustRoot \
-k /Library/Keychains/System.keychain \
~/.mitmproxy/mitmproxy-ca-cert.pem然后再输入
sudo security find-certificate -c mitmproxy启动 claude code
这里我使用的是智谱的大模型接口,官方的文档为 https://docs.bigmodel.cn/cn/coding-plan/tool/claude
配置setting.json
修改 ~/.claude/settings.json, 如果没有需要自己创建一个。
除了智谱官方文档中的配置这里需要将 HTTP_PROXY和HTTPS_PROXY添加到env中
{
"env": {
"DISABLE_AUTOUPDATER": "0",
"ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
"ANTHROPIC_AUTH_TOKEN": "your_zhipu_api_key",
"HTTP_PROXY": "http://127.0.0.1:7890",
"HTTPS_PROXY": "http://127.0.0.1:7890",
"CLAUDE_DEBUG": "1",
"API_TIMEOUT_MS": "3000000"
}
}由于 Node 不完全信任系统证书,必须显式指定证书的:
NODE_EXTRA_CA_CERTS=~/.mitmproxy/mitmproxy-ca-cert.pem claude这时就可以在 mitmproxy 中抓到claude code 的 https 请求了

可以看到 claude code 有很多请求 anthropic 的请求,通过 ~d bigmodel 来过滤出只请求智谱的

接下来在 claude code 上随便发送点内容,如 你好

此时可以查看到具体的请求 Request 信息

也可以查看到具体的请求体 body

查看响应 Response 数据
