不知道你有没有感觉 Claude Code 的配置目录很清晰,反正我觉得特别好。
前两天装了个朋友写的 AI 编辑器,命令行工具,npm 全局安装,跑起来一切正常。但我顺手翻了下配置,发现它把设置文件写在了~/Library/Application Support/vibecoding/settings.json。
![]()
我当时就问他:哥们,你这跟 Claude Code 同样类型的 CLI 工具,全局配置为啥不学它放~/.vibecoding/,并且具体项目可以有独立配置放项目根目录的.vibecoding/?
这问题听起来特小,就是"文件放哪个文件夹"的事,但聊深了才发现,现在 CLI 工具圈儿里,这事儿分歧大得很。大到什么程度呢?基本等于"tab 还是 space"那种级别的宗教战争。下边简单讲讲。
配置文件,一般来说有三个地方可以住。
第一个,最老派,Unix 传统。~/.config/工具名/或者直接~/.工具名/。Git、Neovim、Starship、gh(GitHub CLI)都这么干。逻辑也简单:我是命令行工具,命令行是 Unix 的产物,Unix 的东西就该待在家目录的隐藏文件里,几十年了,没毛病。看来 Claude Code 就是这种。
第二个,操作系统原生。macOS 上就是~/Library/Application Support/,Windows 是%APPDATA%。
第三个,项目局部。直接在当前项目里建个.工具名/目录,配置跟着代码走。Webpack、ESLint、Prettier 都是这路子,方便团队协作,谁 clone 下来谁就能跑。
![]()
为啥这么多新工具,默认都跑去了Application Support?
我查了一圈,大部分是被跨平台库"带偏"的。
你写 Node.js,大概率会用env-paths这种库;写 Rust,可能用dirs;写 Python,可能用platformdirs。这些库的设计初衷是好的——帮你屏蔽平台差异,Windows 走 AppData,macOS 走 Library,Linux 走 XDG。但坏就坏在,它们把"命令行工具"和"GUI 应用"当成一回事处理了。
macOS 的~/Library/Application Support这个目录,苹果文档写得明明白白,是给apps用的。而且苹果自己区分了 "apps" 和 "command-line binaries"——你系统自带的 bash、zsh、git、vim,哪个会去碰Application Support?没有。所以一个纯 CLI 工具的配置出现在这里,本质上是用 GUI 的规矩套在了命令行工具头上,属于"误伤"。
开发者社区有一些争论。
你看 Claude Code,它把配置直接扔在~/.claude.json和~/.claude/里,连~/.config都不进,结果 GitHub 上被用户开 issue 喷,要求支持 XDG Base Directory Specification。为啥?因为很多企业环境会把~/.config指向加密盘或者网络存储,你硬编码家目录路径,直接破坏人家的安全策略。而且容器、沙盒环境(Flatpak、Snap)都重度依赖 XDG 规范来做隔离。
更狠的是 Atmos,他们专门发了一个 breaking change,把 macOS 上的配置路径从~/Library/Application Support改回~/.config,理由就一句话:CLI 工具应该跟 gh、docker、terraform 保持一致。
这说明啥?说明现在玩命令行的人,对~/.config这套有强预期。你可以不搭理苹果的 GUI 规范,但最好别打破 Unix 圈的默契。
那 AI 编辑器这种"四不像"怎么办?
它既不是纯ls那种原教旨命令行工具,也不是 VS Code 那种完整 GUI。确实尴尬。
如果你的工具主要受众是开发者,主要交互在终端里完成,那默认就该走 XDG,~/.config/工具名/。这是肌肉记忆,用户找配置的时候不会骂娘。
如果你未来要做大量 GUI、面向普通用户,那走 OS 原生标准也说得过去,毕竟 Time Machine 备份什么的对 Library 目录有特殊处理。
但不管走哪条路,请务必给个后门。支持工具名_CONFIG_DIR环境变量,或者--config参数。这是最务实的做法,XDG 标准本身也要求先读环境变量再回退默认值。
说白了,配置文件放哪儿,表面是路径之争,本质是你这个工具认哪个文化圈子当大哥。
认 Unix 命令行当大哥,就去~/.config;认苹果微软当大哥,就去Application Support/AppData;认项目协作当大哥,就去代码目录里待着。
对我个人而言,一个 AI 命令行编辑器,默认钻进~/Library/Application Support,总有种"穿着西装去搬砖"的违和感。毕竟用户真正关心的不是你遵循了哪家巨头的白皮书,而是——习惯。现在被 Claude Code 调成啥了你也不是不知道。
你说是吧哥?
![]()
最后,这工具开源的,对我来说,核心优势是可以作为来调用:https://github.com/startvibecoding/vibecoding。
对了,这个 VibeCoding 工具的作者()将在后天直播分享用 AI 摸鱼的经验,欢迎预约
如果你也对程序员的 AI 感兴趣,欢迎加群交流:
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.