跳到主要内容

dsh-trae-connect

已验证

@lament_z/dsh-trae-connect · v0.1.2 · MIT · Web 界面

将 Trae 桌面 App 内置模型(Doubao / DeepSeek 等)自动接入 DeepSeek Harness 的零配置桥接插件:凭据直接读取 Trae 本地会话,无需任何手动配置即可把 Trae 的模型作为 DSH 可用模型源,仿 dsh-workbuddy-connect 方案。

安装

dsh plugin add @lament_z/dsh-trae-connect

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

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 模型选择器的 trae provider 下(如 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 并刷新页面。首次启动无需编译、无需任何交互,插件随宿主一起激活。

凭据(两种来源,自动择优)

  1. 桌面会话(零配置)。 Trae 把 x-ide-token 存在 Electron Local 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 环境变量覆盖目录。
  2. OAuth 配置(可自动续期)。 设置环境变量 TRAE_APP_ID / TRAE_CLIENT_ID / TRAE_REFRESH_TOKEN / TRAE_USER_ID。插件通过 Trae 的 OAuth 端点换取并自动轮转 x-ide-token,无需重新打开桌面 App。

桌面会话 token 过期后无法自行续期,需重开一次 Trae;OAuth 配置来源可自愈, 长期挂机的宿主推荐用它。

使用方法

  1. 安装并重启 dsh web(见上文)。
  2. 打开 DSH 网页 → 侧栏「插件」→ 本插件组合包 → llm-trae 行的配置:页面应显示已登录与模型数量。
  3. 打开模型选择器:Trae 模型出现在 trae provider 下,可与内置模型一样在任意对话中使用。
  4. 可选的终端诊断:
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、注册 trae provider、声明插件 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