Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
本来只能在官方客户端里用,ZCode Proxy 在本机把它变成标准的 OpenAI / Anthropic 接口,
于是 Claude Code、Codex、Silly Tavern ……都能直接用上你的套餐额度。

[快速上手](#-一分钟上手) · [接入编码工具](#-把编码工具接上来) · [手机版](#-手机版-android) · [常见问题](#-常见问题)
[快速上手](#-一分钟上手) · [接入编码工具](#-把编码工具接上来) · [手机版](#-手机版-android) · [额度与计费](#-额度与计费) · [常见问题](#-常见问题)

</div>

Expand Down Expand Up @@ -244,6 +244,28 @@ ssh -N -L 8090:127.0.0.1:8090 user@host
| `glm-5.2` | 1M | 128K |
| `glm-5.3` / `glm-5.3-flash` | 1M | 128K |

## 📊 额度与计费

代理和官方客户端打的是同一个上游,但**用哪份凭据,就记在哪本账上**。实测(2026-10)确认上游存在两条互不相通的计费线:

| 请求来源 | 上游凭据 | 计费落到 |
|---|---|---|
| 官方客户端(桌面端 / `zcode --web`) | OAuth 账号令牌 | **活动包**(如 `zcode-v3-start-plan-trust-<月日>`) |
| 本代理(`plan: start-plan`) | `auth login` 换来的凭据 | **每日免费池**(GLM-5.3 3M + GLM-5.3-Flash 5M) |

因此有一个常见误解值得先说清楚:**在客户端里领了大额活动包,接上代理后发现那个额度一直不掉,这不是 bug** —— 代理走的是每日免费池那条账。

两个额度都能查:

```bash
bun run src/index.ts quota # 面板 Quota 区同款
curl http://127.0.0.1:8080/quota # 原始快照 JSON(信息更全)
```

`quota` 会列出账号下的**所有**额度池。注意面板的 Quota 区只画两行,条目多于两条时以 `/quota` 的完整 JSON 为准 —— 最大的那个活动包往往就是被挤掉的那条。

**活动包按天发放**:包名带日期(如 `trust-1003` 指 10-03 那个),当天的量当天用完,隔天换新包,攒不下来。

## ❓ 常见问题

**启动就退出,提示 Not logged in?**
Expand All @@ -264,6 +286,18 @@ ssh -N -L 8090:127.0.0.1:8090 user@host
**它在后台到底做了什么?**
它就是一个"翻译官 + 传话员":把你的工具发出的标准请求翻译成官方客户端的同款请求转发上去,再把回复原样翻译回来。所有流量都只在你本机和官方服务器之间,不经过任何第三方。

**接上代理后,客户端里的活动包额度一直不掉?**
这是正常的,见上方「额度与计费」:代理走的是每日免费池,和客户端的活动包是两本账。想消耗活动包,就得在官方客户端里干活;代理侧的消耗请查 `quota` 里的每日池那两行。

**报 `request has been blocked due to unusual activity.`(`code 3012`)怎么办?**
这是上游风控,**主要看流量特征而不是用量**:同一时间段内官方客户端的正常使用不受影响,但来自非客户端进程的持续高频请求容易被拦。就现有观察:

- 被拦**不是永久封禁**,间隔一段时间后会自行恢复;
- 触发前往往有「短时间内对同一端点连续多次提交请求」的特征;
- 遇到 3012 / 403 / 429 / 405 时**先停手等冷却**,不要立刻重试 —— 继续重试只会加重判定。

因此不建议把代理接到无人值守、长时间跑批的场景;并发压住、请求之间留出间隔会更稳。

## 🛠️ 参与开发

```bash
Expand Down