IDE vs CLI
最开始的时候,我使用的是 Cursor。不得不说,它的界面设计深得我心——尤其是交互体验上,对我这个 Vibe Coding 新手来说简直就是天堂。什么都不用想,描述需求,Tab 接受,代码就这么一行行冒出来了。内联 Diff、侧边聊天、一键应用,所有操作都在一个窗口里完成,鼠标点点就行,几乎零学习成本。
随着免费额度用完,我毫不犹豫地付了费,开启了 Pro。20$ 的额度对于 Auto 模式来说几乎是无限的,但高级模型呢?调用几次就直接消耗 3-4$,肉眼可见地在烧钱。而看着 Auto 在我的代码里到处“拉屎”,我开始觉得必须试试更好的模型(Opus后遗症)。
怎么办?
在到处找办法的时候,我注意到了中转站这个东西——量大管饱,价格只是官方的零头。既然 API 有了,那工具的选择面一下就打开了。顺着这条线往下挖,我发现了 CLI 形态的 AI 编程工具:没有花哨的界面,仅仅只是一个跑在终端里的聊天窗口。
说实话,从 IDE 切到 CLI,落差感是真实存在的。IDE 里你是能看着代码被改的——Diff 高亮、文件树变化、错误波浪线,一切都是视觉化的,心里有底。而 CLI 呢?一开始就是一堵文字墙糊你脸上,改了哪些文件?改了什么?全靠自己去翻输出日志。没有侧边栏,没有那个让你安心的绿色“Apply”按钮。
但用久了之后,我发现 CLI 有一种独特的工作节奏。你可以一口气把整个需求甩给它,让它自己去读文件、搜代码、做修改、跑测试,一条龙下来,你只需要在最后审查结果。不用一步步盯着,不用反复点确认,描述清楚需求,放手让它跑就行(但要小心被删库)。
虽然现在的 IDE 现在也有 Agent 模式,Cursor、Windsurf 这些工具的 Agent 模式一样能自主读文件、改代码、跑命令,干的活和 CLI 没什么本质区别。甚至 Cursor 还有 YOLO 模式,直接跳过所有确认,放手让它跑,和 CLI 的体验几乎一样了。没错,从能力和自主性上讲,两者的边界已经越来越模糊。
但实际用下来,我还是觉得 CLI 更适合“重活”。
一个很现实的原因——资源。IDE 除去 AI 本身就是个编程应用——VS Code 套壳、插件加载、语法高亮、文件索引,这些东西常驻内存。再在上面跑一个 Agent 读写文件、执行命令,项目一大就明显感觉到卡顿,风扇开始转。CLI 就是个终端进程,干净利落,系统资源几乎全留给 AI 本身。同样的机器,CLI 跑起来就是更流畅。
还有一点比较微妙:专注度。IDE 打开就是一整个编辑器界面,文件树、标签页、终端面板、Git 面板、插件侧栏等等。信息量很大,你的注意力是分散的。而 CLI 只是一个窗口、一段对话,你和 AI 之间没有任何多余的东西。
这种极简反而让你更容易进入“描述需求→审查结果”的节奏,少了很多想手动去改一下的冲动。
当然,CLI 的代价也是真实的。调试体验不如 IDE,断点、变量监视、调用栈这些可视化能力没法替代。写前端的时候尤其明显,没法预览组件效果。
我前前后后试了不少 CLI 工具:Claude Code、Codex CLI、Gemini CLI、Qwen Code 等等形态各异的工具。折腾一圈下来,还是 Claude Code 的体验最顺手。当然,这主要是 Claude 模型本身的理解力强,改代码干净利落,不会莫名其妙给你写一堆“屎”。但不同的 CLI 在上下文管理和工作流设计上确实有差异,同一个模型套在不同的壳里,表现还真不是一样的。
再后来,一个新的 CLI 工具——OpenCode,进入了我的视野。说实话,刚开始用的时候不如人意,比如:用着用着忽然崩溃了、改着改着不动了。但随着持续优化,它逐渐变成了我手里用得最舒服的一个。尤其是搭配上 omo 插件之后,整个工作流被串了起来,从探索代码到委派任务,再到验证结果,这才真正有了搭档的感觉,而不只是一个聊天框。
如果让我总结的话:IDE 是新手友好的舒适区,上手即用,所见即所得;CLI 是进阶之后的效率区,门槛更高,但天花板也更高。两者不是谁能替代谁的关系,我现在写小项目还是会开 IDE 看效果,看着满屏的代码纷飞。但涉及到逻辑重构、批量修改、架构调整这些“重活”,CLI + 好模型的组合已经是我的首选了。