一个面向小团队内部使用的 Coding Plan 薄代理和管理面板。界面和部分功能来源于 sub2api。
目前暂且只支持 Kimi Coding Plan。
它的目标是权限收敛、额度分配、并发控制和审计,不做客户端伪装,不做账号池调度。
注意:本项目尚未经过充分真实环境实测,仅提供一个技术方案参考。实际可用性和稳定性请以自己的账号、套餐和使用场景验证为准。
- 多个内部 proxy key,每个人一个 key
- 账号总池配置:5 小时、7 天请求/token 上限
- 人数/预留比例分配器:默认 2 人、预留 10%,每人默认 45%
- 每个 proxy key 按百分比分配总池,新 key 默认使用分配器算出的占比
- 到达 key 的 5 小时或 7 天占比上限后返回 429
- 每个 key 并发上限和全局并发上限
- 管理面板查看总览、key、审计日志、代理设置
- 透传客户端原始
User-Agent,只替换上游Authorization - 真实上游 Key 只放在服务端环境变量,不在前端展示
- 实验性官方同步额度池:默认关闭,启用后可用官方 5h/7d 剩余额度百分比动态估算每人 token 上限
npm install
cp .env.example .env编辑 .env:
PORT=8787
ADMIN_TOKEN=change-this-admin-token
CODING_PLAN_API_KEY=sk-your-provider-key
CODING_PLAN_UPSTREAM_BASE_URL=https://provider.example/coding/v1
CODING_PLAN_USAGE_URL=https://provider.example/coding/v1/usages
GLOBAL_CONCURRENCY_LIMIT=2
DATA_FILE=./data/store.json
CODING_PLAN_QUOTA_USER_AGENT=CodingPlanProxy/0.1 quota-check启动:
npm run build
npm start打开:
http://127.0.0.1:8787
面板登录使用 ADMIN_TOKEN。
复制并编辑环境变量:
cp .env.example .env
# 编辑 .env,设置 ADMIN_TOKEN 和 CODING_PLAN_API_KEY构建并启动:
docker compose up -d --build数据文件 data/store.json 会通过 volume 挂载到宿主机,容器重启不会丢失。
在 Roo Code、OpenCode 或其他 OpenAI-compatible 客户端里配置:
Base URL: http://YOUR_SERVER:8787/v1
API Key: 管理面板创建出来的 proxy key
Model: 使用当前支持服务的 coding 模型名
客户端请求 /v1/chat/completions 会被转发到设置页里的上游 Base URL。
在设置页先填账号总池。项目默认使用公开 coding-plan 估算值:
5h 总请求:1,307
5h 总 Token:65,000,000
7d 总请求:9,073
7d 总 Token:357,000,000
每个 proxy key 再设置占比。默认分配方式是:
每人占比 = (100% - 预留比例) / 人数
默认 人数 = 2、预留比例 = 10%,所以:
A:45%
B:45%
缓冲:10%
人数可以自由增加,预留比例也可以在设置页调整。新建 key 会默认使用当前计算出的每人占比;已有 key 可以通过“应用到所有 Key”按钮重新分配。
如果 A 的 5h 请求上限为 1,307 × 45% = 588 次,A 在 5 小时窗口内用到 588 次后,代理会对 A 返回 429,不会继续消耗上游账号。Token 上限同理。
Andante / Allegretto 下按 45% 计算,每人约为:
Andante 5h:161 次 / 6,750,000 tokens
Andante 7d:287 次 / 9,450,000 tokens
Allegretto 5h:588 次 / 29,250,000 tokens
Allegretto 7d:4,082 次 / 160,650,000 tokens
设置页也提供 Andante / Allegretto 预设按钮,实际套餐不同可以一键切换。
默认是预设模式:5h 和 7d 的请求/token 总池来自设置页预设,每个 proxy key 使用 总池 × 占比 作为硬限制。
启用官方同步额度池后,代理会读取官方 usage 接口返回的 5h/7d resetTime 和剩余额度百分比。每次刷新时,系统会用本地代理日志的 token 用量反推当前周期总池:
推算总 token = 本地代理总 token / 官方已用百分比
个人动态 token 上限 = 推算总 token × 个人占比
这个推算值在本次官方刷新后固定;刷新前用户继续消耗时,只更新分子。例如 A+B 本地已用 30 tokens,官方显示已用 11%,则推算总量约 272.72,45% 成员额度约 122.72。之后 A 再用 1 token,面板显示会变为 11 / 122 左右,而不会重新计算分母。
如果官方消耗明显高于代理日志,系统会把差额视为外部共享池消耗:差额先消耗预留池,超过预留池后再按“外部消耗权重”比例压缩所有人的 token 上限。权重默认为 1,表示完全计入外部消耗;调低则更偏向信任本地代理日志。
管理面板可以手动刷新官方额度。这个功能默认关闭,因为它会额外向上游发起一次带 User-Agent 的请求;确认接受这个风险后,在设置页打开“启用官方额度检查”再使用。
代理会请求:
GET <CODING_PLAN_USAGE_URL>
Authorization: Bearer <CODING_PLAN_API_KEY>
User-Agent: CodingPlanProxy/0.1 quota-check
这个请求是管理端探针,不代表任何一个成员的 proxy key,也不会进入 A/B 的本地用量账本。自动刷新会遵守最小 5 分钟间隔;接近官方 resetTime 时会提高刷新频率。官方 resetTime 到达后,系统等待 1 分钟缓冲再切换本地统计周期。
本项目不提供 User-Agent 伪装、随机化、统一清洗或账号池能力。代理会尽量保留客户端真实请求特征,仅做内部认证、限额、并发和审计。
请确认团队使用方式符合所使用 Coding Plan 的相关规则。薄代理可以减少真实 key 泄露、误用和额度失控,但不能消除账号共享本身的规则风险。