Skip to content

bjfwan/trae-custom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

trae-custom

Trae 很蠢。 这玩意把你当傻子。

人才开发,把辅助侧栏锁死了,只允许它的 AI 助手蹲在右边。isDraggable:()=>!1isDroppable:()=>!1,代码里写死了,你就是不许动 [#2459]。

只能从它预设的厂商列表里选,baseURL 不开放。有人问了一年了,还是不给 [#978] [#2392]。连 OpenAI 兼容格式都不支持 [#1695]。 好不容易接上自己的 DeepSeek,还偶尔 500 报错 [#1095] [#1100]。或者干脆给你限流,后台用量才 7% 就提示你升级 Pro [#2388]。自定义模型持续 4054 报错的 issue 有 36 条评论还在开着 [#2060]。

Trae CN 还加了更 sb 的限制:AI 用一会就不让用了,提示你限流或者升级,逼你掏钱。

所以,这个项目存在的意义就是:Trae 不让你做的事,我让你做。解锁辅助侧栏、解放视图移动、让 AI 面板不再独占右侧——这些被硬编码锁死的功能,一键解开。

它做了什么

trae-custom 是一个 Trae IDE 补丁与增强工具,包含三块能力:

  1. 解锁补丁:把 Trae 硬编码锁死的 UI 限制(侧栏、视图移动、AI 面板)解开,CLI 和 VSCode 扩展双模式,一键应用、一键回滚,自动备份、hash 校验、版本更新检测。
  2. 外观快设:在扩展面板里直接给注释、字符串、关键字、函数等 token 设颜色与斜体,调字体族/字号/行高/字间距,全部写入用户 settings.json,不动 Trae 文件。
  3. 自定义 CSS 注入:把任意 CSS 注入到 Trae 的 workbench.desktop.main.css,用 /* trae-custom:user-css */ 块包裹,可一键移除。内置 OLED 纯黑、紧凑标签页、磨砂玻璃感等预设。
模块 类型 解锁/做了什么
sidebar 补丁 把被锁死的辅助侧栏解锁,允许把任何扩展(Kilo、Copilot 等)拖进去
view-move 补丁 允许视图自由移动到其他侧栏,移除 remote 环境下的限制
ai-flex 补丁 AI 面板可自由移动、显示标题栏、允许拖入其他视图、注册打开命令
Appearance 设置 注释/字符串/关键字等 7 类 token 的颜色与斜体;4 项字体设置;4 套预设主题
Custom CSS 注入 自由编辑并注入任意 CSS 到 Trae UI;6 套预设可叠加

具体每个模块改了什么:

sidebar — 辅助侧栏解锁

Trae 在代码里硬编码了这些限制:

  • AUXILIARYBAR_HIDDEN:new yd("auxiliaryBar.hidden",1,1,!0) → 辅助侧栏默认强制隐藏
  • if(Mi&&!this.j.remoteAuthority)return!0 → 本地环境强制隐藏辅助侧栏
  • isDraggable:()=>!1 → 不允许从辅助侧栏拖出面板
  • isDroppable:()=>!1 → 不允许拖入面板到辅助侧栏
  • get disableDroppable(){return!0} → AI 面板禁止拖入其他视图(2处)
  • isAiViewContainer:t.type==="ai" → AI 容器标识限制
  • 自动隐藏逻辑:只剩 AI 视图时强制隐藏辅助侧栏
  • 把非 AI 容器踢回主侧栏,扩展没法留在辅助侧栏
  • for(const a of[0,2,1])a!==2&&... → 右键"移动到"子菜单写死排除辅助侧栏,AI 面板移出后无法移回
  • CSS .noauxiliarybar .part.auxiliarybar{display:none!important} 强制隐藏

全部改掉了。[#2459] 里有人设了 hidden 还被强制打开,就是这个原因。

view-move — 视图移动解锁

  • canMoveView:l?.id!==W7&&l?.id!==SB → 限制了 TreeView 的移动,直接改成 canMoveView:!0

ai-flex — AI 面板灵活性增强

  • canToggleVisibility:!1 → AI 面板不可切换可见性,改成 !0
  • hideHeader:!0 → AI 面板没标题栏,改成 !1 让标题栏显示出来
  • disableDroppable:!0 → AI 容器禁止拖入其他视图,改成 !1
  • doNotRegisterOpenCommand:!0 → 不注册 AI 面板打开命令,删掉这个限制

用法

CLI

# 应用所有模块
trae-patcher apply

# 只解锁辅助侧栏
trae-patcher apply sidebar

# 指定 Trae 安装路径
trae-patcher apply --path="D:\Trae CN"

# 回滚所有补丁
trae-patcher revert

# 只回滚某个模块
trae-patcher revert sidebar

# 查看当前补丁状态
trae-patcher status

# 检测 Trae 安装路径
trae-patcher detect

# 注入自定义 CSS(从文件读取)
trae-patcher css apply --file=my.css

# 移除已注入的自定义 CSS
trae-patcher css remove

# 查看 CSS 注入状态
trae-patcher css status

VSCode 扩展(GUI)

在 Trae 里安装 trae-patcher 扩展,左侧活动栏会出现 Patcher 图标,点击进入可视化控制面板,三个 Tab:

Patches:解锁补丁的开关面板

  • 自动检测 Trae 安装路径,也支持手动指定
  • 每个模块一个开关,一键应用/回滚
  • 实时显示补丁状态(已应用/部分生效/未应用)
  • 应用/回滚后需重启 Trae 生效

Appearance:编辑器外观快设(写入用户 settings.json

  • 7 类 token(注释、字符串、关键字、函数、变量、数字、类型)的颜色与斜体
  • 字体族、字号、行高、字间距
  • 4 套预设:莫兰迪、高对比、复古绿、深海
  • 「重置全部外观设置」按钮,仅清除 trae-custom 写入的字段,不影响你自己的其他配置
  • 不需要重启 Trae,立即生效

Custom CSS:自由注入任意 CSS

  • 大编辑框写自定义 CSS,自动保存草稿
  • 一键注入/移除,注入位置用 /* trae-custom:user-css */ 标记块,干净可还原
  • 6 套预设:OLED 纯黑、紧凑标签页、活动栏极简、磨砂玻璃感、全局圆角、极细滚动条
  • 注入后需重启 Trae 生效

构建 VSCode 扩展

cd extension
npm run package

会在 extension/ 目录下生成 .vsix 文件,在 Trae 中手动安装即可。


安全机制

  • 自动备份:每次应用补丁前自动备份 JS、CSS、product.json(带时间戳的 .bak 文件)
  • hash 校验:记录补丁后的 JS 文件 hash,如果 Trae 更新导致 hash 变化会提示重新应用
  • checksum 更新:自动更新 product.json 中的校验和,防止 Trae 检测到文件被修改
  • 一键回滚:所有补丁都可以完整回滚,回滚后自动恢复原始 checksum
  • 状态检测status 命令可以逐项检查每个模块的补丁是否实际生效

注意

  • 补丁基于 Trae 特定版本的代码结构,Trae 更新后可能需要重新应用
  • 应用或回滚后必须重启 Trae 才能看到效果
  • 本项目仅修改 Trae 的前端 UI 逻辑,不涉及 AI 模型 API 的接入问题(那是 Trae 自己的服务端限制 [#2060] [#2388])

项目结构

trae-custom/
├── src/                  # CLI 核心
│   ├── index.js          # CLI 入口(apply/revert/status/detect/css)
│   ├── modules.js        # 解锁补丁模块定义
│   ├── userstyles.js     # 自定义 CSS 注入与 product.json checksum 协调
│   ├── presets.js        # 内置外观与 CSS 预设
│   └── utils.js          # 工具函数(路径检测、备份、hash、补丁应用)
├── extension/            # VSCode 扩展(GUI)
│   ├── extension.js      # 扩展入口 + Webview Provider(含 settings.json 接管)
│   ├── webview/          # Webview UI(三 Tab:Patches / Appearance / Custom CSS)
│   │   ├── main.js       # 前端逻辑,无框架,纯 DOM
│   │   ├── style.css     # 深色赛博朋克主题
│   ├── scripts/
│   │   └── sync-src.js   # 打包时复制 src/ 到 extension/src/
│   ├── media/
│   │   └── icon.svg      # 活动栏图标
│   └── package.json      # 扩展配置
└── package.json          # CLI 包配置

还有什么需要解锁?

Trae 的限制不止这些。如果你发现了其他被锁死的功能、硬编码的限制、或者任何让你觉得"这也不让改?"的地方,欢迎提 issue。

License

MIT

About

把trae的辅助侧栏解锁,可以放置其他的插件Trae IDE enhancement patcher - unlock auxiliary sidebar, view movement, AI panel flexibility

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors