使用 mitmproxy来窥探 claude code 的系统提示词
· 阅读需 3 分钟
最近使用 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 数据
