dsh-trae-connect
Đã xác minh@lament_z/dsh-trae-connect · v0.1.2 · MIT · Giao diện web
将 Trae 桌面 App 内置模型(Doubao / DeepSeek 等)自动接入 DeepSeek Harness 的零配置桥接插件:凭据直接读取 Trae 本地会话,无需任何手动配置即可把 Trae 的模型作为 DSH 可用模型源,仿 dsh-workbuddy-connect 方案。
Cài đặt
dsh plugin add @lament_z/dsh-trae-connect Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Thẻ
Tác giả
Readme
DSH Trae Connect
English | 简体中文
把 Trae(字节跳动 AI 编程助手)桌面 App 内置的模型——DeepSeek V3/R1、GPT-4o、GPT-4.1、Claude 3.5/3.7 Sonnet、Gemini 2.5 等——以零配置方式接入 DeepSeek Harness(DSH),作为可直接使用的模型源。方案仿 dsh-workbuddy-connect 的桥接架构: 本地回环 OpenAI 兼容端点 + pi-ai provider + 插件面板里的配置页。
协议逆向自 trae2api(MIT),它把 OpenAI chat-completions 翻译成 Trae 私有 IDE API。
功能
- 凭据零配置。 插件直接读取 Trae 桌面端的登录态,DSH 侧没有任何需要粘贴的 token。
- 模型目录自动获取。 启动时从上游拉取可用模型并周期刷新,模型出现在 DSH 模型选择器的
traeprovider 下(如deepseek-v3、deepseek-r1、gpt-4o、claude-3-7-sonnet)。 - OpenAI 兼容回环 shim。 绑定在
127.0.0.1的本地端点把 Trae 私有 SSE 流实时转写为 OpenAI chat-completions SSE(含思维链内容);shim 有四重 loopback 鉴权,绝不暴露到本机之外。 - 双凭据来源、自动择优。 桌面会话 token 优先,可自动续期的 OAuth 配置兜底(见下文)。
- 稳定设备标识。 设备请求头(
x-device-id、x-machine-id等)首次生成后持久化, 上游看到的是同一台设备,而不是每次请求一个新设备。 - 插件面板配置页。 侧栏「插件」→ 本插件所在的组合包 → 该行(
llm-trae)的配置页展示当前 登录态与可用模型数,并可编辑 Trae 应用目录;任一半区注册失败都不影响另一半。 - Web 状态路由。 host 半区在自身设置命名空间下暴露 status/capture/checkin 路由, 供配套插件 dsh-points-checkin 复用,实现 TRAE 积分查询与每日签到。
- CLI 诊断。
dsh-trae-connect提供doctor/status/logout/setup子命令,不开浏览器即可检查凭据健康状态。
要求
- DSH
>=0.1.1-rc.1(构建与测试基于0.1.7-rc.2;0.1.5线仍兼容)。 - Trae 桌面 App 至少登录过一次(桌面会话凭据来源),或持有 Trae OAuth refresh token (自动续期来源)。
安装
# 推荐:从 npm 安装(发布包内含构建产物 lib/)
dsh plugin --profile web add @lament_z/dsh-trae-connect
# 从本地 clone / 工作副本安装:仓库不提交构建产物(lib/ 已 gitignore),先构建
pnpm install && pnpm build
dsh plugin --profile web add link:<本目录>
GitHub 直装(
github:lament-z/dsh-trae-connect)拿到的是源码,仓库里没有lib/, 因此需要先本地构建再用上面的link:方式安装;要省事就用 npm。
然后重启 dsh web 并刷新页面。首次启动无需编译、无需任何交互,插件随宿主一起激活。
凭据(两种来源,自动择优)
- 桌面会话(零配置)。 Trae 把
x-ide-token存在 ElectronLocal Storage/leveldb。把导出的<TraeAppDir>/trae-auth.json放到 Trae 应用目录, 插件会自动读取(字段:ideToken/appId/clientId/userId/device/expiresAt)。该来源优先于下方的 OAuth 副本。- macOS 应用目录候选:
~/Library/Application Support/TRAE SOLO CN与Trae。 - 可用
TRAE_APP_DIR环境变量覆盖目录。
- macOS 应用目录候选:
- OAuth 配置(可自动续期)。 设置环境变量
TRAE_APP_ID/TRAE_CLIENT_ID/TRAE_REFRESH_TOKEN/TRAE_USER_ID。插件通过 Trae 的 OAuth 端点换取并自动轮转x-ide-token,无需重新打开桌面 App。
桌面会话 token 过期后无法自行续期,需重开一次 Trae;OAuth 配置来源可自愈, 长期挂机的宿主推荐用它。
使用方法
- 安装并重启
dsh web(见上文)。 - 打开 DSH 网页 → 侧栏「插件」→ 本插件组合包 →
llm-trae行的配置:页面应显示已登录与模型数量。 - 打开模型选择器:Trae 模型出现在
traeprovider 下,可与内置模型一样在任意对话中使用。 - 可选的终端诊断:
dsh-trae-connect doctor # 检查凭据健康与上游可达性
dsh-trae-connect status # 当前凭据来源、过期时间、模型数量
dsh-trae-connect logout # 清除已存储的桌面会话副本
dsh-trae-connect setup # 引导式配置 OAuth 环境变量
上游协议(已实现)
| 用途 | 端点 |
|---|---|
| 聊天 | https://a0ai-api-sg.byteintlapi.com/api/ide/v1/chat(POST) |
| 模型目录 | https://a0ai-api-sg.byteintlapi.com/api/ide/v1/model_list?type=chat(GET) |
| Token 交换 | https://api-sg-central.trae.ai/cloudide/api/v3/trae/oauth/ExchangeToken(POST) |
每个上游请求都携带 Trae 客户端请求头:x-app-id、x-ide-version(1.2.10)、
x-ide-version-code(20250325)、x-ide-version-type(stable)、x-device-cpu、
x-device-id、x-machine-id、x-device-brand、x-device-type、x-ide-token(鉴权)、
Host、User-Agent(空)。
上游返回 Trae 私有 SSE 事件(output 含 response/reasoning_content,
request_wait_in_queue 为排队);src/upstream.ts 中的 shim 把它们实时转写为 OpenAI
chat-completions SSE 供 pi-ai provider 消费。模型名映射(OpenAI id <-> Trae 上游名)
也在同一文件,例如 deepseek-v3 <-> deepseek-V3、
claude-3-7-sonnet <-> aws_sdk_claude37_sonnet。
计费
Trae 无公开余额接口(与 workbuddy-connect 一致),故不展示积分,仅显示可用模型数。 需要 TRAE 积分查询与每日签到请使用 dsh-points-checkin。
架构
- Host(宿主)(
src/index.ts):启动回环 shim、注册traeprovider、声明插件 Config(appDir,0.1.7 起由宿主投影成表单)、刷新模型目录。 - Shim(桥)(
src/shim.ts):绑定127.0.0.1的 OpenAI 兼容端点,四重 loopback 鉴权。 - Client(配置页)(
src/client/index.tsx):注册进插件面板的plugins.row.config槽位(0.1.7+),展示登录态与模型数并编辑应用目录。 - CLI(
src/bin.ts):doctor/status/logout/setup。 - Web 状态(
src/web-status.ts):status/capture/checkin 路由,供 dsh-points-checkin 复用。
常见问题
- 看不到模型。 运行
dsh-trae-connect doctor。若桌面会话已过期,重开 Trae 桌面 App 后重启dsh web;或改用 OAuth 环境变量以获得自动续期。 - 配置页缺失。 两个半区独立注册;先确认组合包已启用(侧栏「插件」里本插件的行是开启状态),
再查看 DSH 启动日志中的
dsh-trae-connect报错。配置页失败不会拖垮 provider。 - 重新登录 Trae 后立刻报凭据错误。 导出的
trae-auth.json已过期——重新导出, 或切换到 OAuth 来源。
许可证
MIT