这是一个实验性项目的开篇——用 Tauri v2 构建一个对标 Codex CLI 和 Hermes Desktop 的 AI Agent 桌面客户端,取名 Wilson Desktop。这篇文章记录最初的选型决策和项目骨架搭建过程。
3|为什么不是 Electron?
4|Hermes Desktop 用的是 Electron,打包后 .app 大小 310 MB。Wilson Desktop 用 Tauri,同样功能的骨架打出来 11 MB。差距来自 Electron 内置了完整的 Chromium 渲染引擎,而 Tauri 使用系统的 WebView。
5|但包体大小不是唯一的决策因素。更重要的是:
6|-
7|
- Rust 编译器的错误信息对 agent 友好。 在 agent 开发模式下,Rust 精确的编译错误比 JS 的运行时
undefined错误更容易自动修复。
8| - 安全性。 Tauri 的权限模型比 Electron 严格,每个 API 调用需要显式声明。 9|
- 代价是生态成熟度。 Electron 社区沉淀了十年,Tauri v2 才刚稳定。遇到冷门 bug 可能需要自己排。 10|
最终决策是一个权衡:Wilson Desktop 的目标是探索 Tauri 在复杂桌面应用的工程实践,所以接受生态不成熟的风险。
12|开发环境搭建
13|Mac mini 上搭建 Tauri v2 只需要三步:
14|curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
15|xcode-select --install
16|npm install -g @tauri-apps/cli
17|项目结构
18|wilson-desktop/
19|├── src/ # React 前端
20|├── src-tauri/ # Rust 后端
21|├── package.json
22|└── vite.config.ts
23|包体对比
24| .app 大小 安装包 (.dmg)
25|Electron (Hermes) 310 MB ~150 MB
26|Tauri (Wilson Desktop) 11 MB 3.6 MB
27|Tauri 的 .app 只有 Electron 的 1/28。
28|下一篇预告
29|阶段 1:嵌入终端的 sidecar 方案。如何用 Tauri 的 shell 插件在 WebView 中实现终端模拟器。