
1. 装好 Claude Code 之前先把这几件基础配置搞清楚我大概是今年年初开始重度使用 Claude Code 的。在这之前我经历了很长一段“AI 辅助编程焦虑期”——ChatGPT 写代码要自己复制粘贴、改一个小需求来回传好几轮Cline 之类的插件在 IDE 里跑也总觉得不够系统。真正让我从“用 AI 写代码”转向“带 AI 干活”的转折点就是 Claude Code。不过说实话第一次用的时候我也踩了不少坑。网上教程几乎都在讲怎么下载、怎么运行/init但真正决定“这个工具好不好用”的其实是装环境之前和装完之后的那些配置细节。我电脑是 Windows WSL 的组合项目主要跑在 Ubuntu 容器里这个环境下踩过的坑比 Mac 用户多得多。如果你也是这种环境建议先耐心看完这一节再动手装。先说结论Claude Code 本质是一个跑在终端里的命令行 AI 编程助手它通过 Anthropic 的 API 与 Claude 模型交互能在你的项目目录里读代码、改文件、执行命令。这意味着它不是一个 IDE 插件而是一个独立工具。它的配置层级也很清晰系统级配置~/.claude/、项目级配置.claude/、配置文件settings.json和密钥管理环境变量或第三方登录。把这几层关系理清楚后面的所有操作都不会乱。1.1 安装前最容易忽略的 Node.js 版本问题Claude Code 官方要求 Node.js 版本在 18 以上。这里我说的不是“能跑就行”而是建议直接上 Node 20 LTS 或 22 LTS。为什么因为 Claude Code 的某些 MCPModel Context Protocol插件对 Node 的 API 有依赖低版本会直接报Error: fetch failed或者模块加载错误这类问题排查起来非常浪费时间。Windows 用户我强烈建议不要在官网直接下载.exe安装包去配环境变量除非你特别熟练。最省事的方式是用 nvmNode Version Manager来管理# Linux / WSL curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20 node -v # 确认输出 v20.x.xWindows 原生环境的话用 nvm-windows安装完记得以管理员身份打开终端执行配置。很多朋友卡在这一步是因为命令行没有重启环境变量没生效node -v还是老版本。这里有个常见的坑你明明装了 Node 20但claude命令启动时提示 Node 版本过低。这种情况大概率是系统里存在多个 Node 版本终端优先调用了老的路径。用which nodeUnix或where nodeWindows检查一下实际调用路径确认是不是指向了你刚安装的版本。提示WSL 和 Windows 原生是两个完全不同的环境Claude Code 在两边需要分别安装。如果你在 WSL 里跑项目就装在 WSL 里如果你在 Windows PowerShell 里跑就装在 Windows 侧。混着用会出现权限错乱和路径问题。1.2 安装方式和模型选择的取舍安装方式现在有两条路npm 安装和原生安装。npm 方式最经典npm install -g anthropic-ai/claude-code这个方式的优势是更新方便npm update -g anthropic-ai/claude-code也能同时装多个版本做对比。原生安装脚本则更省心curl -fsSL https://claude.ai/install.sh | bash脚本会自动帮你就把二进制文件放到~/.local/bin或类似目录。我个人建议如果你是在自己电脑上长期使用用 npm 方式如果你是在临时容器或远程服务器上用用原生安装脚本更快。安装完成后运行claude进入交互界面第一次会提示登录。这里出现了几个选项我逐个说清楚。Pro / Max 订阅账号登录如果你本身有 Claude 的 Pro 或 Max 会员可以直接选择用账号登录在浏览器里完成授权。这个方式比较适合轻量使用但要注意同一个订阅账号在不同机器上频繁切换可能会触发风控限制触发了之后去账号后台申诉周期至少 3 天。我周围两个朋友就是这么被临时封过。Anthropic API Key如果你只是在特定项目里测试可以选这个方式。它按 token 计费用多少花多少适合用量可控的场景。但注意 API Key 走的是独立计费不和订阅共享额度claude的某些增强功能比如 Web 搜索、更长上下文可能受 API 权限限制。第三方中转 / 自建代理这个我没有亲自用过但听一个做开源项目的朋友提过国内访问 Anthropic 接口有时候不稳定他用的是自建中转网关然后把ANTHROPIC_BASE_URL环境变量指过去。注意这种做法有账号安全风险环境变量配上之后一定要检查日志有没有泄露 key。1.3 登录成功不等于万事大吉先跑通最小验证登录成功后很多教程直接让你进项目跑/init但我建议你先在当前目录做一个最小验证新建一个空目录运行claude输入请用 Python 写一个读取 CSV 文件并统计每列非空值数量的脚本保存为 test.py这个验证的目的是确认三点模型是否真正连通、工具调用是否正常、文件写入权限是否可用。如果这一步就报错先别急着进项目把网络、环境变量、Node 版本这些问题排查完再继续。空目录是最干净的测试环境不会因为项目文件干扰判断。我用下来最省心的还是claude命令直接跑在项目根目录它自带.claude/目录来管理配置不用像之前用其他 AI 工具那样手动维护一堆规则文件。2. .claude 目录全局配置和项目配置的职责划分Claude Code 的配置体系其实很简洁核心就是一个settings.json文件加上一些可选的能力目录。但很多人对“全局配置”和“项目配置”之间的优先级关系没搞清楚导致出现“为什么这个项目里我的指令不生效”的困惑。CLAUDE.md 是 Claude Code 的“项目记忆文件”它相当于给 Claude 看的项目说明书。首次运行/init时Claude Code 会自动扫描项目结构生成一个基础的 CLAUDE.md。这一版质量一般但是个好起点。我实际项目里最终维护的 CLAUDE.md 长这样# 项目xxx 数据平台 ## 技术栈 - 前端React 18 TypeScript Vite - 后端Python FastAPI PostgreSQL - 部署Docker Nginx ## 常用命令 - 开发npm run dev - 测试pytest tests/ - 格式化black 和 eslint提交前必须执行 ## 代码风格 - 前端函数组件 hooks禁止使用类组件 - 后端类型注解必须完整 - 错误处理不要吞异常至少记录日志 ## 注意事项 - 数据库迁移必须走 migration 文件禁止直接手改表结构 - 所有对外接口必须加请求 id 便于追踪 - 修改公共组件前先看影响范围这个文件写得好不好直接决定 Claude Code 在项目里干活的质量。我见过有人把 CLAUDE.md 写成空文件然后抱怨 AI 代码写得烂——不给说明书还指望它干活这说不过去。2.1 settings.json 里那些值得手动改的字段安装完成后Claude Code 会在用户目录下生成一个全局配置文件。你可以通过claude config系列命令来查看和修改配置项。最值得关注的是下面这些配置项作用我的推荐model指定使用的模型版本根据任务复杂度切换普通代码用sonnet复杂架构设计用opus。官方做法是在对话里用/model切换灵活度更高。permissions控制 AI 能执行的命令范围见下方详细说明env给子进程注入环境变量建议把 API Key 相关的放这里做统一管理cleanupPeriodDays会话记录的保留天数默认 30 天可以根据你的磁盘情况调整forceLoginMethod强制指定登录方式多账号环境建议设定为api_key或oauth中的一个避免每次启动都要选择。claude config set -g forceLoginMethod oauth我用得最多的是permissions配置。它的核心逻辑是Allow 列表 Deny 列表 询问规则。默认情况下Claude Code 在需要执行命令时会问你“是否允许运行npm install”但每次问真的很烦。一个比较省心的配置是对只读命令ls、cat、grep直接 Allow对写操作删除文件、执行 git push设为 Ask对危险操作比如rm -rf直接 Deny。在交互界面输入/permissions可以打开可视化设置。除此之外也可以直接改配置文件里的permissions.allow和permissions.deny数组{ permissions: { allow: [ ls, cat, grep, find, npm run, git status ], deny: [ rm -rf, git push --force ] } }这个配置想清楚之后会让你的“AI 工程团队”干活之前更有边界感不会动不动就等你点确认也不会乱删东西。2.2 用 --settings 参数做“项目隔离”我同时维护着两个项目一个是用 Vue 写的中台系统一个是给客户做的数据采集服务。两个项目的依赖命令、构建流程完全不同。这时候如果只有一个全局 settings.jsonClaude Code 的提示词和工具权限就会互相干扰。Claude Code 支持通过--settings指定不同配置文件来启动。我实际上是写了两个 JSON一个settings.data-collection.json一个settings.admin-panel.json然后用别名alias把它们包成两个命令alias claude-dcclaude --settings ~/.claude/settings.data-collection.json alias claude-apclaude --settings ~/.claude/settings.admin-panel.json这样切项目的时候权限、模型、环境变量都是隔离的不用每次进项目重新解释一堆约定。这个习惯是我强烈建议养成的尤其是当你有多个项目并行开发时。3. 让 Claude Code 学会用你的工具链MCP、Agents 与 Skills如果说 CLAUDE.md 是给 AI 讲“人的规则”那 MCP 就是给 AI 装“人的手”——让它能触达外部系统。这个部分我觉得是 Claude Code 配置的分水岭初期基本靠它打通信息壁垒。3.1 MCP 服务器到底解决什么问题MCP 的全称是 Model Context Protocol你可以把它理解为 AI 工具界的 USB 接口只要设备MCP 服务器支持这个协议AI 就能直接插上使用不需要你为每个模型写定制集成。Claude Code 支持两种 MCP 使用方式方式一本地 stdio 型 MCP。比如你想让 Claude 能直接查数据库可以装一个modelcontextprotocol/server-postgres之类的服务器配置后它就能执行 SQL 查询并读取表结构。{ mcpServers: { postgres: { command: npx, args: [-y, modelcontextprotocol/server-postgres], env: { DATABASE_URI: postgresql://user:passlocalhost:5432/mydb } } } }方式二远程型 MCP。这个适合团队共享知识库的场景通过 HTTPS 暴露接口Claude Code 直接请求。好处是多人共用一套 MCP知识中枢不重复建设。MCP 的价值在于没有它AI 就只是个“读代码、写代码的文书”你对它描述需求时还需要手工贴数据、贴报错日志有了它AI 自己就能查到线上数据、自己去 redis 里捞 key、自己读接口文档这就从“被喂饭”升级到了“自己夹菜”。3.2 子代理Agents配置一个会话里养多个“干将”Claude Code 的Agent功能相当于在一个会话里并行着多个 AI 角色它们各管一段。这个功能听起来高级但配置核心就是“用提示词把边界和职责说清楚”。我目前配置了三个角色架构师 Agent负责读需求、拆任务、生成技术方案。每次我会要求它在改动代码前先画出改动点关系不用画图直接用文字列出模块依赖和调用链。后端开发 Agent负责具体的 Python / SQL 代码改动要求它每个提交保持单一职责commit message 写清楚动机。代码审查 Agent负责审查前两个的输出检查异常处理、性能隐患、迁移兼容性。实现上我就是通过/agent命令创建不同命名的 Agent每个 Agent 绑定一段专属的 system prompt。这个思路并不复杂难的是怎么让它们“协作”而不是“打架”。一个可行的方法是在 CLAUDE.md 里写明“各 Agent 输出前必须引用它所读到的文件路径和行号”这样架构师说“改第 30 行”时后端 Agent 能精准定位。3.3 Skills给 AI 注入一套“肌肉记忆”Skills 是 Claude Code 的扩展机制用来给 AI 增加特定领域能力。你想让 AI 做“代码评审”与其每次手打大段评审标准不如写一个 skill 定义之后输入code-review就能触发。一个 skill 基本包含三样东西SKILL.md说明这个技能的适用场景和调用方式可选的参考文档目录如references/放着常见坏味道清单可选的脚本目录如scripts/放自动检查脚本我最常用的是写一个“Python 性能审计”skill。它会在 Claude 分析代码时自动引导它检查这几件事数据库查询是否在循环里多次执行大文件是否一次性读入内存缓存是否在合适位置设置线程锁粒度过大没有这个 skill 时Claude 也会做一些泛泛的性能建议但不够系统。配置之后每次分析都能给出结构化的结论对我这种“想知道问题在哪、还想知道为什么”的人特别友好。3.4 Hooks在关键时刻自动跑到配置Hooks 是 Claude Code 里一个偏隐藏但极强大的能力。它能在特定生命周期比如PreToolUse、PostToolUse、Notification触发自定义脚本。我举一个实际场景我们团队要求所有代码提交前必须过一遍ruff和mypy。以前是 CI 阶段发现报错再打回很浪费时间。配置了PreToolUsehook 之后只要 Claude 提出要执行git commit系统就自动先跑一遍 lint 检查检查不通过直接中断并提示修改。Hook 的配置方式也是写进 settings.json{ hooks: { PreToolUse: [ { matcher: git commit, hooks: [ { type: command, command: bash scripts/pre-commit-check.sh } ] } ] } }团队里如果新入职的小朋友这套配置能帮他们无形中养成好习惯。代码风格统一这件事从依赖人盯着变成了自动机制。4. 多步工程任务的工作流设计让 AI 按你的节奏推进任务“AI 工程团队”这个概念不是简单地把一个 Agent 丢进代码库让它随便改。真正的关键是工作流的设计什么时候让 AI 做、做到什么程度交给你确认、哪些环节需要人类介入。4.1 用 Plan 模式先“说方案”再动手Claude Code 内置了Plan模式——进入这个模式后AI 不会直接改文件而是先分析需求、给出实现方案和步骤清单等你在建议和修改文件命令之间做出选择。这是我的核心工作流第一步任何需求进来先让 Claude 出方案。这一步的价值不是省时间而是逼我先把需求想清楚。我一般会这样发起对话进入 Plan 模式。分析以下需求并给出实现方案 1. 用户详情页需要展示最近 30 天的登录记录分页展示。 2. 新用户注册时需要发送欢迎邮件但邮件服务偶尔会超时不能阻塞主流程。 请输出 - 涉及的文件和函数 - 数据表是否需要变更 - 潜在风险和优化点Claude 输完方案之后我会像带实习生一样“审方案”改掉不合理的设计确认它理解对了需求再切回执行模式。别小看这一步很多返工就是因为方案阶段没对齐。4.2 开发任务的标准提示词模板我用了一段时间后总结出了一套提示词模板几乎可以套用在大部分开发任务上。分享出来供参考背景{项目的一句话描述方便 AI 复用上下文} 需求{要做什么尽可能具体} 约束 - 必须复用现有的 {模块名} 组件 - 不允许修改 {那些不能被动的文件} - 错误处理按照 CLAUDE.md 中的约定 完成标准 - {列出可测试的验收条件} - 代码需要通过 {lint / type check} 的校验写提示词时最忌讳的是只说“帮我优化一下这段代码”——太模糊了AI 可能会跑偏。而只要你在约束和完成标准里写清楚了我实际测试下来 Claude Code 生成的代码偏差率会大幅下降。4.3 并行任务与上下文窗口的平衡Claude Code 确实支持在一个会话里放多个 Agent 并行干活但有代价上下文窗口会迅速被占满。一旦上下文满了AI 会开始“遗忘”早期的约束或需求细节效果断崖式下跌。我踩过的教训有一次同时让四个 Agent 并行开发四个模块一开始势头很好但后来发现 Agent B 完全忘记了早期约定的接口签名生成了一堆不兼容的代码。排查到最后发现就是因为它读取的项目文件太多重要约束被挤出上下文了。所以我现在的工作流是并行任务最多两个且每个任务必须通过输入输出边界做清晰的接口隔离。比如 A 负责写接口、B 负责写前端页面A 先输出接口定义文档B 基于这份文档开发而不是让 B 自己去读 A 的代码。在配置层面我会用/compact主动压缩对话历史或者必要时开新会话接着干。4.4 处理超长代码库的检索策略如果项目代码量很大Claude Code 自带的语义检索能力还不足以应对“查找一个被多处引用的工具函数”这种需求。我的做法是额外配置了rgripgrep作为检索工具在 MCP 或 hooks 中把它注入。举个例子当我需要知道“所有调用formatDate的地方”时Claude 只靠自己的理解可能会遗漏。但配置了检索工具后它能直接执行rg -n formatDate src/答案精确到文件和行号。这种“精确检索 泛化理解”的组合比让它凭记忆猜靠谱得多。如果你还没装 rg强烈建议装一个命令是apt install ripgrep或brew install ripgrep。它会影响 Claude Code 在大型代码库里的表现上限。5. 权限、安全与隐私AI 能跑命令了怎么管住它权限问题我前面已经提到了一部分但这里我想单独拎出来讲因为这是 AI 编程工具大规模落地时最容易翻车的地方。5.1 命令权限的分级管理Claude Code 的命令执行权限分为三种allow直接执行、ask每次询问、deny禁止执行。我建议按下面的思路配置既保证效率又不失控命令类型建议权限理由只读命令cat、ls、grep、git diffallow高频使用不会造成破坏构建命令npm run build、pytestallow需要快速迭代验证包管理命令npm install、pip installask可能会引入新依赖需要确认Git 写操作git commit、git mergeask代码提交需要人工过目危险操作rm -rf、DROP TABLEdeny无论如何都不允许 AI 直接执行这个分级不是我拍脑袋定的是吃过亏总结出来的。有一回我没设权限限制Claude 在“清理无用文件”的场景下直接执行了一串删除命令虽然最终被git恢复但那一瞬间的冷汗绝对不想再来一次。5.2 API Key 与敏感信息管理Claude Code 配置过程中最常见的安全隐患是把 API Key 直接写进了项目里的settings.json。这等于把保险箱密码贴在保险箱上——如果项目推到了公共仓库key 就泄露了。我的做法是永远用环境变量引用敏感凭证。在 settings.json 里只写env: { DATABASE_URI: {env:DATABASE_URI} }这样的引用方式实际的值放在~/.claude/.env或者系统的环境变量里。这样就算配置文件泄露拿到的也只是一串引用符。另一个容易被忽略的点Claude Code 的会话记录默认保存在本地包含你输入的所有内容、AI 读取过的文件内容。如果想在敏感项目里用建议把cleanupPeriodDays调短并定期手动清理~/.claude/projects/目录。团队协作时也可以约定“敏感信息不直接贴进对话”而是通过文件路径让 AI 读取并仅记录结论。5.3 审计日志机制每次 AI 操作都有迹可循Claude Code 自带--debug参数开启后会在终端输出每一步的详细日志。这个日志平时开发用不上但排查“AI 为什么改了不该改的文件”时极其有效。我实际会这么用当发现某个文件被意外修改先看 session 记录找到导致这次修改的指令是哪个、上下文是哪一段。这就像给 AI 装了一个行车记录仪有理有据。团队场景下我更推荐用 hook 把每次文件变更记录推到统一的日志系统比如每次PostToolUse时追加到.claude/audit.log。这个文件本身就是最好的复盘素材。6. 让配置持续演进的几个实用习惯Claude Code 不是装完就能一劳永逸的工具它的配置更像是一个需要持续维护的“AI 员工手册”。用了一两个季度后我总结出几个让配置越用越顺手的习惯。6.1 把 CLAUDE.md 当成活文档每次大需求后更新一次很多人的 CLAUDE.md 写完就再也不动了这不合理。项目技术栈在变、约定在变文档必须同步。我的节奏是每次完成一个大功能或者引入新的工具链之后花五分钟把相关信息补进 CLAUDE.md。这样 Claude 每次启动都能“读懂现在的项目”而不是依赖过时的初始说明。比如我最近给项目加了消息队列RabbitMQ我就在 CLAUDE.md 里补了一段## 消息队列 - 使用 RabbitMQ连接串通过环境变量 RABBITMQ_URI 获取 - 生产者用 pika 库消费者需要注册在 consumers/ 目录下 - 消息体必须包含 trace_id 字段用于追踪6.2 配置版本化管理记录每一个“为什么”我自己维护了一个 dotfiles 仓库里面存了所有终端工具的配置Claude Code 的也在里面。好处是用新电脑时一条命令就能恢复环境更重要的是每一次配置变更都有 commit 记录能追溯当初改配置的原因。举个例子我 commit message 会写permissions: deny git push --force 防止 AI 误推送。三个月后回看还能想起当时的场景。这种历史沉淀对个人成长和团队交接都特别有价值。6.3 定期和 Claude 做一次“配置复盘”这个习惯是我自己摸索出来的每隔两个月我会开一个新会话把当前项目的 CLAUDE.md、settings.json、MCP 配置都发给 Claude然后问它“基于这些配置和你最近的工作表现有哪些地方可以优化”得到的建议并不总是直接可用但经常会给我新的启发。最近一次它提醒我某个 MCP 服务器已经三个月没被调用过建议移除以节省启动时间同时建议我补充这个模块的单元测试生成规则。这些都是我平时不会注意到的盲点。6.4 关注官方更新和社区生态Claude Code 的迭代速度很快几乎每个月都有新功能。Skills 机制刚开始的时候我用起来还比较粗糙但社区很快沉淀了不少高质量 skill 模板直接提升了我的使用效率。保持更新的方式很简单npm update -g anthropic-ai/claude-code更新后值得花 10 分钟跑一下最小验证确认常用功能没坏。如果发现哪个第三方 MCP 在新版本下不兼容第一时间去查升级日志实在不行可以先用--mcp-config参数单独指定旧配置别让单个工具阻塞整个工作流。我个人在实际操作中的一个体会是Claude Code 的核心竞争力不在于某个模型多聪明而在于它把 AI 助手从“对答如流的聊天对象”变成了“能落地、可约束、有记录的团队成员”。而这一切的前提就是配置做得足够细致。每次配置优化本质上都是在回答同一个问题我希望这个 AI 在什么边界内、用什么样的节奏参与我的工程。这个问题想得越清楚Claude Code 带给你的价值就越大。