发布之后,复盘这次“不手写代码”的氛围编程(Vibe Coding)实验
折腾完架构迁移、产品细节、Windows 权限和 Codex CLI 适配之后,Codex LED Widget 终于发到了 v0.2.0。
这不是一个多大的版本号。它只是一个 Windows 桌面小组件:贴在桌面边缘,显示 Codex 的 5 小时和 7 天额度。但对我来说,这个版本更像一次实验的结项报告。
我尽量不手写代码,只负责提需求、定边界、审结果。AI 负责实现大部分内容。
现在项目发版了,可以回头算账了:它到底做成了什么?AI 真正省掉了哪些工作?哪些地方,最后还是得人盯着?
最终战果:Tauri 2 + Vue 3 + Rust 稳定落地
v0.2.0 最重要的结果,是项目从旧实现迁到了新架构:
- Tauri 2
- Vue 3
- TypeScript
- Rust
- Vite
- pnpm
交付物也补齐了:
- Windows x64 安装包
- README 使用说明
- 项目截图
- GitHub Releases 下载链接
- 中英文介绍
- 本地开发与构建说明
功能上,它已经是一个可用的桌面状态灯:
- 读取本机 Codex CLI 额度
- 展示 5 小时 / 7 天额度窗口
- 用液态球显示剩余百分比
- 低额度时变色提醒
- 支持置顶、隐藏、系统托盘恢复
- 支持手动刷新和自动刷新
- 支持中英文切换
- 兼容 Microsoft Store 版 Codex CLI
更关键的是,架构边界稳定下来了。
Rust 负责系统能力、窗口、托盘、CLI 调用和协议清洗。Vue 负责状态、交互和 UI。Tauri Command/Event 负责前后端通信。没有本地 HTTP 服务,没有数据库,也没有把 Codex CLI 原始响应丢给前端。
这个小工具终于更像一个桌面小组件,而不是“网页套壳再背一堆历史包袱”。
功劳簿:AI 做得好的地方
这次实验里,AI 的效率确实明显。尤其是边界清楚以后,它很适合处理那些重复、琐碎、但又不能完全忽略的工作。
| 场景 | AI 表现 | 我的判断 |
|---|---|---|
| 旧框架剥离 | 快 | 适合迁移里的机械劳动 |
| Tauri 2 初始化 | 快 | 能搭出基本骨架 |
| Vue 3 组件 | 快 | UI 组件和状态拆分效率高 |
| Rust Command/Event | 可用 | 需要人审错误处理和边界 |
| README | 很稳 | 适合整理面向用户的说明 |
| Release 文案 | 很稳 | 适合收尾和归纳变更点 |
最省时间的是迁移和整理。
Electron 旧语境剥离、Tauri 结构搭建、目录收敛,这些事情不一定难,但很耗耐心。AI 做起来很快,人只要盯住方向,不让它顺手扩张。
文档也很适合交给 AI 起草。像 productContext、systemPatterns、techContext 这类上下文文档,AI 能把散落在代码里的逻辑整理出来。它不替你做判断,但能把你已经定下来的判断写清楚。
胶水代码也是它的强项。Vue composable、Tauri command、Rust 模块调用、事件监听,只要输入和边界明确,它基本能快速补齐。
最后还有宣发材料。README、截图说明、下载链接、Release Notes,这些活以前很容易拖到最后。AI 在这类事情上确实省心。
错题本:AI 还是不稳的地方
顺风局好看,逆风局才看底子。
这次项目里,AI 暴露的问题也很明显。
| 问题 | AI 的短板 | 人要做什么 |
|---|---|---|
| Codex CLI 协议变化 | 容易只适配当前样本 | 把协议隔离在 Rust 层 |
| Windows 实机行为 | 没法真实感知环境 | 手工验证权限、托盘、窗口 |
| Code Signing | 只能解释流程 | 人处理证书和签名链路 |
| 自动化测试 | 容易先堆功能 | 补质量门禁 |
| 复杂 CSS | 容易覆盖式修补 | 做样式收敛和视觉回归 |
最典型的是 Codex CLI 协议。
AI 可以根据当前响应写解析逻辑,但它不会天然替你考虑上游以后怎么变。如果前端直接依赖原始响应,一旦 CLI 改结构,整个界面就会跟着炸。所以我坚持把协议适配关在 Rust 后端,只给前端 QuotaSnapshot。
Windows 实机行为也是盲区。AI 可以写 window.hide()、tray menu、set_always_on_top(),但它不知道某台机器上的权限弹窗会不会冒出来,也不知道系统缩放会不会把液态球挤变形。桌面软件必须真机跑,不能只看代码像不像对。
Code Signing 更现实。Windows 安装包没有签名,第一次运行会出现“未知发布者”。AI 可以告诉你怎么配置、有哪些风险,但证书购买、身份验证、签名链路,还是人自己处理。
测试和 CSS 也一样。AI 很会加功能,但不会天然替你守住质量。CSS 尤其容易变成哪里不对补哪里,短期有效,长期就是另一种屎山。
后续路线:从 Vibe Coding 到工程化
v0.2.0 是可用版本,不是终点。
后面要补的是工程化防线:
| 方向 | 计划 |
|---|---|
| 质量防线 | 补前端单元测试或最小集成验证 |
| 自动交付 | 建 GitHub Actions 流水线 |
| UI 稳定性 | 引入 Visual Regression |
| 安全可信 | 处理 Windows Code Signing |
| 协议适配 | 增强 Codex CLI 响应变化时的错误兜底 |
| 样式治理 | 收敛历史 CSS 覆盖 |
这也是我对“不手写代码”的最终看法:
不手写代码,不等于不做工程。
只是工作重心变了。以前是亲手写每一行实现,现在是定义边界、审查结果、建立质量门禁。AI 可以当执行者,但不能当技术负责人。它不会主动替你承担安全、隐私、兼容性和长期维护成本。
这次实验没有证明“人以后不用写代码”。它只是让我更确定,未来的开发者会更像一个小型工程团队的负责人:拆任务、定约束、验产物、补护栏。
Agentic 工作流真正有价值的地方,不是让人消失,而是让一个人能调度更多能力。
但方向盘还得握住。AI 可以跑得很快,你得知道什么时候让它跑,什么时候让它停。