Vibe Coding实战:用ClaudeCode“嘴喷”一个古风算卦平台

发布时间:2026/9/26 5:34:59
Vibe Coding实战:用ClaudeCode“嘴喷”一个古风算卦平台 2026年如果你还觉得AI编程就是打开VS Code然后狂按Tab补全那确实该看看现在的新玩法了。我最近用ClaudeCode做了一个挺有意思的实战项目——一个古风算卦平台从立项到部署全程没碰过一次编辑器代码全靠“嘴喷”出来的。所谓“嘴喷”就是直接用自然语言跟AI提需求它自己在终端里噼里啪啦地把文件建了、代码写了、依赖装了、服务跑起来。这篇文章就把完整过程掰开揉碎从Vibe Coding的概念、环境搭建到实际开发中的命令细节、迭代过程、MCP数据库配置最后到踩过的一堆坑尽量都写清楚给想入坑Vibe Coding的朋友一个可以直接照着做的参照。1. Vibe Coding 一年间的变化从“实验室玩具”到“生产级工作流”1.1 2026年的Vibe Coding到底在火什么Vibe Coding这个词最早大概可以理解为“跟着感觉写代码”开发者不再是逐行手敲逻辑而是把意图、口味、方向用自然语言描述出来让AI来干脏活累活。到了2026年这个概念已经彻底从“炫技玩具”变成了正经的生产力工具原因很简单模型能力涨了工具链也成熟了。以前我们用大模型写代码最常见的形式是在编辑器里装个插件写完一段注释AI帮你补几行。那时候AI更像一个“高级自动补全”。但Vibe Coding追求的是完全不同的分工——人不写代码人只做决策和验收。AI负责写文件、改文件、执行命令、跑测试、查文档甚至自己修bug。这要求模型不仅能理解意图还要能操作环境。恰好这一两年模型的上下文窗口越来越大、工具调用Tool Use越来越稳ClaudeCode、Codex这类命令行Agent产品也就顺理成章地火起来了。我自己用下来的感觉是这类工具最爽的一点就是它把“开发”从“编辑代码”变成了“指挥与验收”。你不用再纠结某个接口该怎么调、某个CSS属性怎么兼容——你只需要说“这里颜色太艳了换一种墨色要有点宣纸质感”它就能自己去CSS文件里翻了半天然后改好。1.2 Vibe Coding 与传统 AI 补全的本质区别很多人会把Vibe Coding和“编辑器里的AI插件”混为一谈但这两件事的底层逻辑完全不同。传统AI编程核心载体是编辑器。你在IDE里写代码AI在旁边给你提建议、补全、生成片段。你仍然是代码的直接作者AI只是加速你的输入。而Vibe Coding的核心载体是终端里的Agent。它不依赖编辑器因为它的工作对象是“文件系统”而非“正在打开的文档”。它能自己创建目录、重命名文件、批量替换内容、执行npm命令、启动服务甚至git commit。你见过哪个编辑器插件能帮你跑数据库迁移另一个重要的区别是交互节奏。用编辑器AI插件你是一边写一边改节奏比较碎而Vibe Coding是一整段需求扔给它它会给出一个工程级的改动方案。这要求用户把自己的需求描述得足够完整——“做一个登录页”和“做一个登录页手机号验证码错误提示要友好样式偏Material Design提交后跳转到个人中心”得到的结果天差地别。1.3 什么样的项目适合“嘴喷”开发说句实话Vibe Coding不是万能的。我这次的算卦平台能顺利“嘴喷”出来是因为它确实适合这类工具业务逻辑清晰但不庞大抽签、记录历史、展示结果功能边界明确不需要复杂的微服务设计。UI要求明确审美可描述古风、宣纸、墨色、书法体这些都是能在自然语言里说清楚的视觉方向。没有历史包袱新项目从零开始不存在需要搞懂十年老代码的困扰。验收标准直观页面能不能跑、交互顺不顺、数据存没存进去一眼就能看出来。反过来如果是那种动辄几十万行的老系统或者涉及大量并发、安全合规的严肃基础设施让AI自己扑腾我是不太放心的。Vibe Coding适合“快速做成一个东西”而不太适合“深入理解一个庞然大物”。这一点后文踩坑部分我再展开说。2. 环境准备ClaudeCode 安装、鉴权与第三方模型接入现在讲实操。ClaudeCode的安装其实非常简单但它有一些前置条件和容易踩的小坑我这里把过程完整过一遍。2.1 安装前的环境检查ClaudeCode是运行在Node.js环境里的CLI工具所以第一件事是确认电脑里有Node.js。建议版本在20以上太老的版本容易出现兼容性报错。node -v npm -v如果没装Node.js直接去官网下载LTS版本一路下一步就行这里不再赘述。另外要特别说明一个困扰很多新手的概念性问题ClaudeCode不是“编辑器”也不是“编译器”。它不需要你打开VS Code、IDEA或者Vim它本身就在终端里跑工作方式是向你的文件系统发号施令。你完全可以装完它之后一个编辑器都不打开。我第一次跑通的时候也是愣了几秒——原来“编辑器”这三个字真的可以整场缺席。2.2 npm 全局安装安装命令一行npm install -g anthropic-ai/claude-code安装速度取决于网络环境。如果你发现npm源下载很慢可以先把registry换成国内镜像比如npm config set registry https://registry.npmmirror.com这里要提醒一句这只是一个源配置和任何代理、加速器之类的东西无关安全合规放心用就行。装完之后验证一下claude --version能输出版本号就说明装好了。2.3 鉴权方式ClaudeCode需要身份认证才能调用模型服务目前主流有三种方式我放在一起对比一下鉴权方式适用场景操作方式Claude订阅账号登录有Claude订阅适合个人日常使用首次运行claude命令时按提示浏览器登录Anthropic API Key按量付费适合脚本化/自动化设置环境变量ANTHROPIC_API_KEY第三方兼容API使用DeepSeek等国内模型服务设置ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN我第一次玩的时候选了订阅登录因为个人项目嘛操作最省事。首次运行claude终端里会给出一个授权链接浏览器打开确认一下就完了。2.4 接入 DeepSeek 等第三方模型的配置如果你没有订阅Claude又不想为此付费还有一个很常见的玩法让ClaudeCode接入兼容Anthropic协议的第三方API。正好这次很多朋友问我“ClaudeCode能不能接DeepSeek”答案是能而且配置不复杂。Windows的PowerShell里这样设置$env:ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic $env:ANTHROPIC_AUTH_TOKENsk-你的API密钥Linux或macOS的bash/zsh里这样设置export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKENsk-你的API密钥之所以能用这套环境变量是因为DeepSeek提供了Anthropic协议的兼容接口ClaudeCode会把请求发到ANTHROPIC_BASE_URL指向的地址同时用ANTHROPIC_AUTH_TOKEN做身份认证。对ClaudeCode来说它根本感知不到后面到底是Claude还是DeepSeek在响应。2.5 安装验证配置完环境变量后执行一次最简单的对话测试claude -p 用一句话介绍你自己如果能看到模型正常回答说明安装、鉴权、模型接入全链路都通了。到这里环境准备阶段就彻底搞定了接下来可以开始真正“嘴喷”了。3. 全程不碰编辑器ClaudeCode CLI 是怎么替我干活的3.1 编辑器、编译器与 AI Agent 的区别有一个热搜词叫“编译器和编辑器的区别”其实很多人也会问类似的问题ClaudeCode到底算什么我的理解是这样的编辑器是给你写代码用的比如VS Code、Vim、Sublime。它本质上是“一个更好用的记事本”。编译器是把人写的源码翻译成机器能执行的东西比如gcc、javac。它本质上是“一个翻译官”。ClaudeCode是AI Agent它本质上是“一个会自己干活的实习生”。它读写文件、执行命令、安装依赖、跑测试这些活儿当然可以不经过编辑器。所以整个开发过程的形态和传统模式完全不同。传统模式是我面对屏幕、手放键盘、逐行码字Vibe Coding模式是我对着终端喊需求Agent去文件系统里折腾我最后只看结果。这个过程里编辑器在物理意义上是不必要的。3.2 最常用的几个 ClaudeCode 命令我这次项目里反复使用的命令整理成了一张速查表命令作用我的使用场景claude进入交互式对话连续多轮提需求边看效果边调整claude -p 需求单次执行模式print跑一个明确的小任务完事就走claude --continue继续上一次会话中断之后接着聊保持上下文claude --resume选择历史会话恢复第二天继续前一天的工作实际开发中我大部分时间用的是claude进入交互模式。它像一个一直在线的专家你一句“帮我加个签筒动画”它就会立刻去翻代码、改文件然后把结果汇报给你。3.3 权限模型与自动化平衡这个部分容易被新手忽略但其实非常关键。ClaudeCode要替你干活就必然要对你的电脑有“动手权限”。它默认有两种模式一种是每做一步操作都问你“是否允许”另一种是提前设置好允许范围然后自动执行。开发算卦平台那种高频迭代的场景下每次写文件都弹确认框会烦到怀疑人生。我后来设置成只对特定目录和大类操作自动放行比如当前项目目录内的读写自动允许执行命令需要确认涉及全局配置、删除操作必须人工确认这样做的好处是日常改代码很顺畅但危险动作仍然握在我手里。毕竟AI再聪明偶尔也会判断失误真要让它把整个项目目录删了那可哭都来不及。3.4 无头模式与交互模式怎么选再补充一个比较实用的经验。单次执行的-p模式特别适合放在脚本里批量跑比如定时任务让它“扫描代码里的TODO注释并汇总成report.md”这种任务你用交互模式反而浪费。而日常开发我还是推荐交互模式因为需求需要来回对齐AI的理解不是一次就能精准到位的。你可以这样理解-p模式像叫外卖说清楚要什么等送达就行交互模式像在餐厅吃饭菜不合口味当场就能让后厨回锅。算卦平台这种需要反复打磨审美的项目显然更适合“在餐厅吃”。4. “嘴喷”算卦平台需求、迭代与完整落地的全过程这一章是全文的重头戏。我把自己从零到一“嘴喷”出算卦平台的完整过程复盘一遍所有给ClaudeCode的原始需求、它的响应、我接下来的调整都会尽量还原。4.1 第一句需求很多人第一次用这类工具最大的困惑是“我不知道该怎么描述需求”。我的经验是不要追求一步到位先给一个大方向再在迭代中细化。我当时的原始需求是这么“喷”的帮我开发一个算卦网页平台用户输入想要占卜的问题点击求签按钮后从周易六十四卦中随机抽取一卦页面展示卦名、卦象符号、卦辞和一段白话解释。视觉风格要古风适配手机页面。技术栈你定要求本地能跑起来最好有后端和数据库保存抽签记录。这个描述放在传统开发模式下大概需要一堆PRD评审和架构设计但在ClaudeCode这里它马上开始行动了。我眼看着它在终端里敲出一条条命令创建目录、初始化package.json、写入前后端代码、安装依赖、启动服务。没过多久终端里出现了一行“本地服务已启动访问 http://localhost:3000”。从需求下达到页面能访问时间短到让人恍惚。4.2 迭代实录让AI按我的审美改稿第一版跑起来很快但视觉效果嘛——怎么说太“程序员审美”了白底、黑字、蓝按钮一点古风没有。于是我开始第二轮“嘴喷”现在的界面太现代了完全不像算卦的。字体换成书法风格标题用古风字体背景用宣纸纹理颜色要墨色和朱砂红为主整体要像武侠电影里的占卜页面。这次它做了不少事引入在线字体、给背景加了纸张质感、改掉了整站的配色系统还顺手给按钮加了渐变色和微动效。说实话看到浏览器里那版墨色宣纸风格的页面时我第一反应是“这居然是我一张代码都没写做出来的页面”。这是Vibe Coding最迷人的地方你不懂怎么调CSS没关系你只需要能描述“我想要什么样的气质”AI负责把气质翻译成代码。4.3 项目文件长什么样几轮迭代之后项目结构已经比较完整了。用tree命令看一下大概是这样suan-gua-platform/ ├── public/ │ ├── index.html │ ├── css/ │ │ └── style.css │ └── js/ │ └── main.js ├── server/ │ ├── app.js │ └── routes/ │ └── divination.js ├── data/ │ └── records.db ├── package.json └── README.md前端是原生HTML/CSS/JS后端用的Express数据库是SQLite。文件不算多但麻雀虽小五脏俱全——有路由、有数据库、有静态资源、有README。这个README是它自己写的内容包含怎么启动、怎么配置、功能点列表拿来直接就能当项目文档用。你甚至可以用任何markdown编辑器打开它阅读我后来还真是在Markdown编辑器里看的。4.4 本地跑通与部署上线的完整链路算卦平台本身是个娱乐性质的轻量应用不需要复杂的运维方案我的部署思路就是一台小服务器、一个nginx、一个进程守护工具完事。先说本地跑通。项目根目录下执行npm install npm start服务默认跑在3000端口浏览器访问http://localhost:3000即可。部署到服务器时我让ClaudeCode帮我干了两件事一是把整个项目目录打包上传二是在服务器上配置好nginx反向代理。nginx的关键配置大概是这样的server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }至于进程守护最简单的方案是用pm2pm2 start server/app.js --name suangua pm2 save到这里一个Vibe Coding产出的算卦平台就算是正式上线了。我在手机上打开试了试输入问题、摇签、看卦象、历史记录全流程顺畅。提示算卦平台本质上是一个传统文化主题的趣味应用我把它定位成“用现代技术还原古代占卜仪式感”的小项目图一乐、练技术用的不包含任何迷信宣扬大家玩的时候也当个文化体验就好。5. MCP 与数据持久化给 AI 接上“手脚”的实操配置5.1 MCP 是什么很多人可能已经注意到现在聊AI工具绕不开一个缩写MCP全称Model Context Protocol模型上下文协议。我自己的理解它就是“AI的USB接口”。以前AI要读写数据库、操作第三方系统得靠开发者写一堆定制代码每个场景一套接法麻烦且不通用。MCP把这件事标准化了模型通过统一的协议去调用外部工具就像电脑通过USB口接入各种设备一样插上就能用。回到ClaudeCode的实际场景里MCP带来的能力是质的飞跃。之前的算卦平台虽然用了SQLite但本质上还是AI生成代码然后代码去操作数据库。如果有了MCP扩展AI就能实时地、直接地查询数据库里有什么数据、统计结果、做数据修正而不需要每次改代码重启服务。5.2 接入本地 MySQL 的实操配置这次有个热搜词是“claudecode cli安装mcp mysql本地”正好是个典型需求。我也实际配了一遍本地MySQL的MCP Server流程走通了这里把关键步骤放出来。第一步确认系统里有MySQL并已启动然后找到官方提供的MCP服务包。以官方的modelcontextprotocol/server-mysql为例先安装npm install -g modelcontextprotocol/server-mysql第二步在ClaudeCode的配置文件里注册MySQL服务。对于CLI环境配置文件一般在~/.claude.json需要把MCP服务信息写进mcpServers字段。配置大概长这样{ mcpServers: { mysql: { command: npx, args: [-y, modelcontextprotocol/server-mysql], env: { MYSQL_HOST: 127.0.0.1, MYSQL_PORT: 3306, MYSQL_USER: root, MYSQL_PASS: your_password, MYSQL_DB: divination_db } } } }第三步重启ClaudeCode然后在对话里问它“连接一下本地的MySQL看看divination_db里有哪些表。”如果配置正常它会通过MCP服务器直接执行数据库查询并返回结果而不是只给你一段“你可以这样连接数据库”的建议代码。这一步的体验很奇妙你会感觉AI真的“长出了手”能直接摸到你的数据。算卦平台的历史记录如果放在MySQL里我就可以直接对它说“统计一下这个月抽到巽卦的占比是多少”它自己查表算完把结论写进报告全程不需要我手动敲SQL。5.3 MCP 的边界与安全检查MCP很强但也要警惕。当你给了AI直接操作数据库的权限等于打开了“读写生产数据”的大门。我个人的习惯是优先给只读权限只有明确需要写入时才放开写权限设置独立的MCP专用账号不要直接用root在ClaudeCode里把MCP相关操作设为“需确认”避免它在批量修改时“跑飞”进行大操作之前先让AI把即将执行的SQL语句展示给你确认。一句话总结MCP把AI从“只说不做”变成了“说了就做”所以我们更要知道怎么给它划边界。6. 踩坑实录乱码、上下文失控与工程化补救任何新工具的上手过程都不会完全平顺我这次也算卦平台开发中也踩了不少坑专开一章写出来希望能帮大家省点时间。6.1 Windows 终端下的中文乱码这个坑出现得很早。第一次让ClaudeCode生成中文页面时终端里输出的日志乱七八糟一堆“锟斤拷”。排查下来是编码问题Windows终端默认的代码页和UTF-8不匹配而ClaudeCode输出的日志、写入的中文内容都以UTF-8为主。解决办法很简单在PowerShell里先切换代码页再启动chcp 65001 claude或者直接把终端默认编码改成UTF-8一劳永逸。这个坑虽然小但第一次遇到很容易误判成“AI生成的中文内容坏了”其实只是终端显示问题文件里的内容是好的。6.2 上下文耗尽与长任务拆分ClaudeCode的交互模式虽然强大但要明白它一次会话是有上下文限制的。开发后期我让它在一次对话里连续做了好几轮修改结果它的注意力开始下降——前面改过的东西后面忘了甚至出现“自己写的函数自己不认识”的尴尬情况。后来我学乖了把一个大的需求拆成多个阶段每个阶段结束就开新会话。比如“先做前端页面”一轮“再做后端接口”一轮“最后联调部署”一轮。如果遇到恰好要衔接的情况用claude --continue续上或者把关键需求重新描述一遍保证上下文清晰效果立刻好转。6.3 权限弹窗与安全平衡前面提到过权限模式但我还想再单独强调一次。开发过程中我一度为了省事开了完全自动执行结果它有一次连续执行了好几条npm安装命令装了一堆我根本用不上的依赖包。这其实是我的失误。自动执行虽然爽但会放大AI的“过度发挥”倾向。给AI一点自由度非常重要但完全不设边界就像把车钥匙直接交给新手还不系安全带——能跑但出了问题代价很大。我的建议是日常开发用自动执行但范围缩小到当前项目目录涉及安装依赖、删除文件、全局配置等动作一律手动确认。后面我重新设置了权限范围这类失控情况就很少再发生了。6.4 Vibe Coding 的边界最后我必须说几句掏心窝子的话。Vibe Coding确实爽但它不是银弹。这次的算卦平台项目之所以成功是因为项目体量小、需求明确、没有历史包袱。如果你一开始就丢一个大型老项目给它大概率会被它改得乱七八糟。我试过让它去处理一个结构非常复杂的既有代码库结果AI在阅读和理解代码上花的时间远超预期改动时还磕磕绊绊。像这种需要深度业务理解的项目人是不能完全“躺平”的。另外涉及高并发、强一致、金融安全等严格场景也还是要靠踏踏实实的人工作业加严谨的测试流程。我这一路“嘴喷”下来最大的感受是Vibe Coding改变的不是“写代码”这个动作而是我们和代码的关系。过去我必须理解每一行的含义才会觉得安全现在我可以把注意力放到“这个平台应该给人什么感觉”“这个流程是否顺畅”这些更高层的问题上。至于代码本身只要最终效果符合预期、测试能过、部署正常它就完成了使命。再说一个小技巧收尾每次给ClaudeCode提需求时我会习惯性地在最后加上一句“你准备怎么做如果需要更多信息就问。”这句话能逼着它在动手前先亮一下方案而不是闷头就改。跟AI配合久了你会明白它屁颠屁颠地把事情做歪远比它多问两个问题更让人头疼。