Skip to content

sairupe/trae-no-proxy

Repository files navigation

Trae No Proxy

Trae No Proxy 是一个面向 Trae CNTrae 的本地补丁工具。目标不是做 MITM,也不是劫持官方域名,而是直接补客户端侧入口,让普通用户可以启用和配置自定义端点,并在需要时配合本地 relay 处理部分网关兼容问题。

项目包含两部分:

  • 客户端补丁:打开自定义模型管理相关入口,并把请求策略固定到 local
  • 可选 relay:当前只处理 /chat/completions 请求中的兼容性问题,主要用于修正 role=toolcontent 数组形状

界面预览

补丁生效后,可以在客户端里看到类似下面的自定义模型添加界面:

Trae 添加模型界面

功能

  • 支持 Trae CNTrae
  • 自动搜索常见安装目录和 settings.json
  • 支持命令行参数和环境变量覆盖自动发现结果
  • 一键补丁 bundle + settings
  • 修改前自动备份,支持查看和回滚
  • 提供 doctorinspectpatch-all 等常用命令
  • 提供交互式菜单,直接在菜单里选择客户端、修补、查看状态、管理 relay
  • relay 以后台子进程运行,可随时查看状态或停止
  • GitHub Actions 可自动构建 Windows 可执行文件和发布包

安装

本地安装:

python -m pip install -e .

安装后可直接运行:

trae-patch
python -m trae_custom_endpoint_patch

如果不想本地装 Python,可以直接下载 Windows 构建产物:

  • 发布版本到 Releases 下载 trae-patch-windows-x64.zip
  • 普通 push 或手动触发到 Actions 下载 trae-patch-windows-x64

快速开始

直接进入交互菜单:

trae-patch

或显式打开菜单:

trae-patch menu

如果路径能自动发现,通常只需要两步:

trae-patch doctor
trae-patch patch-all

注意:Trae 或 Trae CN 客户端升级后,前端 bundle 可能会被官方新版本覆盖,之前打过的补丁可能失效。这种情况下通常只需要重新执行一次 trae-patch patch-all,必要时先运行 trae-patch doctor 检查当前状态。

路径不标准时,可以手动指定:

trae-patch patch-all --app-root D:/soft/Trae CN --settings-file C:/Users/你的用户名/AppData/Roaming/Trae CN/User/settings.json

常用命令

查看状态:

trae-patch doctor
trae-patch inspect

应用补丁:

trae-patch patch-bundle
trae-patch patch-settings
trae-patch patch-all

查看或恢复备份:

trae-patch list-backups
trae-patch restore-bundle
trae-patch restore-settings
trae-patch restore-all

Relay

当前 relay 不是通用协议网关,也不会处理所有模型协议。它现在只针对 /chat/completions 这一条接口做兼容处理,核心是把 role=tool 消息里的 content 数组整理成上游更容易接受的文本形状。

只有在你的网关对 /chat/completions 下的 tool 历史消息兼容不好时,才建议启用 relay。常见现象包括:

  • 模型本身可用,但 Trae 内请求持续报 400502524
  • curl 直连最小请求成功,Trae 的真实 /chat/completions 请求失败
  • 上游不接受 role=toolcontent 数组形式

当前不在 relay 处理范围内的包括:

  • /responses
  • /messages
  • Gemini native / 其他 provider-native 协议

启动 relay:

trae-patch relay --upstream-base https://your.gateway.example/v1

如果你启用了 relay,那么 Trae 里的“自定义请求地址”就不要再填写远端网关,而是要填写本地 relay 地址。按默认参数启动时,本地 relay 地址就是 http://127.0.0.1:8787

示例:

  • 上游网关地址:https://your.gateway.example/v1
  • 启动 relay:trae-patch relay --upstream-base https://your.gateway.example/v1
  • Trae 里的“自定义请求地址”:http://127.0.0.1:8787

如果你把 relay 改成了别的监听端口,例如 8899,那么 Trae 里就填写对应的本地地址,例如 http://127.0.0.1:8899

查看状态或停止 relay:

trae-patch relay-status
trae-patch relay-stop

菜单里也可以直接启动或停止 relay,不需要每次重新输入完整命令。

环境变量

如果不想反复传路径,可以设置:

  • TRAE_APP_ROOT
  • TRAE_SETTINGS_FILE

设置后可直接运行:

trae-patch
trae-patch doctor
trae-patch patch-all

项目结构

  • src/trae_custom_endpoint_patch/patcher.py: 路径发现、补丁、备份、恢复、校验
  • src/trae_custom_endpoint_patch/cli.py: CLI 和交互菜单
  • src/trae_custom_endpoint_patch/relay.py: 本地 relay
  • examples/*.ps1: Windows PowerShell 示例
  • scripts/build-exe.ps1: Windows 打包脚本
  • tools/trae_newapi_tap.py: 调试辅助脚本
  • tests/test_project.py: 单元测试

免责声明

  • 本项目是非官方第三方工具,与 TraeTrae CN、字节跳动、OpenAI 及其他模型服务商没有任何隶属、授权或背书关系。
  • 本项目会修改你本地安装目录中的客户端文件和配置。使用前应自行备份,并确认你知道这些修改会带来的影响。
  • 本项目仅适用于你有权控制、测试和修改的设备、客户端实例和网络环境。
  • 你需要自行确认使用行为符合相关服务条款、法律法规、公司规范以及上游网关的使用限制。
  • 对于因使用本项目导致的账号限制、功能异常、客户端损坏、数据丢失、封禁、服务中断或其他直接和间接损失,项目作者不承担责任。

About

trae 的第三方自定义端点接入

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors