从白屏报错到完成 .exe 发布:我的第一个桌面端 AI 编程助手 Nebula Forge 开发实录
从白屏报错到完成 .exe 发布:我的第一个桌面端 AI 编程助手 Nebula Forge 开发实录
大家好,我是陆尧。
在这个大模型满天飞的时代,AI 编程助手已经成了开发者的标配。但是,用久了云端 API,我总有几个痛点如鲠在喉:
1. 隐私焦虑:不想把公司的项目代码或者个人的绝妙 idea 传到云端。
2. 网络依赖:断网或者 API 抽风的时候,直接变成“瞎子”。
3. 订阅费用:虽然单次调用不贵,但日积月累也是一笔开销。
于是我萌生了一个想法:能不能利用本地大模型(比如Qwen2.5-Coder),配上一个极轻量级的桌面外壳,自己手搓一个完全属于我的 AI 网页构建器?
经过两周的踩坑与折腾,Nebula Forge (星云锻造炉) 终于诞生了,并且我已经把它开源并打包成了 .exe。
👉 GitHub 开源地址:https://github.com/luyao001/nebula-forge
👉 直接下载体验:https://github.com/luyao001/nebula-forge/releases/tag/v0.1.0

✨ 这是个什么神仙工具?
简单来说,这是一个 “所说即所得” 的本地 HTML/JS/CSS 锻造炉。
1.智能环境探测:告别繁琐的手动配置!软件启动时会自动扫描你本地的 Ollama 环境。没开服务?它会变红拦截并提示防错;拉取了新模型?左侧下拉菜单会自动更新列出你拥有的所有模型,即插即用。
2.纯血本地:核心大脑接入本地运行的 Ollama,只要你显卡带得动,代码生成完全零延迟、零成本、断网可用。
3.极速跳字渲染:当你输入需求,左侧 AI 开始思考时,右侧的专业编辑器(VS Code 同款内核 Monaco)会实时同步渲染出代码,甚至能根据语言自动切换高亮,丝滑得像打字机一样。
4.即时沙盒预览:右侧支持一键切换“预览”模式,生成的代码立刻变成可视化的网页。5.体积极小:得益于 Tauri 的 Rust 架构,最终的安装包非常轻量,完全没有 Electron 那种吃内存的厚重感。



🛠️ 硬核技术栈与“踩坑”实录
为了实现这个工具,我选择了 Tauri + React + TypeScript + Monaco Editor 的组合。看起来美好,但实操时踩了无数的坑:
坑一:Ollama 跨域之战 (CORS)
刚把页面画好,准备调用本地
http://localhost:11434
时,直接吃了一个红色的网络报错。
排查后发现,Ollama 处于安全考虑,默认禁止了外部(包括本地桌面应用环境)的跨域请求。
• 解决办法:必须在系统环境变量中强制注入 setx OLLAMA_ORIGINS "*",然后彻底重启 Ollama 进程才打通了这层壁垒。
坑二:如何实现“代码与对话”的实时双向奔赴?
一开始,我的程序像个“憋大招”的呆子:必须等 AI 把整段几百行的代码写完,右侧的编辑器才会“啪”地一下显示出来,等待过程极其痛苦。
为了实现
实时提取,我重写了流式解析逻辑,并用了一段极为苛刻的正则:
```javascript
const regex = /```(\w*)\n?([\s\S]*?)(?:```|$)/;重点在于结尾的 (?:```|$)!
这意味着,哪怕 AI 才刚刚写下一个反引号,还没来得及闭合代码块,前端就能瞬间捕获到当前的所有代码片段,并喂给 Monaco Editor。加上流式 API 的 Decoder 解析,终于实现了两边同步“疯狂跳字”的爽快感。
坑三:被 Flex 布局暴打的 UI
做桌面端 UI 和做网页不一样,窗口是可以随意缩放的。一开始,随着消息变多,底部的输入框直接被挤出了屏幕外(找都找不到)。后来通过重新规划容器,利用
flex: 1 和 overflow-y: auto 锁死消息列表区,并用 flex-shrink: 0 死保输入框的底线,才做出了现在这个类似专业 IDE 的紧凑布局。
🚀 小白怎么玩?
如果你不是程序员,也完全可以下载把它当工具用!
1. 前往 GitHub Releases 下载最新的 .exe 安装包。
2. 去 Ollama 官网下载安装包,并在命令行跑一句 ollama pull qwen2.5-coder:7b 拉取模型。
3. (别忘了在命令行跑一句 setx OLLAMA_ORIGINS "*" 开启跨域)。
4. 打开 Nebula Forge,你会发现左侧的下拉菜单已经自动识别出了你刚才下载的模型。直接在底部输入自然语言,开始“白嫖”属于你的私人 AI 程序员吧!
结语:从一行行报错到看着自己设计的 .exe 图标出现在桌面上,这种独立开发一个完整作品的成就感是无与伦比的。Nebula Forge 目前还在 v0.1.0 阶段,还有很多可以打磨的地方。
如果你觉得这个项目有点意思,欢迎去 GitHub 帮我点个 Star ⭐️,也欢迎提 Issue 和 PR 一起把它做得更酷!
更多推荐



所有评论(0)