deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Casually/dsh-trae-api
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
将 Trae Work CN 的积分/额度转化为本地 OpenAI/Anthropic 兼容 API 服务,让 Claude Code、Cursor、Cline、Windsurf 等第三方 AI 编程工具直接调用 Trae 底层模型(GLM、DeepSeek、Qwen、Kimi、MiniMax 等)。
本项目是一个 DeepSeek Harness (DSH) 插件(npm 包名 @casually/dsh-trae-api),安装后随 dsh 启动自动运行代理服务;也可以独立运行。
npm 上的无 scope 包名
dsh-trae-api归原项目作者所有;本 fork 以@casually/dsh-trae-api发布。
v1.1.0 新增:DSH Web 设置页面(设置 → Trae API 代理)——实时状态、请求统计、Token 管理(刷新/重新解密)、上游连通性测试、配置热更新(保存即生效,无需重启 DSH)。
storage.json 中解密认证 Token(支持 tc 加密和明文两种格式)| 版本 | IDE 名称 | 加密格式 | 上游端点 |
|---|---|---|---|
cn |
Trae CN 国内版 | tc 加密 | trae-api-cn.mchost.guru |
solo |
TRAE SOLO CN 独立部署版 | tc 加密 | trae-api-cn.mchost.guru |
sg |
Trae 国际版 | 明文 JSON | a0ai-api-sg.byteintlapi.com |
solo-sg |
TRAE SOLO 国际版 | tc 加密 | a0ai-api-sg.byteintlapi.com |
/v1/chat/completions) 和 Anthropic (/v1/messages) 兼容接口/v1/responses),兼容新版 OpenAI SDK 和 Agents SDK.envfetch 支持)%APPDATA% 目录下存在 globalStorage/storage.json前提:已安装 DeepSeek Harness(dsh CLI)。
# 安装到 web profile
dsh plugin --profile web add @casually/dsh-trae-api
# 重启 dsh 使插件生效
dsh web
插件启动后,代理服务自动运行在 http://localhost:9220。可通过插件配置自定义端口和 API Key:
# 编辑 profile 的 cordis.patch.yml
- insert:
- id: trae-api
name: '@casually/dsh-trae-api'
config:
port: 9220
apiKey: ***
卸载:
dsh plugin --profile web remove @casually/dsh-trae-api
npm install
# Windows 双击 start.bat 即可
start.bat
# 或命令行
npm start
首次运行会自动从本机 Trae IDE 的 storage.json 解密认证数据并保存到 .env,之后直接读取 .env 启动。
$env:ANTHROPIC_BASE_URL = "http://localhost:9220"
$env:ANTHROPIC_API_KEY = "trae-local-api"
claude
http://localhost:9220/v1trae-local-apiclaude-sonnet-4-6、gpt-4o、auto)在扩展设置中配置:
http://localhost:9220/v1trae-local-apiclaude-sonnet-4-6在配置中添加自定义模型:
http://localhost:9220/v1trae-local-apifrom openai import OpenAI
client = OpenAI(base_url="http://localhost:9220/v1", api_key="***")
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
以 DSH 插件方式安装后,打开 DSH Web 界面 设置 → Trae API 代理:
| 区块 | 说明 |
|---|---|
| 运行状态 | 监听地址、Trae 版本、上游地址、用户 ID、Token/Refresh Token 过期时间与剩余时长 |
| 操作 | 刷新状态 · 立即刷新 Token · 重新解密凭证(可指定版本)· 测试上游连接(发送最小探针请求,消耗极少量 token) |
| 请求统计 | chat / messages / count_tokens / responses / models / status 各端点请求数、错误数、运行时长 |
| 服务配置 | 端口、监听地址(127.0.0.1 / 0.0.0.0)、API Key、Trae 版本、上游地址、最大上下文 |
| 客户端接入 | Claude Code / Cursor / Cline 接入示例(一键复制) |
配置优先级(后者覆盖前者):
内置默认值 < $DSH_HOME/plug-trae-api.json(设置页保存) < cordis.patch.yml 的 config 块
$DSH_HOME/plug-trae-api.json,跨 DSH 重启保留;cordis.patch.yml 的 config 中显式声明,设置页修改会被其覆盖(页面会提示被锁定的字段)。设置页面通过以下宿主路由与插件通信(仅监听在 DSH Web 服务器上):
| 路由 | 方法 | 说明 |
|---|---|---|
/plug-trae-api/status |
GET | 运行状态 + 认证信息 + 请求统计 |
/plug-trae-api/config |
GET/POST | 读取/保存配置(POST 保存后热重启代理) |
/plug-trae-api/refresh-token |
POST | 手动触发 Token 刷新(ExchangeToken) |
/plug-trae-api/reauth |
POST | 重新从本机 Trae IDE 解密凭证(可指定 edition) |
/plug-trae-api/test |
POST | 上游连通性探针(约消耗几十~几百上游 token) |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /v1/status |
服务状态 |
| GET | /v1/models |
模型列表 |
| POST | /v1/chat/completions |
OpenAI 格式对话 |
| POST | /v1/messages |
Anthropic 格式对话 |
| POST | /v1/messages/count_tokens |
估算 Token 数 |
| POST | /v1/responses |
OpenAI Responses API |
请求时传入 Claude/GPT 等模型名,会自动映射到 Trae 内部模型:
| 请求模型 | 映射到 | 档位 |
|---|---|---|
claude-opus-4-7 / 4-6 / 4-5 |
glm-5.2 | T1 |
claude-sonnet-4-6 / 4-5 / 4 |
glm-5.2 | T1 |
claude-3.5-sonnet / 3.7-sonnet |
glm-5.2 | T1 |
claude-haiku-4-5 |
glm-5.1 | T2 |
gpt-4o / gpt-4.1 |
DeepSeek-V4-Pro | T2 |
gpt-4o-mini |
DeepSeek-V4-Flash | T3 |
auto |
glm-5.2 | T1 |
| 变量 | 说明 | 默认值 |
|---|---|---|
TRAE_EDITION |
Trae 版本 (cn/solo/sg/solo-sg) | cn |
TRAE_TOKEN |
解密后的 JWT Token | (自动生成) |
TRAE_REFRESH_TOKEN |
刷新用 Token | (自动生成) |
TRAE_USER_ID |
用户 ID | (自动生成) |
TRAE_API_HOST |
Token 刷新服务地址 | (自动设置) |
API_KEY |
本服务的 API Key(设为 none 可禁用鉴权,不推荐) |
trae-local-api |
PORT |
监听端口 | 9220 |
HOST |
监听地址(0.0.0.0 开放局域网,需自担风险) |
127.0.0.1 |
BASE_URL |
上游 API 地址 | (按版本自动设置) |
MAX_CONTEXT_TOKENS |
最大上下文 Token 数 | 200000 |
TRAE_MANUAL_TOKEN |
手动指定 Token (备用) | (空) |
如果自动解密失败,可以单独运行解密流程:
npm run setup
或在 DSH 设置页面点击「重新解密凭证」。
npm install
node test/test.mjs # 冒烟测试:挂载插件 + 遍历全部本地 API 路由
dsh-trae-api/
├── lib/
│ └── index.js # DSH 插件入口 (ESM, 代理启动 + /plug-trae-api/* JSON API)
├── client.js # DSH Web 设置页面 (浏览器端, ModuleLoader + React)
├── cordis.patch.yml # DSH bundle patch (挂载到 loader)
├── start.bat # Windows 一键启动
├── setup.js # 自动解密配置
├── package.json # 项目配置 (含 dsh.bundle / dsh.client 声明)
├── .env.example # 环境变量模板
├── .gitignore
├── LICENSE
├── README.md
├── test/
│ └── test.mjs # 冒烟测试
└── src/
├── server.js # 独立运行入口
├── server-core.js # 可复用服务器核心 (startServer + stats)
├── auth.js # 认证管理 (Token 刷新 / getAuthInfo)
├── trae-decrypt.js # tc 加密解密核心
├── trae-client.js # Trae API 客户端
├── openai-format.js # OpenAI 格式转换
└── anthropic-format.js # Anthropic 格式转换
127.0.0.1,局域网与公网无法访问;如需开放给局域网设备,设置 HOST=0.0.0.0(请同时设置强 API_KEY)trae-local-api,建议修改);设置 API_KEY=none 可禁用鉴权,不推荐localhost 来源的浏览器跨域请求,第三方网页无法盗刷积分.env;BASE_URL、MAX_CONTEXT_TOKENS 等自定义配置会被保留.env 文件提交到版本控制(已在 .gitignore 中忽略)本工具仅供学习和研究使用。使用本工具调用 Trae API 所产生的费用和合规问题由用户自行承担。请遵守 Trae 平台的使用条款。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。