traework2api
August 2, 2026 · View on GitHub
TRAE Work (SOLO CN) 的 OpenAI 兼容反向代理。把 TRAE SOLO 免费对话通道
(llm_utils_chat + function=solo_work_lite)包装成标准的
/v1/chat/completions + /v1/models 接口,支持多账号轮转、自动签到、token 自动刷新。
纯 Go 标准库,零第三方依赖。
功能
- OpenAI 兼容 API:
POST /v1/chat/completions(流式/非流式)、GET /v1/models - 多账号池:积分降序挑选,1005/429/401/5xx 自动冷却、禁用、轮转
- 自动签到:每日定时签到 + 手动批量签到(
signin.sh) - 积分查询:全账号/指定账号日报(
credit.sh) - Token 自动刷新:过期前 24h 预刷新,refreshToken 轮换落盘
- 登录闭环:
login.sh自生成登录链接 → 浏览器登录 → 粘贴回调链接 → 换 token 落盘
快速开始(Docker)
# 1. 准备凭证目录(放 trae-*.json)
mkdir -p auths data
# 2. 配置 API Key(Bearer 鉴权,key 只走 env,不落盘 git)
cp .env.example .env
# 编辑 .env,把 changeme 换成你自己的随机密钥
# 3. 启动
docker compose up -d --build
# 4. 验证
curl http://127.0.0.1:7864/healthz # → ok
curl http://127.0.0.1:7864/v1/models # → 模型列表
curl http://127.0.0.1:7864/status # → 账号状态
# 5. 对话
curl -X POST http://127.0.0.1:7864/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TW2A_API_KEY}" \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"你好"}]}'
登录流程
TRAE 登录页强制回调 127.0.0.1,但浏览器与服务器不需要同机:
login.sh 自生成登录链接,登录成功后你把地址栏回调链接粘回去即可。
# 1. 在服务器(或任意机器)运行 login.sh
./login.sh
# → 打印登录链接(带 127.0.0.1 回调 + 新的 machine/device id)
# 2. 用浏览器打开链接登录(手机号/验证码)
# 登录成功后浏览器跳到打不开的 127.0.0.1 地址
# 3. 复制浏览器地址栏的完整回调链接,粘贴到 login.sh
# → 解析 refreshToken/userInfo → ExchangeToken 换 token → GetUserInfo 拿 uid
# → 落盘 auths/trae-{uid}.json → 自动签到 + 查积分 → 重启容器加载新账号
本机运行(非 Docker)
# 依赖 Go 1.22+
export TW2A_API_KEY=你的密钥
go build -o tw2api ./cmd/server
./tw2api # 监听 :7864,auths/ 目录读取凭证
配置可选 config.json(参考 config.example.json),全部项可用 TW2A_* env 覆盖:
TW2A_LISTEN / TW2A_AUTH_DIR / TW2A_STATE_FILE / TW2A_DEFAULT_MODEL /
TW2A_PLAN_CREDIT / TW2A_SOFT_RATE / TW2A_ERR_THRESHOLD / TW2A_ERR_COOLDOWN /
TW2A_CHECKIN_HOUR / TW2A_TIMEOUT_SECONDS。TW2A_API_KEY 只能从 env 读。
运维
./signin.sh # 批量签到(全账号,自动 refresh 过期 token)
./credit.sh # 积分日报(美化)
./credit.sh -json # 积分日报(JSON)
./credit.sh <uid> # 指定账号
目录结构
cmd/server/ HTTP 服务(config + main)
cmd/signin/ 批量签到工具
cmd/credit/ 积分查询工具
internal/auth/ auth 文件解析/原子写回
internal/upstream/ SOLO 上游客户端 + SSE 转换
internal/pool/ 账号池(冷却/禁用/积分)
internal/scheduler/ 定时签到 + token 预刷新
internal/server/ OpenAI 兼容路由
login.sh / signin.sh / credit.sh 运维脚本
auths/ (gitignored)trae-*.json 凭证
data/ (gitignored)state.json 池状态
脱敏说明
- 任何真实 token/key 一律
********或 env 引用,绝不落盘 git。 auths/、data/、config.json、.env、*.key、*.pem全部 gitignored。docs/不参与上传(gitignore + dockerignore)。- 验证类文档(
VERIFICATION.md等)不入库。 - 日志/状态输出只显示 UID/Nickname/积分,不打印 token。