桌面应用实战:OpenCode8高效开发完整指南
本节目标
- 安装 Superpowers AI 行为约束包
- 在 opencode 中实现 JSON 格式化模块
- 实测国产大模型 DeepSeek V4
- 通过 undo/redo 指令管理代码版本回滚与重做
写在前面
从 Stitch 绘制原型图、导入 AI Studio 生成前端代码、整合进 Tauri 项目,到最终在 opencode 中进行业务开发——这条工具链终于跑通了一个完整闭环。
编码正式开始前,先安装一个当下极具关注度的技能包——superpowers。务必装上它:对于推理能力偏弱或指令遵循不稳定的模型,superpowers 提供的结构化规范能显著提升输出质量,相当于给 AI 配上了一套清晰的行动指南。
项目最终版本可在 github.com/mayuanfei/m… 下载获取。
安装 Superpowers 技能包
如果普通的 Skill 只是“瑞士军刀”,能切水果、开瓶盖,那 Superpowers 就是一套“资深架构师的标准作业流程”。本质上它仍是一系列 Skill,但目标不再是“转换时间戳”这类琐事,而是约束和规范 AI 行为,让它按照顶尖程序员的最佳实践去思考和执行。
直白讲,Superpowers 是给 AI 戴上的 紧箍咒 加 武功秘籍。
它在 GitHub 上已斩获 170K star,热度可见一斑。官方仓库地址是 github.com/obra/superp…,readme 中介绍了在 opencode 内的安装方法——只需把下面这段指令交给 opencode:
Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.opencode/INSTALL.md配置 DeepSeek 模型
平时主要用 GitHub Copilot 或 Gemini 套餐,这回 DeepSeek V4 刚发布,正好用它探探国产大模型的真实水平。考虑到不同模型的能力差异,安装 superpowers 来做行为约束就显得尤为必要。
先看一眼 DeepSeek 账户余额,等开发完 JSON 格式化功能后再对比一下消耗量。
配置 DeepSeek 最简洁的方式是通过 opencode 直接修改全局配置。也可以手动添加如下配置:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["superpowers@git+https://github.com/obra/superpowers.git"],
"provider": {
"deepseek": {
"models": {
"deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
"deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }
},
"npm": "@ai-sdk/openai-compatible",
"options": {
"apiKey": "your api key",
"baseURL": "https://api.deepseek.com"
}
}
}
}实现 JSON 格式化功能
上一篇文章中,我们通过 /init 为 mtool 项目生成了 AGENTS.md 项目说明文档。现在用 opencode 打开 mtool 目录——因为上次遇到了页面黑屏显示异常的问题,所以这里执行 /new 开启一个新会话。
提示词如下:
根据当前项目 src 目录下 JsonFormatter 页面的前端代码,实现对应的 Rust 后端逻辑。仅聚焦 JSON 格式化功能,具体要求:
1. 在 RAW INPUT 框中输入原始 JSON 字符串,点击右上角的 format JSON 按钮后,将格式化后的 JSON 输出到 FORMATTED OUTPUT 框。
2. 格式化输出的 JSON 中,成对的大括号使用同一种颜色;不同层级的括号使用不同的颜色区分。
3. 点击 minify 按钮进行压缩显示:移除所有回车、空格等空白字符,使字符串紧凑排列。
4. 点击 clear 按钮清空所有输入输出区域的内容。
5. 输出框右上角放置一个 COPY 按钮,点击后可将输出内容复制到剪切板。验证生成的代码
询问验证方法
直接向 opencode 询问如何验证结果。
首次运行
npm run tauri dev需要下载 391 个依赖,这一步确实比较耗时,需要耐心等待。
验证效果
经历漫长的构建等待,界面终于起来了。实际效果相当不错,基本一次就跑通了全部功能——当然,也可能因为功能本身逻辑清晰。
- 正常 JSON 的格式化效果
- 错误 JSON 的反馈提示
提交代码到仓库
考虑到国内网络环境,这次将代码提交到 Gitee。
在 Gitee 上新建仓库
让 opencode 提交代码
提示词:
请你帮我把项目代码提交到:https://gitee.com/mayuanfei/mtool.git 仓库中启用工作区
此时已能看到当前项目所在的分支信息,并且切换分支时界面会实时更新。
撤销更改
有了版本控制后,就可以对已变更的文件进行回滚操作。先做一个简单修改,再回滚,看看 opencode 中的实际操作流程。
一个微小的改动
移除 JSON Formatter 标题后的 v2.0.4 版本号显示。观察更改
执行回滚
输入 /undo 命令。这个 /undo 也能通过页面上的按钮直接触发。
回滚后悔
如果发现回滚操作错了,可以使用 /redo 恢复被撤销的代码。
DeepSeek 模型花费
总结
- 完整闭环达成:经过前两篇的原型设计、前端代码生成和项目环境搭建,本篇依托 opencode 顺利实现了跨平台桌面应用的业务逻辑,完成了从编码、测试到代码入库的全流程闭环。
- 技能包的威力:引入 superpowers 这类行为约束包,相当于给 AI 装上了“顶级程序员的思维引擎”。它能有效规范 AI 的代码生成质量,尤其在模型能力有限或逻辑复杂时,效果立竿见影。不过,对于智商极高的大模型,过强的约束反而可能限制其创造性发挥。
- 国产大模型的突破:本次实测了 DeepSeek V4,整体表现可圈可点。处理 JSON 格式化这类标准逻辑和前后端交互,基本能做到“一次通过”,性价比相当出色。
- AI 时代的版本控制:利用 opencode 提供的
/undo、/redo指令,以及它与 Git 的无缝集成,我们可以在与 AI 结对编程时大胆试错、随时回滚,无需担心破坏现有代码基线。 - 实践寄语:至此,“MTOOL 桌面工具箱”从零到一的实战系列告一段落。这套整合了“Stitch 原型设计 → AI Studio 前端生成 → Tauri 跨平台架构 → opencode 核心开发”的现代化 AI 编程工作流,展现了个体开发者极强的交付能力,希望它能为你的日常开发提供坚实的支撑。