新 SOLO 初体验 | 用 TraeIDE + SOLO Web 开发了一个 Windows 桌面端(求点赞)

一、缘起:Windows 用户的"心酸"

SOLO 桌面端和网页端开放内测的消息一出,社区里一片欢腾。然而,当我满怀期待地点开下载页面时,映入眼帘的却是这样一句话:

“Windows 版本已开启预约,输入手机号订阅上线通知。”

没错,当前 SOLO 桌面端仅支持 macOS,Windows 用户只能干等着。论坛里不少小伙伴也在吐槽:

  • “求 Windows 端!”
  • “什么时候支持 Windows 啊?”
  • “作为 Windows 重度用户,看着 Mac 同学用桌面端,酸了……”

作为一个不想干等的急性子,我灵机一动——既然官方还没出,那我自己做一个不就行了?

于是,TraeSOLO_win 这个项目就这么诞生了。


二、项目简介

TraeSOLO_win 是一个基于 Electron 开发的跨平台桌面应用程序,将 SOLO 网页版(solo.trae.cn / solo.trae.ai)包装成一个原生桌面应用,提供更接近原生体验的使用感受。

:package: 项目地址:https://github.com/wuke3/TraeSOLO_win

核心功能一览

功能 说明
:desktop_computer: 跨平台支持 支持 Windows 和 Linux(Mac 也有官方版了所以优先 Windows)
:artist_palette: 自定义窗口 无边框窗口设计,自定义标题栏和控制按钮
:globe_with_meridians: 服务器切换 国内版 (solo.trae.cn) 和国际版 (solo.trae.ai) 一键切换
:crescent_moon: 主题切换 深色/浅色模式
:date: 预约功能 内置预约 Windows 版本的弹窗(虽然现在自己就是 Windows 版了 :joy:
:link: 外部链接处理 外部链接在新的自定义窗口中打开
:inbox_tray: 文件下载 直接选择文件保存位置,无需打开浏览器

三、开发过程:TraeIDE + SOLO Web 的"双剑合璧"

整个开发过程,我用的是 TraeIDE + SOLO Web 的组合拳,全程几乎不需要手动写代码,真正体验了一把"AI 写代码,我来喝茶"的感觉。

第一步:用 SOLO MTC 模式做方案

首先在 SOLO Web 端(Code 模式)描述需求:

“帮我创建一个基于 Electron 的跨平台网页封装应用,包装 solo.trae.cn 的网页版,提供桌面端体验。”

SOLO 很快给出了完整的技术方案和项目结构,包括 main.js(主进程)、index.html(主窗口)、external-window.html(外部链接窗口)等文件的架构设计。

【没截到图】

第二步:用 TraeIDE Code 模式开发

拿到方案后,切换到 TraeIDE 的 Code 模式,让 SOLO 按照方案逐步实现:

  1. 初始化 Electron 项目 —— package.json、依赖安装
  2. 实现无边框窗口 —— 自定义标题栏,最小化/最大化/关闭按钮
  3. 嵌入 SOLO 网页 —— 用 BrowserWindow 加载 solo.trae.cn
  4. 实现服务器切换 —— 国内版/国际版切换逻辑
  5. 主题同步 —— 检测网页主题并同步窗口样式
  6. 外部链接处理 —— 拦截外部链接,在新窗口中打开

第三步:调试与修复

开发过程中也遇到了不少"磨难"……


四、踩坑实录:那些让人抓狂的瞬间

坑 1:标题栏按钮点击无反应

最初实现的自定义标题栏,最小化、最大化、关闭按钮全部"摆设"——点击毫无反应。

原因:使用了 Electron 已废弃的 remote 模块,在新版本中默认不可用。

解决方案:SOLO 帮我重构了代码,用 IPC(进程间通信)替代 remote 模块:

  • main.js 中注册 minimize-windowmaximize-windowclose-window 三个 IPC handler
  • src/js/main.js 中通过 ipcRenderer.send() 发送消息
  • 任务耗时 3 分 31 秒,修改 2 个文件,+26/-8 行

坑 2:外部链接打开失败

点击网页中的外部链接(如 trae.cn/download),应用直接崩溃,报错 ERR_FAILED

原因external-window.html 的 URL 编码问题,IPC 通信获取 URL 的逻辑有 bug。

解决方案:完全重构外部窗口创建逻辑:

  • 重写 main.js 中的外部窗口创建部分
  • 重写 src/js/external-window.js,使用 IPC 获取 URL
  • 采用更宽松的策略:只有明确的非 TRAE 外部链接才在新窗口打开,内部链接保持当前窗口导航
  • 修改 2 个文件,+41/-15 行

坑 3:SVG 图标不显示

标题栏按钮的 SVG 图标加载不出来,按钮变成了"空白方块"。

解决方案:重新设计了 SVG 图标,确保路径正确、viewBox 设置合理。


五、最终成果:Windows 版界面介绍

经过反复调试,TraeSOLO_win 终于可以正常运行了!下面是界面展示:

主界面

应用启动后,就是一个完整的 SOLO 桌面端体验:

  • 左侧导航栏:新建任务、技能、历史等入口
  • 中间工作区:SOLO 的完整网页功能,包括 Code 模式和 MTC 模式
  • 右侧面板:待办事项、任务产物、参考信息

自定义标题栏

顶部标题栏集成了以下功能按钮:

按钮 功能
:gear: 设置 打开设置面板(服务器切换、主题切换)
:date: 预约 打开 Windows 版预约弹窗
:minus: 最小化 最小化窗口
:triangular_ruler: 最大化 最大化/还原窗口
✕ 关闭 关闭应用

设置面板

点击设置按钮后,右侧滑出设置面板:

  • 服务器选择:国内版 (solo.trae.cn) / 国际版 (solo.trae.ai)
  • 深色模式:开关切换,支持自动检测网页主题

外部链接窗口

点击网页中的外部链接时,会在新的自定义窗口中打开,同样带有完整的标题栏控制。


六、技术架构

TraeSOLO_win/
├── main.js                  # Electron 主进程
├── index.html               # 主窗口 HTML
├── external-window.html     # 外部链接窗口 HTML
├── src/
│   ├── css/
│   │   ├── main.css         # 主窗口样式
│   │   └── external-window.css  # 外部链接窗口样式
│   └── js/
│       ├── main.js          # 主窗口 JavaScript
│       └── external-window.js  # 外部链接窗口 JavaScript
├── package.json             # 项目配置和依赖
└── README.md                # 项目说明文档

技术栈:Electron + HTML5 + CSS3 + JavaScript


七、项目数据

从 Git 提交记录来看,这个项目一共经历了 60+次提交,涉及:

  • 3 个 Pull Request 的合并
  • 多次 Bug 修复和功能迭代
  • 从初始化到可用的完整开发周期


八、总结与展望

这次用 TraeIDE + SOLO Web 开发 TraeSOLO_win 的经历,让我深刻体会到了 AI 辅助开发的强大:

:white_check_mark: MTC 模式负责方案设计和需求分析,输出清晰的技术文档
:white_check_mark: Code 模式负责代码实现和 Bug 修复,交付可运行的代码
:white_check_mark: 两个模式配合使用,真正实现了"从想法到产品"的全流程

当然,项目还有很多可以完善的地方。原本想加更多功能的,但是心有余而接口不足——毕竟本质上是一个网页封装应用,很多底层能力还是受限于 SOLO 网页端本身的接口。比如:

  • 系统托盘通知
  • 本地文件系统集成
  • 快捷键自定义
  • 多窗口管理优化

这些都需要 SOLO 网页端提供更多的 API 支持才能实现。

不过话说回来,自己动手丰衣足食,至少现在 Windows 用户也能用上桌面端了!:tada:


:package: 想要自己编译体验的小伙伴,欢迎访问:https://github.com/wuke3/TraeSOLO_win

:star: 觉得有用的话,给个 Star 吧!

7 个赞

可以啊 yo

2 个赞

赞有了 :rofl:

谢谢谢谢谢谢

1 个赞