@cluski/pi-new-api
Pi extension: register a self-hosted New API gateway as a custom OpenAI-compatible provider.
Package details
Install @cluski/pi-new-api from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@cluski/pi-new-api- Package
@cluski/pi-new-api- Version
0.1.0- Published
- Jul 31, 2026
- Downloads
- 264/mo · 11/wk
- Author
- cluski
- License
- MIT
- Types
- extension
- Size
- 12.1 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-new-api
为 pi 开发的 New API 网关 extension:把自建的 New API 聚合网关注册成一个 OpenAI 兼容 provider,统一纳管公司买的多套 coding plan。
New API 把上游各家厂商(Zhipu GLM、Kimi/Moonshot、Anthropic、OpenAI、……)统一转译成 OpenAI /v1/chat/completions 协议吐出来,本 extension 就是在 pi 里挂上这个网关地址 + token,并把精选模型按各厂商官方参数配好。
安装
这是一个 npm pi 包(package.json 里带 pi manifest 和 pi-package 关键字)。有三种用法:
1) 本地开发 / 试跑(不发布) —— 直接用本地路径加载:
pi -e ./packages/new-api # 临时加载(本次运行有效,不写入设置)
pi install ./packages/new-api # 安装到用户设置(~/.pi/agent/settings.json)
pi install -l ./packages/new-api # 安装到项目设置(.pi/settings.json,随仓库共享给团队)
2) 发布到 npm 后安装:
npm publish --access public # 先登录拥有 @cluski scope 的 npm 账号
pi install npm:@cluski/pi-new-api # 别人/别的项目这样装
3) 从 git 安装(推到 GitHub 后):
pi install git:github.com/<user>/pi-new-api@v0.1.0
包里的
@earendil-works/*是 peerDependencies(*),不打包进 tarball —— pi 运行时自带这些核心包,版本自动对齐。
配置
| 环境变量 | 必填 | 说明 |
|---|---|---|
NEW_API_KEY |
✅ | New API 后台签发的令牌(形如 sk-...)。extension 以 Authorization: Bearer <key> 发送。 |
NEW_API_BASE_URL |
❌ | 网关地址,默认 http://10.30.60.169:3000/v1。换机房/走域名时覆盖即可,无需改代码。 |
export NEW_API_KEY=sk-xxxxxxxxxxxxxxxx
# 可选:
export NEW_API_BASE_URL=http://your-newapi-host:3000/v1
想固化配置而不污染环境?把
apiKey、baseUrl写进~/.pi/agent/models.json的new-api段即可,pi 会按models.json> extension > 内置 的优先级叠加。
暴露的模型
精选 5 个 coding 模型,compat 全部对齐 pi-ai 内置 provider 的官方定义,所以经网关走和直连厂商行为一致:
| model.id | 显示名 | 上游厂商 | 对齐的 pi-ai 内置定义 | 协议 | contextWindow | maxTokens |
|---|---|---|---|---|---|---|
glm-5.2 |
GLM 5.2 | 智谱 Z.AI | zai-coding-cn glm-5.2 |
openai-completions (thinkingFormat: zai) |
1,000,000 | 131,072 |
glm-4.7 |
GLM 4.7 | 智谱 Z.AI | zai-coding-cn glm-4.7 |
openai-completions (thinkingFormat: zai) |
204,800 | 131,072 |
k3 |
Kimi K3 | Kimi/Moonshot | moonshotai kimi-k3 |
openai-completions (thinkingFormat: openai, deferred tools) |
1,048,576 | 131,072 |
k3-256k |
Kimi K3 256K | Kimi/Moonshot | 同 k3,仅缩短上下文窗口 |
openai-completions | 262,144 | 131,072 |
kimi-for-coding |
Kimi For Coding | Kimi/Moonshot | moonshotai kimi-k2.7-code |
openai-completions (thinkingFormat: deepseek) |
262,144 | 262,144 |
⚠️ 注意 Kimi K3 系:pi-ai 官方的
kimi-codingprovider 里 K3 走的是 Anthropic/v1/messages协议(还带User-Agent: KimiCLI/1.5、adaptive thinking)。但经 New API 网关后统一成了 OpenAI 协议,所以本 extension 按moonshotaiprovider 的kimi-k3(OpenAI 格式)来配,而非kimi-coding(Anthropic 格式)。
用法
# 启动 pi 后切换模型
/model new-api/k3
# 或在启动时指定
pi --model new-api/glm-5.2
项目结构
new-api/
├── package.json npm 包清单(name/version/keywords=pi-package/pi.extensions manifest/peerDependencies)
├── src/index.ts 扩展工厂:注册 new-api provider + 5 个模型
├── tsconfig.json
├── README.md
└── LICENSE
类型检查
npm install # dev 依赖:typescript;pi 核心包通过 workspace 软链提供类型
npm run check # tsc --noEmit
注意事项
- 新增/改名模型:New API 后台改了渠道名,直接改
src/index.ts里的id字段即可,无需动其它配置。 - 换网关地址:覆盖
NEW_API_BASE_URL环境变量,或改src/index.ts里的默认值。 - 换 token:
export NEW_API_KEY=...即可,extension 不会缓存;想用命令式取 key 也可写apiKey: "!pass-show newapi-token"。