- 这真的对嘛2026-08-149399
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 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 站这种不用考虑,还要验证请求体的,没什么伪装的必要。
项目地址:
github.com

GitHub - rays1d/pi-custom-header: 一个可以为 Pi 提供动态的请求头伪装的插件,支持伪装 Claude Code、Codex...
一个可以为 Pi 提供动态的请求头伪装的插件,支持伪装 Claude Code、Codex 客户端请求头。
主楼 - 这真的对嘛2026-08-219399
忘记写更新了,更新了一个功能,增加供应商级别和全局级别的请求头覆盖,不用按模型单独添加
优先级:model > provider > global > Pi 自身,model 级别的生效之后,后面低优先级的就完全不生效,防止重复。
背景:Pi 原生请求头里的
User-Agent: OpenAI/JS 6.26.0默认会被 cloudflare 屏蔽导致 403,导致有些站无法使用。当然这个也可以在网关里面配,给对应渠道去掉透传,就不会传过去 Pi 的请求头被屏蔽了。配置参考:```
{ "match": { "provider": "Axon" }, "template": "custom.headers" },
```这个就是 Axon 里的所有模型都启用 custom.headers 里面的配置,custom.headers 里面可以写个 user-agent 把 Pi 的覆盖掉。插件自带的 custom.headers 只写了 codex 的基础的 user-agent 和 originator,可以自己新建一个模板文件,写入自定义的内容。
同理匹配规则直接留空,就可以启用全局的请求头覆盖:```
{ "match": { }, "template": "custom.headers" }, - 宫灵紫凝2026-08-2121499
佬,我怎么感觉用了这个缓存命中率貌似降低了