Skip to content

Repository files navigation

🐒 MonkeyCode2API

面向 monkeycode-ai.com(长亭百智云 MonkeyCode)的 OpenAI 兼容反向代理。 把 MonkeyCode 账号的 每日免费额度(免费用户每日 1000 万基础模型 Token)包装成标准的 POST /v1/chat/completions(流式 / 非流式)+ GET /v1/models 接口,让你可以用任何 OpenAI SDK / 客户端(ChatGPT-Next-Web、LobeChat、cursor 等)直接调用 MonkeyCode 的账号额度。

纯 Go 标准库、零第三方依赖,架构与 qoderwork2apitraework2api 一致。

Go Version License Docker


✨ 功能特性

  • OpenAI 兼容 APIPOST /v1/chat/completions(流式 SSE + 非流式)、GET /v1/modelsGET /statusGET /healthz
  • 动态模型目录/v1/models 与对话启动时从 models/available 运行时拉取你的全部可用模型(跟随账号/订阅实时变化),无需硬编码模型白名单
  • 多账号池:按「剩余每日免费额度」优先选号;额度耗尽自动长冷却等隔日刷新;429 / 401 / 5xx 自动短冷却、禁用、轮转(防雪崩)
  • 每日额度到账检查:调度器每天自动拉取 GET /api/v1/users/wallet,确认 daily_token_balance / daily_token_limit(免费用户 = 1000 万)已生效,即「当日额度已到账」,结果写回 auths/ 快照并在 /statussignin.shcredit.sh 中可视化
  • 每日自动签到(得积分):调度器每天在 checkin_hours(默认 9:05 与 21:00 两个窗口)各执行一次「尽力签到」——每个账号先查今日是否已签,已签自动跳过(不会重复拿积分),未签的才自动签(+100 积分);所需的 Cap.js PoW 验证码(FNV-1a + xorshift32 派生,SHA-256 工作量证明)已内置、自动求解。
  • Cookie 会话认证:浏览器登录后在 login.sh 粘贴 Cookie 即可落盘,无需写死密钥
  • Docker 一键部署docker compose up 即起,内置 healthcheck 常驻

🚀 快速开始(Docker)

git clone https://github.com/ZFXing-lite/monkeycode2api.git
cd monkeycode2api

# 1. 配置 API Key(Bearer 鉴权;只走 env,绝不落盘 git)
export MC2A_API_KEY=$(openssl rand -hex 32)

# 2. 添加 MonkeyCode 账号(粘贴浏览器 Cookie)
./login.sh

# 3. 启动服务(日志常驻)
docker compose up -d --build
curl http://127.0.0.1:7887/healthz   # ok
curl http://127.0.0.1:7887/v1/models # 动态模型列表

# 4. 每日额度到账检查(1000 万/日)+ 自动签到
./signin.sh   # 或日报 ./credit.sh

完整部署(Docker/本机、多账号、验证)见下方 🛠 部署

🛠 部署

方式一:Docker(推荐,一条命令)

git clone https://github.com/ZFXing-lite/monkeycode2api.git
cd monkeycode2api

# 1. 生成 API Key(只走环境变量,绝不落盘 git)
export MC2A_API_KEY=$(openssl rand -hex 32)

# 2. 添加账号(可反复执行,支持多账号入库)
./login.sh        # 粘贴浏览器 Cookie

# 3. 构建并常驻(内置 healthcheck;restart 自动拉起)
docker compose up -d --build

# 4. 验证
curl http://127.0.0.1:7887/healthz       # ok
curl http://127.0.0.1:7887/v1/models     # 动态模型列表

docker-compose.yml./auths(Cookie)和 ./data(状态)挂载进容器并持久化, 监听宿主 7887;KEY 由 MC2A_API_KEY 环境注入。

方式二:本机裸跑(无需 Docker,需 Go 1.23+)

export MC2A_API_KEY=$(openssl rand -hex 32)
./login.sh                              # 添加账号
go build -o mc2api ./cmd/server
./mc2api                                # 默认监听 :7887
# 停止:Ctrl+C

添加多账号

重复 ./login.sh 即可把多个 MonkeyCode 账号全放进 auths/;服务会将请求轮询摊到 有额度的账号上(额度耗尽自动长冷却等隔日刷新,429/5xx 短冷却,cookie 失效自动禁用)。

验证部署

# 健康检查
curl http://127.0.0.1:7887/healthz

# 到账检查(每日 1000 万额度是否到账 + 自动签到)
./signin.sh

# 钱包/额度日报
./credit.sh

# 全部账号状态(额度/冷却/禁用)
curl -H "Authorization: Bearer ${MC2A_API_KEY}" http://127.0.0.1:7887/status

💬 调用对话

# 非流式
curl -X POST http://127.0.0.1:7887/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${MC2A_API_KEY}" \
  -d '{
    "model": "kimi-k2.5",
    "messages": [{"role": "user", "content": "你好,请介绍一下你自己"}],
    "stream": false
  }'

# 流式(SSE)
curl -N -X POST http://127.0.0.1:7887/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${MC2A_API_KEY}" \
  -d '{
    "model": "minimax-m2.5",
    "messages": [{"role": "user", "content": "写一段快速排序的 Go 代码"}],
    "stream": true
  }'

任意 OpenAI 兼容客户端只需配置:

配置项
Base URL http://127.0.0.1:7887/v1
API Key 你设置的 MC2A_API_KEY
Model GET /v1/models(如 kimi-k2.5deepseek-pro-flash

🤖 支持的模型(动态加载)

不再硬编码模型列表GET /v1/models 与任务创建都会启动时从平台 GET /api/v1/users/models/available 动态拉取,跟随你的订阅实时变化。 你可以在 OpenAI 客户端直接选下面这些可见模型(需用 /v1/models 返回的精确模型名):

常见基础模型 单价(积分/厘) 说明
kimi-k2.5 200 免费额度可用
minimax-m2.5 200 免费额度可用
qwen3.5-plus 100 免费额度可用
monkeycode-basic/deepseek-v4-flash 200 基础 agent
deepseek-v4-pro / glm-5 / minimax-m2.7 400 基础升级档(折积分)
qwen3.7-max / minimax-m3 600 支持图片
gpt-5.4 / glm-5.1 / kimi-k2.6 800 旗舰档
gpt-5.5 1000 更高

基础档(access_level=basic)模型在你的免费每日 1000 万 Token 额度内;部分较贵模型会 折消耗积分。实际可用列表以你实例 GET /v1/models 返回为准(会动态跟随平台变化)。 专业档(pro)/旗舰档(ultra)模型若账号订阅不含,models/available 不会返回,不可请求。


⚙️ 配置说明

config.json(参考 config.example.json):

{
  "listen": ":7887",
  "api_key": "your-api-key-here",
  "auth_dir": "./auths",
  "state_file": "./data/state.json",
  "cooldown": {
    "hard_credit": "12h",
    "soft_rate": "60s",
    "err_threshold": 5,
    "err_cooldown": "10m"
  },
  "schedule": {
    "checkin_hours": [9, 21],
    "quota_check_hour": 0
  },
  "upstream": {
    "timeout_seconds": 180
  }
}

全部项均可用 MC2A_* 环境变量覆盖:MC2A_LISTEN / MC2A_AUTH_DIR / MC2A_STATE_FILE / MC2A_SOFT_RATE / MC2A_ERR_THRESHOLD / MC2A_QUOTA_CHECK_HOUR / MC2A_CHECKIN_HOURS(逗号分隔的签到时刻,如 9,21)。 MC2A_API_KEY 只能从环境变量读取,不落盘 config 与 git。

字段 含义
hard_credit 额度耗尽后的长冷却(隔日刷新后自动恢复)
soft_rate 429 限流的短冷却
err_threshold / err_cooldown 连续错误达阈值后的冷却
checkin_hours 每日自动签到时刻(小时列表,多个时段都尽力签;已签自动跳过不重复)
quota_check_hour 每日额度到账检查时间(小时)

🛠 运维脚本

脚本 用途
./login.sh 粘贴浏览器 Cookie → 校验 /users/me + /users/wallet → 落盘 auths/monkeycode-<uid>.json
./signin.sh 批量「到账检查 + 每日签到」(含额度到账报告)
./credit.sh 钱包 / 额度日报(美化输出);./credit.sh -json 输出原始 JSON

📁 目录结构

cmd/server/         OpenAI 兼容 HTTP 服务(入口)
cmd/signin/         批量签到 + 额度到账检查工具
cmd/credit/         钱包 / 额度日报工具
internal/cred/      Cookie 会话凭证 + auth 文件原子读写
internal/upstream/  MonkeyCode 上游客户端(wallet / checkin / models / task+WS)
internal/pool/      账号池(额度优先轮转、冷却、禁用)
internal/scheduler/ 定时签到 + 每日到账检查
internal/server/    OpenAI 兼容路由(鉴权 / 流式转换)
login.sh / signin.sh / credit.sh   运维脚本
auths/    (gitignored)monkeycode-<uid>.json 凭证
data/     (gitignored)state.json 账号池状态

🔐 认证与对话通道说明

  1. 认证:MonkeyCode 走长亭百智云 OAuth 授权 + same-origin Cookie(credentials: same-origin), 无公开设备授权接口,因此以浏览器 Cookie 作为会话凭证,存于 auths/(已 gitignore)。
  2. 对话通道:MonkeyCode 是 Agent 任务平台,对话正文经 POST /api/v1/users/tasks 创建任务 + WebSocket 安全通道 /api/v1/users/tasks/stream?id=<task_id> 拉取。 任务创建需传 model_id(UUID)、image_idhost_id:"public_host",缺参会 400。 本项目将其调度为 OpenAI chunk;流式帧事件做了容错解析并全量打日志便于排障(详见 SPEC.md)。
  3. 到账检查:额度每日自动发放(无需手动领取)。系统每日按 quota_check_hour 对每个账号 执行 GET /api/v1/users/wallet,确认 daily_token_balance / daily_token_limit(免费 = 1000 万) 生效状态,作为「今日额度已到账」的依据。

📄 更多文档

  • 逆向结论、端点清单、限额语义与已知限制 → SPEC.md

⚠️ 免责声明

本项目仅供学习和研究使用。使用者需遵守 monkeycode-ai.com 及长亭百智云的服务条款,自行承担使用风险。作者不对因使用本项目产生的任何直接或间接损失负责。 请勿将本项目用于违反目标平台服务条款的用途。

License

MIT

About

可能不完善,自行修改

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages