ARTICLE · 1031744
AI 编程工具的配置藏在哪?16 个工具位 + 8 个 MCP 落点实测
先说一个我刚遇到的场景。
换电脑,工具装好,账号登好 —— 然后发现半年的"调教成果"全没了:给 Claude Code 写的 hooks,攒下来的 skill,一份一份改出来的 rules,十几个 MCP server 的配置。
这些东西不在代码仓库里,不在你的 dotfiles 里,也不在你记得住的任何地方。它们散在十几个隐藏目录里。而且,这是全文最重要的一句话:
没有任何两个工具的放法是一样的。
我把能查证落点的 AI 编程工具全部实测了一遍,画出一张地图,又写了一个两百行的脚本,一条命令扫全、一条命令备份。地图和脚本都在这篇文章里。
一、乱在哪:同一件事,三种放法

配置放哪儿,业界没有约定,只有流派。实测下来是三派:
派一:~/.<工具名>/。Claude、Cursor、Codex、Qoder、Trae 都是这样。最常见,但连命名风格都不统一 ——~/.claude、~/.trae-cn,一个纯小写,一个带连字符和国家后缀。
派二:~/.config/<工具名>/。OpenCode、Docker 的 cagent 走这条。这是守了 XDG 规范的少数派,也是最反直觉的一派—— 你按 dotfile 的习惯去 HOME 目录下面找,是找不到的,它在.config里。
派三:<项目>/.<工具名>/。项目级覆盖。.claude/settings.json、.cursor/hooks.json、.mcp.json。这一派最麻烦的不是找,是权限:有的该提交进仓库分享给团队,有的里面躺着 token,必须进.gitignore。搞反一次就出事。
文件名也是各写各的。同样是"管 hook 行为"这件事,我实测看到的文件名有五种:settings.json、hooks.json、config.json、cli/config.json、config.toml。JSON 和 TOML 还各占一头。
二、全表:16 个工具位 + 8 个 MCP 落点
下面这张表来自teamai-cli(腾讯开源的团队级 AI 配置分发工具)v0.24.0 的teamai hooks list真实输出,我在 2026-09-18 实测抓取。它内置了 16 个工具位的落点约定,是目前能一次看到的最大集合:

对外部用户真正有用的主要是 claude、codex、cursor、qoder、codebuddy、workbuddy 这几个;tclaude、tcodex、codex-internal等是腾讯内部工具位。
MCP 的落点更值得单独看,因为它最危险:

这里有三个容易踩的点,都是我实测或交叉官方文档确认的:
1.~/.claude.json是个混杂文件。它不是纯配置 —— MCP server 配置和账号登录态混在同一个文件里。想备份它,只能按字段挑着拿。
2. Codex 的 hook 是独立的~/.codex/hooks.json,但默认不生效。Codex 的 hooks 能力挂在codex_hooks这个 feature flag 底下,目前默认是false。也就是说你照着文档写好了 hooks.json,没开 flag,它就是一段安静的 JSON。
3. Cursor 的项目级 hooks 需要信任工作区,且默认 fail-open。hook 进程崩了,命令照常执行 —— 除非你在配置里显式写failClosed: true。拿 hook 当安全护栏的人,这条不知道会出事。
顺带说 Claude Code 的一个坑:settings.json里 hooks 块多一个尾逗号,整个 hooks 配置静默失效,不报错。排查方法是在会话里敲/hooks,那里列出来的才是真正生效的。
一个反直觉的发现:这张表不是你机器的现状
我把这张 16 位的表拿去扫自己的机器,结果:只有 2 个目录真的存在(.codebuddy和.workbuddy),有配置文件的只有 1 个。
反过来,我机器上还有这张表里没有的工具窝:.trae-cn(16 个子项,mcps/、builtin_skills/、memory/都在里面)、.ai_completion、~/.config/cagent。
结论很直接:任何一张静态落点表都会过期,也都不全。你需要的是一台扫描器,不是一张收藏清单。这也是我写脚本的原因。
三、备份之前,先把落点分四堆

动手备份之前必须先分类,这一步做错,后面全是白干:
该备的(config):settings.json、hooks.json、config.toml、skills/、rules/、CLAUDE.md、AGENTS.md、mcp.json。纯配置,可以进私有仓库。
混杂的(mixed):~/.claude.json、Qoder 的settings.json(MCP 和其他设置共用一个文件)。只能按字段挑,或者干脆跳过。
绝不能碰的(secret):~/.claude/.credentials.json、~/.codex/auth.json、~/.trae-cn/trae-jwt-token、一切*.pem和.env。凭据永远不进备份、永远不进仓库,换机器重新登一次就好。
噪音(noise):history.jsonl、logs/、extensions/。体积大、没价值、对话历史里还可能有敏感内容。
别觉得这是杞人忧天。我拿脚本扫自己的机器,四个 skill 的config.json里,有一个躺着明文的 API Key——sk-开头、46 个字符,就那么明晃晃地存在~/.workbuddy/skills/<技能名>/config.json里。如果哪天有人"顺手把 skills 目录传个网盘",这就是一次泄露。
四、脚本:三个命令,各管一件事

脚本叫agentcfg.py,纯 Python 标准库,零依赖,Windows / macOS / Linux 都能跑。核心是一张 33 条的落点表(覆盖 11 个工具),每条标了类型和风险等级:
MAP = [ dict(tool="claude", kind="settings", rel=".claude/settings.json", risk="config", src="官方文档+实测"), dict(tool="claude", kind="secret", rel=".claude/.credentials.json", risk="secret", src="实机验证"), dict(tool="codex", kind="hooks", rel=".codex/hooks.json", risk="config", src="第三方文档+实测"), dict(tool="trae", kind="mcp", rel=".trae-cn/mcps", risk="config", src="实机扫描"),
... 共 33 条,直接改这个列表就能扩]
三个子命令,各管一件事:
scan—— 先看清楚你有什么。
$ python agentcfg.py scan落点表共 33 条,覆盖 11 个工具;本机命中 8 条,合计 106 个文件 / 1.7M
它会把每条落点的存在情况、文件数、体积列出来,凭据类标红。还会反查 HOME 下所有不在表里的隐藏目录 —— 表外的工具窝就是这么发现的。
backup—— 备份,默认脱敏、跳过凭据。
$ python agentcfg.py backup -o ./backup收录 105 个文件,跳过 4 条落点(凭据/噪音) 脱敏替换 8 处 已生成 manifest.json / .gitignore / README.md
产出是一个可以直接git init的目录:按工具/类型/组织,每个文件带 sha256,manifest.json记录了备份时刻的全部状态。
audit—— 对备份做密钥残留自查。
$ python agentcfg.py audit -o ./backup扫描 108 个文件,可疑残留 6 处(其中硬命中 0 处)
剩下的 6 处全是hex32和jwt-ish误报 —— git 提交哈希和 base64 过的配置串。audit 的价值不在自动判断,在逼你逐条看一遍。它在发现硬命中(kv / literal / pem 三类)时退出码返回 1,可以直接挂进 pre-commit 或者 CI 把关。
五、脱敏这个坑:两头都会错

这节是我在真机上连撞两轮换来的,值得单独讲。
第一轮:漏。脱敏正则只认token这个完整的词。结果botToken从缝里溜过去了 —— 那是一条真凭据,如果没兜住,就跟着备份进了仓库。camelCase、snake_case、连字符变体(accessToken/client_secret/api-token)全是一样的坑。
第二轮:误伤。把 key 名匹配放宽之后,它开始改坏源码。r.password=(o=r.password)!==null&&o!==void 0?o:""被替换成了,api_key = resolve_api_key(ap)也一样。单次备份的替换数从 8 处涨到 63 处,备份出来的 JS 和 Python 全都不能看了。
想明白之后,规则收敛成两条:
·key 名:包含敏感词即命中,不看大小写和分隔符;
·值的形状:只认两种 —— 引号包住的字符串(≥12 字符)、裸的高熵长串(≥20 字符且只含 base64 字符集)。带括号、空格、运算符的一律放过,那基本是源码,不是配置值。
改完之后跑一组 10 条用例的回归测试,10/10 通过,替换数回落到 8 处,源码完好。
但我要把结论说得更狠一点:自动脱敏一定有漏,别信它。真正的防线是三层的 —— 凭据类落点压根不备份、audit 逐条过目、提交前git grep一把。任何一层单独用都不可靠。
六、这件事什么时候值得做
值得:换机或重装前;两台机器之间同步;准备把个人配置沉淀成团队仓库(这是 teamai-cli 那类工具的前置步骤 —— 你得先知道自己有什么);以及最简单的,知道自己的东西放在哪儿。
不值得:只用一个 AI 工具、没写过 hooks、skill 都是官方装的那种。这时候一个.claude目录拷走就完了,不用上脚本。
最后一句话总结:工具会换,模型会换,你调教出来的配置才是资产。资产的第一步,是知道它存在哪。
获取脚本
agentcfg.py全文约 240 行,纯标准库。公众号后台回复「落点」获取。