Claude Code 状态行插件 — 实时显示 Token 速度、用量、费用及 GLM 配额信息。
| 指标 | 说明 |
|---|---|
| 模型名称 | 自动识别 GLM / Claude / GPT 系列,显示简短名称和版本号 |
| 输出模式 | 显示当前 Output Style(前4字符大写) |
| 上下文占用 | 进度条 + 百分比,三级颜色预警(绿/黄/红) |
| 输出速度 ↓ | 模型生成的实时 Token/s,EMA 平滑,四级颜色 |
| 输入速度 ↑ | 上下文+思考+文件读取的实时 Token/s |
| Token 用量 | 当前会话的输入/输出 Token 数(>1k 自动缩写) |
| 套餐等级 | 显示当前 Plan 类型(MAX / PRO 等) |
| 费用 | 透传 Claude Code 统计的 API 调用费用(USD) |
| API 调用次数 | 当前会话的 Prompt 调用计数(P:n) |
| GLM 5h 配额 | 智谱 API 近 5 小时滚动窗口用量百分比 |
| GLM MCP 配额 | 智谱 MCP 月度配额使用百分比 |
| 项目/分支 | 当前工作目录名称 + Git 分支名 |
每个 Claude Code 窗口通过独立的 session_id 隔离数据:
- 独立统计:TPS 速度、Token 用量、API 调用次数均按会话隔离
- 共享数据:GLM 配额为账户级别,所有窗口共享读取(3分钟缓存)
- 缓存隔离:速度和计数缓存文件按
session_id前8位命名,互不干扰
缓存文件位置(系统临时目录):
%TEMP%\glm-tps-speed-{sessionTag}.json # TPS 速度缓存
%TEMP%\glm-tps-prompt-{sessionTag}.json # API 调用计数缓存
%TEMP%\glm-tps-quota-cache.json # GLM 配额缓存(全局共享)
费用数据不是本插件计算的,而是直接读取 Claude Code 状态行传入的 cost.total_cost_usd 字段,以 USD 显示。具体定价由 Claude API 的计费模型决定,本插件仅做透传展示。
- 零依赖:纯 Node.js 实现,无需安装任何 npm 包
- ANSI 256色:使用 Catppuccin Mocha 配色方案
- EMA 平滑:TPS 使用指数移动平均平滑,间隔 >30s 直接取瞬时值避免过时数据影响
- 文件缓存:配额数据 3 分钟 TTL 缓存,减少 API 调用
| 变量 | 必填 | 说明 |
|---|---|---|
ZHIPU_API_KEY 或 GLM_API_KEY |
否 | 智谱 API Key,配置后可显示 GLM 5h/MCP 配额信息 |
将本仓库地址发送给 Claude Code 或其他 AI Agent,附上以下指令即可一键安装:
请克隆仓库 https://github.com/xkwy521/glm-cc-tps 并完成 Claude Code 状态行插件的全局安装:
1. 将项目克隆到本地固定位置
2. 在 ~/.claude/settings.json 中配置 statusLine,command 指向克隆后的 glm-tps.js 绝对路径
3.(如需 GLM 配额显示)在 env 中添加 ZHIPU_API_KEY 或 GLM_API_KEY
Agent 会自动读取下方「技术参考」章节完成配置。
- 克隆本仓库到本地:
git clone https://github.com/xkwy521/glm-cc-tps.git
# 记下 glm-tps.js 的绝对路径,例如:
# Windows: D:/Codes/glm-cc-tps/glm-tps.js
# macOS/Linux: /home/user/glm-cc-tps/glm-tps.js- 编辑 Claude Code 全局配置文件
~/.claude/settings.json,添加statusLine:
{
"statusLine": {
"type": "command",
"command": "node \"<glm-tps.js 的绝对路径>\""
}
}Windows 示例:
{
"statusLine": {
"type": "command",
"command": "node \"D:/Codes/glm-cc-tps/glm-tps.js\""
}
}macOS / Linux 示例:
{
"statusLine": {
"type": "command",
"command": "node \"/home/user/glm-cc-tps/glm-tps.js\""
}
}3.(可选)启用 GLM 配额显示 — 在 settings.json 的 env 中添加智谱 API Key:
{
"env": {
"ZHIPU_API_KEY": "your-api-key-here"
}
}- 重启 Claude Code,终端底部状态行应显示类似内容:
Sonnet 4.6 NORMAL ████░░ 8% ↓85.2 ↑12.3 t/s ↑12.0k ↓2.8k MAX $0.042 P:5 5h:██░░░32% MCP:15% my-project @ main
以下是 Agent 自动配置时需要了解的技术细节。
- 全局配置(推荐):
~/.claude/settings.json— 对所有项目生效 - 项目级配置:
<项目根目录>/.claude/settings.json— 仅对当前项目生效
在 settings.json 中添加以下字段(与已有字段合并,勿覆盖):
{
"statusLine": {
"type": "command",
"command": "node \"<glm-tps.js 绝对路径,使用正斜杠>\""
}
}注意事项:
- 路径使用正斜杠
/,不要用反斜杠\ - 路径需要用双引号包裹(因为路径中可能含空格)
- Node.js 版本要求 >= 12(无需安装任何 npm 依赖)
在 settings.json 的 env 字段中添加,启用 GLM 配额显示:
| 变量 | 优先级 | 说明 |
|---|---|---|
ZHIPU_API_KEY |
高 | 智谱 API Key |
GLM_API_KEY |
低 | 智谱 API Key(备选) |
Claude Code 将状态行数据以 JSON 格式通过 stdin 传递给插件,插件从 stdin 读取后格式化输出 ANSI 着色字符串到 stdout,Claude Code 渲染在终端底部状态行。
stdin JSON 关键字段:
{
"model": { "id": "claude-sonnet-4-6" },
"session_id": "abc12345-...",
"context_window": {
"context_window_size": 200000,
"total_input_tokens": 15000,
"total_output_tokens": 3200,
"current_usage": {
"input_tokens": 12000,
"output_tokens": 2800
},
"used_percentage": 8.9
},
"cost": { "total_cost_usd": 0.042 },
"plan": "max",
"output_style": { "name": "normal" }
}每个 Claude Code 窗口通过 session_id 独立隔离速度和计数缓存,无需额外配置。GLM 配额为账户级别,所有窗口共享(3分钟 TTL 缓存)。
glm-cc-tps/
├── glm-tps.js # 插件主文件(唯一文件)
└── README.md # 本文档