pi-glm-quota

GLM Coding Plan (Zhipu BigModel credit-based plans, incl. team) quota usage in the pi footer — org/project context headers, /glm-quota report, /glm-quota-setup wizard

Packages

Package details

extension

Install pi-glm-quota from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-glm-quota
Package
pi-glm-quota
Version
0.1.2
Published
Sep 14, 2026
Downloads
315/mo · 315/wk
Author
focksor
License
MIT
Types
extension
Size
35.3 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-glm-quota

pi coding agent 的 GLM Coding Plan(智谱积分套餐)配额显示扩展。

GLM 5h █░░░░░░░░░ 12% ⏳1h22m · W █████░░░░░ 48% ⏳4d3h
  • 5h / W:5 小时滚动窗口 / 周窗口,各显示用量百分比与重置倒计时
  • 颜色分档:<50% 绿 / 50-79% 黄 / ≥80% 红;数据过期时末尾标 ~
  • /glm-quota 命令查看明细(积分数字、重置时间、套餐档位)
  • /glm-quota-setup 命令交互式配置(无需手改文件)
  • 仅当前 provider 为 zai*(如 zai-coding-cn)时显示,切走自动隐藏
  • 每轮对话后节流刷新(90s)+ 每 5 分钟后台刷新 + 每 30s 本地倒计时重绘

为什么需要这个扩展(踩坑记录)

智谱 2026-07-30 套餐改版后的积分制套餐(含团队套餐),其用量查询接口 /api/monitor/usage/quota/limit 的调用方式与旧版不同:

要素 说明
Authorization: <API key> raw 形式(不带 Bearer),取自 auth.json 的 zai-coding-cn key 或 ZAI_CODING_CN_API_KEY 环境变量
?type=2 query 参数;实测团队套餐为 2,个人新版疑似为 1(未验证)
bigmodel-organization: org-xxx 组织上下文头,必需
bigmodel-project: proj_xxx 项目上下文头,必需

缺任何一个的表现:

  • type当前用户不存在coding plan(所有社区插件都死在这里)
  • 缺 org/project 头 → 返回空 data:{}

这就是 @zhaoji-wang/pi-glm-usage@bacnh85/pi-subpi-glm-usage 等社区插件全部报错的原因——它们只发 API key。

org/project/type 的获取方法:浏览器访问 https://bigmodel.cn/coding-plan/ 并登录, 在 DevTools 的 Network 面板中找到 api/monitor/usage/quota/limit 请求:请求头 bigmodel-organizationbigmodel-project 即 org 与 project;URL query 参数 type 即套餐类型(团队=2,个人=1)。 (/glm-quota-setup 向导首个输入框的标题会展示同样的指引)

配置

配置包含三项:organization(组织 ID)、project(项目 ID)、type (套餐类型,团队=2 / 个人=1)。三种配置方式,优先级从高到低:

方式一:环境变量(临时/CI 场景)

export GLM_QUOTA_ORGANIZATION="org-xxxx"
export GLM_QUOTA_PROJECT="proj_xxxx"
export GLM_QUOTA_TYPE=2                    # 可选,默认 2
export GLM_QUOTA_INTERVAL_SECONDS=300      # 可选,刷新间隔(秒)

方式二:交互式向导(推荐)

在 pi 中运行:

/glm-quota-setup

依次输入 org、project、type,保存后立即拉取验证。已配置时标题会显示 当前值,输入框留空提交表示该项保持不变(可只改其中一项);按 Esc 取消 则整体中止不写入。

方式三:配置文件

复制 config.example.json~/.pi/agent/glm-quota.json 并填入真实值:

{
  "organization": "org-xxxxxxxx",
  "project": "proj_xxxxxxxxxxxx",
  "type": 2,
  "intervalSeconds": 300
}

配置文件含账号上下文标识,请勿提交到公共仓库。

API key 的解析优先级:ZAI_CODING_CN_API_KEY 环境变量 > ~/.pi/agent/auth.jsonzai-coding-cn 条目(与 pi 本身的凭证一致)。

安装方式

pi install npm:pi-glm-quota

pi update --extensions 更新;pi remove npm:pi-glm-quota 卸载。

开发模式(本地路径加载):在 ~/.pi/agent/settings.jsonextensions 数组中加入本目录的绝对路径:

{
  "extensions": ["/path/to/pi-glm-quota"]
}

pi 加载 package.jsonpi 清单声明的 index.ts/reload 可热重载。

文件结构

文件 职责
index.ts 扩展入口:事件接线、fetch、状态栏、命令与配置向导
pure.ts 纯逻辑:配置读取(env/文件)、key 解析、响应归一化、渲染
pure.test.ts 纯逻辑单测(离线,合成数据),node pure.test.ts
mock.test.ts mock pi 上下文的接线测试(真实网络请求),node mock.test.ts
config.example.json 配置文件模板

响应语义备注

limits[]CREDIT_LIMIT 条目的 unit 字段(实测):

  • unit: 3 → 小时窗口,number: 5 即 5 小时滚动窗
  • unit: 6 → 周窗口,number: 1 即 1 周

percentage 为已用百分比(0-100);usage 为总额度、currentValue 为已用、 remaining 为剩余(积分);nextResetTime 为 epoch 毫秒。

已知局限

  • 直接读服务端百分比,不受各模型积分系数差异影响
  • 套餐类型变更(团队 ↔ 个人)需同步更新 type 与 org/project