bolt.new
stackblitz/bolt.new加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
产品经理在群里丢下一句话:"下周演示需要一个能登录、存数据、能分享链接的活动页,最好今晚就要能看。" 传统流程是拉群、派活、等设计、等开发、等测试,两周后交付。此刻是周五下午四点。
如果用 Bolt.new,流程会变成这样:打开 bolt.new,用一句话描述需求,AI 生成 React + Vite 项目代码,在浏览器内的 WebContainer 沙箱里真跑起开发服务器,你看着它报错、看着它自动改代码、看着终端里 npm install 真的下载依赖,直到页面正常渲染,最后点一下部署,得到一个可分享的线上链接。整个过程没有本地 Node 环境,没有 Docker,没有 CI。
这就是 Bolt.new 想解决的问题:把"从想法到可运行的全栈应用"这段最耗时的路,从开发者本地搬进浏览器。

Bolt.new 由 StackBlitz 在 2024 年 9 月开源,是其商业产品 Bolt.new 的核心开源实现。StackBlitz 的杀手锏是 WebContainers——一套把完整 Node.js 运行时塞进浏览器标签页的技术,无需虚拟机、无需远程容器、无需本地安装,就能跑 npm 依赖、起服务、用终端。
这件事在 2024 年之前几乎不可想象:浏览器沙箱通常只能跑 Web Worker,碰不到真实文件系统,也装不了 npm 包。WebContainers 把浏览器变成了一个"伪 Linux",让 AI 代理第一次获得了对开发环境的完全控制权。
这个开源仓库用 Remix Run 编写服务端与路由,部署在 Cloudflare Workers/Pages 上,用 Vercel AI SDK 对接 Anthropic Claude。注意这里有一个关键区分:Bolt.new 是 StackBlitz 的商业托管产品,bolt.new 这个仓库是它的开源核心组件,两者的功能演进已经分叉,官方也明确建议想自建 AI 开发工具的人参考此仓库 + WebContainer API。
传统云端 IDE(如 Codespaces)是给你一台远程虚拟机,你通过网络连上去敲命令。WebContainer 的思路不同:整套运行时直接跑在你自己浏览器的标签页里。
这带来三个直观后果。第一,延迟几乎为零——代码和终端就在本地,不需要网络往返,敲命令的响应比远程服务器还快。第二,隔离性强——浏览器本身就是沙箱边界,你的标签页崩了不影响系统。第三,成本极低——不需要为每个用户分配一台云端容器。
代价也同样明确:浏览器里跑不了原生二进制,Python 只有标准库、没有 pip,没有 C/C++ 编译器,也没有 Git。AI 在写代码前必须知道这些约束,否则生成的方案根本无法执行。
Bolt 的系统提示词(约 14KB)里密密麻麻写满了 WebContainer 的环境限制,这说明它的核心设计思路不是"让 AI 写代码",而是"让 AI 在一个可观测、可干预的环境里自己完成任务"。
具体体现在三层:
运行时层。app/lib/webcontainer/index.ts 负责在浏览器端 WebContainer.boot() 启动沙箱并注入文件系统;app/lib/runtime/action-runner.ts 是一个带状态机的动作执行器,每个动作有 pending/running/complete/aborted/failed 五种状态并支持 AbortController 中断;app/lib/runtime/message-parser.ts 负责从模型输出中解析出 file shell start 三类结构化动作并派发。
服务端层。app/routes/api.chat.ts 用 AI SDK 的 streamText 流式返回,MAX_TOKENS = 8192,并实现了一个巧妙的"分段续写"机制:模型输出因长度截断时,服务端自动追加 CONTINUE_PROMPT 重新发起请求,最多续写 2 段(MAX_RESPONSE_SEGMENTS),避免长代码写到一半断掉。
前端层。工作台是三栏布局:文件树 + CodeMirror 6 编辑器 + xterm.js 终端 + 实时预览面板;状态用 nanostores 管理,app/lib/stores/ 下分了 chat、files、previews、terminal、workbench、settings、theme 七个 store;聊天记录与项目数据落在浏览器 IndexedDB(app/lib/persistence/db.ts),不需要账号也能本地保存项目。

好消息是:终端用户完全不需要本地环境,打开 bolt.new 就能用,这是它与 v0、Cursor、Claude Code 这类工具最大的差异化——后两者生成的代码你得自己下载下来跑。
对想要自建的团队,门槛有四级:
pnpm install、pnpm build、pnpm start(wrangler pages dev)。这不难。.env.local 里配 ANTHROPIC_API_KEY。wrangler pages deploy,需要 Cloudflare 账号和 Pages/Workers 配置。模型侧目前代码里写死为 claude-3-5-sonnet-20240620,若要接其它模型需要替换 app/lib/.server/llm/model.ts(社区衍生项目 bolt.diy 就是把这里扩展成支持 22+ 模型供应商的)。
测试覆盖近乎空白。全仓库 172 个文件,测试文件只有 app/lib/runtime/message-parser.spec.ts 一个 Vitest 快照测试,没有覆盖率配置。对于一个要处理"AI 输出的任意代码"的项目来说,这个测试密度偏低。
仓库已停更。最后一次 push 是 2024 年 12 月 17 日,距今一年多没有提交,但 open issues 高达 8184。这个仓库实质上是一次性的历史快照,后续演进转移到了商业产品和社区 fork(stackblitz-labs/bolt.diy)。
安全边界依赖提示词。AI 可以在终端执行任意 npm 命令,WebContainer 提供的是浏览器级隔离而非容器级隔离,依赖 System Prompt 约束模型行为、依赖用户自己审阅终端输出。
其他:@webcontainer/api 使用了 1.3.0-internal.10 这类内部版本号,升级需谨慎;issue 里能看到大量 WebContainer 内存限制、预览超时、构建失败等反馈。
Bolt.new 代表的转折点是:AI 编程工具的评价标准不再是"生成的代码片段能不能跑",而是"能不能在一个受控环境里自主完成一个完整任务"。
它把三个原本割裂的能力缝到了一起——LLM 的意图理解、WebContainer 的真实执行、以及终端/文件/预览的可见反馈。少了执行环境,AI 只能生成代码给人看;少了环境控制权,AI 就退化成"更聪明的补全工具"。
从数据看,这个方向被市场强力验证:仓库 16584 星、14828 fork,fork 数接近 star 数——绝大多数人是 fork 下来改成自己的 AI 开发工具,而不是直接部署官方版本。社区衍生的 bolt.diy 更进一步,做成了支持任意 LLM 的开源版本,并被 StackBlitz 官方认可为社区主线。

Bolt.new 用 172 个 TypeScript 文件证明了一件事:把完整开发运行时塞进浏览器,再给 AI 完整的环境控制权,"用自然语言造一个能跑的全栈应用"就不再是演示视频,而是可以点开就用的产品。它同时也是一个提醒——这份开源自带的不是完整产品,而是一个精心打磨的起点模板,测试薄弱、已停更、商用授权受限,想上生产必须自己补齐工程化短板。