pi-provider-headers
Pi extension package that injects provider-specific default headers based on each provider API type.
Package details
Install pi-provider-headers from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-provider-headers- Package
pi-provider-headers- Version
0.1.0- Published
- Jun 20, 2026
- Downloads
- not available
- Author
- raoxxxwq
- License
- MIT
- Types
- extension
- Size
- 15 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-provider-headers
pi-provider-headers 是一个 Pi extension package。
它会按 models.json 中每个 provider 的 api 类型,自动注入默认 headers,模拟 codex CLI / claude code CLI 的请求特征。新增自定义 provider 时,不需要再手动为每个 provider 重复配置 headers。
工作原理
启动时读取 ~/.pi/agent/models.json 与 ~/.pi/agent/provider-headers.json,对每个 provider:
- 取其
api类型(provider 级优先,否则取第一个 model 级)。 - 在配置
rules中匹配api,渲染 header 值(支持{var}模板)。 - 与
models.json里已有的headers合并(models.json同名 header 优先)。 - 调用
pi.registerProvider(name, { baseUrl, apiKey, authHeader, headers })注入,并透传原有鉴权字段。
配置文件
~/.pi/agent/provider-headers.json 缺失时,会使用扩展内置默认配置:
{
"vars": { "codexVersion": "0.141.0", "claudeCodeVersion": "2.1.178" },
"rules": [
{
"name": "codex-cli",
"api": ["openai-responses", "openai-codex-responses", "azure-openai-responses", "openai-completions"],
"headers": {
"User-Agent": "codex_cli_rs/{codexVersion} ({osInfo}) Terminal",
"originator": "codex_cli_rs",
"version": "{codexVersion}"
}
},
{
"name": "claude-code",
"api": ["anthropic-messages"],
"headers": {
"User-Agent": "{claudeCodeVersion} (Claude Code)",
"anthropic-version": "2023-06-01",
"anthropic-beta": "context-1m-2025-08-07"
}
}
]
}
安装
本地路径安装
pi install /absolute/path/to/pi-provider-headers
npm 安装
正式发布到 npm 后可用:
pi install npm:pi-provider-headers
临时试用
pi -e ./pi-provider-headers
使用
安装后重新启动 Pi,或执行:
/reload
启动后如果命中规则,会打印类似日志:
[provider-headers] 已注入 headers:
如果有 provider 未命中规则,也会打印跳过列表。
生效与调试
- 若想让自动检测的
osInfo真正生效,请删除models.json中各 provider 已手写的同名headers。 - 这个包当前通过
package.json里的pi.extensions暴露入口:./index.ts - 修改代码后可用
/reload热重载
开发
发布前检查:
npm run check:import
npm run pack:check
npm run prepublishOnly
更完整的首次发布步骤见:
.docs/first-npm-release.md
作用范围
仅处理 ~/.pi/agent/models.json 中显式声明的 provider。项目级 .pi/models.json 不处理。