Skip to content

xkwy521/glm-cc-tps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

glm-cc-tps

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_KEYGLM_API_KEY 智谱 API Key,配置后可显示 GLM 5h/MCP 配额信息

安装

方式一:让 AI Agent 安装(推荐)

将本仓库地址发送给 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 会自动读取下方「技术参考」章节完成配置。

方式二:手动安装

  1. 克隆本仓库到本地:
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
  1. 编辑 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.jsonenv 中添加智谱 API Key:

{
  "env": {
    "ZHIPU_API_KEY": "your-api-key-here"
  }
}
  1. 重启 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

技术参考(供 AI Agent 读取)

以下是 Agent 自动配置时需要了解的技术细节。

配置位置

  • 全局配置(推荐)~/.claude/settings.json — 对所有项目生效
  • 项目级配置<项目根目录>/.claude/settings.json — 仅对当前项目生效

statusLine 配置规范

settings.json 中添加以下字段(与已有字段合并,勿覆盖):

{
  "statusLine": {
    "type": "command",
    "command": "node \"<glm-tps.js 绝对路径,使用正斜杠>\""
  }
}

注意事项:

  • 路径使用正斜杠 /,不要用反斜杠 \
  • 路径需要用双引号包裹(因为路径中可能含空格)
  • Node.js 版本要求 >= 12(无需安装任何 npm 依赖)

环境变量(可选)

settings.jsonenv 字段中添加,启用 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     # 本文档

About

Claude Code 状态行插件 — 实时显示 Token 速度、用量、费用及 GLM 配额信息。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors