本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
简单介绍
一个可以为 Pi 提供动态的请求头伪装的插件,支持伪装 Claude Code、Codex 客户端请求头。
有不少中转站都限制 Claude Code/Codex 客户端,Pi 虽然可以在 models.json 里自定义请求头,但还是不够方便、不够彻底,只能自定义静态的请求头,而且要么是整个 provider 要么是单个 model,像我这种用一个网关包含全部模型的,一个一个模型单独配实在麻烦,所以就做了这个插件。
动态在哪呢?例如 codex 的 x-codex-window-id、x-codex-turn-metadata、x-client-request-id 这些随对话 id 改变的部分,是基础的请求头覆写管不到的地方。
安装使用
- 先从 git 安装插件
pi install git:github.com/rays1d/pi-custom-header
- 手动创建配置文件
- 建立配置目录
~/.pi/agent/extensions/pi-custom-header/
- 复制一份配置文件
config.json 到插件配置目录,模板在这里 .pi/agent/git/github.com/rays1d/pi-custom-header/config
- 复制请求头模板
claude-code.headers、codex.headers 到插件配置目录, 模板在这里 .pi/agent/git/github.com/rays1d/pi-custom-header/templates
- 编辑配置文件
配置文件长这个样子
config.json
{
"rules": [
{ "match": { "provider": "Axon", "modelId": "gpt-5.5" }, "template": "codex.headers" },
{ "match": { "provider": "Axon", "modelIdRegex": "^claude-" }, "template": "claude-code.headers" }
],
"blacklist": ["Authorization", "Content-Length", "Host", "Content-Encoding", "Connection", "Accept-Encoding"],
"sandbox": "windows_sandbox",
"debug": false
}
供应商 provider 和 模型名 modelId 来源于 models.json,模型支持 modelId 完全匹配和 modelIdRegex 正则匹配,所以上面模板里面的应用规则就是 gpt-5.5 用 Codex 请求头,claude 开头的模型全都用 Claude Code 请求头。其他更细致的部分可以看 readme。
请求头模板可以自行抓包,照着改动。内置的是根据我自己抓包写的模板。
一些说明
这个插件个人用了一段时间了,主要就是用来伪装 Codex,还没遇到过被拦截的情况。至于 claude 模型没怎么测试过,Claude Code 请求头比 Codex 简单不少,静态的基本可以覆盖到。Any 站这种不用考虑,还要验证请求体的,没什么伪装的必要。
项目地址: