别再把 Claude 当聊天框,Claude Code CLI 安装与上下文管理指北(Part 1)
但问题是,每次提问都像跟一个失忆症患者对话。AI不了解项目的目录结构,不知道团队的代码规范,更不清楚某个模块前天才刚刚重构过。这哪是协同开发,分明是重复劳动。
要让AI真正释放生产力,就得把它拉进本地开发环境,洗去“临时工”的身份。对于程序员来说,首选自然是Anthropic推出的Claude Code了——对,就是那个传闻中GitHub Copilot的强劲对手。
本文是完整指南的第一部分,面向新人。我们会一步步拆解如何配置Claude Code CLI,让它从一个冰冷的对话框,变成一个真正懂业务的本地编程老伙计。(大佬请绕行。)
一、基础准备与环境接入
要让AI接入本地工作流,第一步得在终端里把它唤醒——就像早上闹钟叫醒你去上班那样,简单却必要。
安装Claude Code
前提是本地得有Node.js环境。如果你不想折腾nvm或者配置PATH变量,推荐直接用ServBay搞定。这款集成化本地开发环境管理工具,提供图形界面,一键就能安装各种语言的运行时。点选所需的Node.js版本,几秒钟部署完成,手动配环境变量的日子可以直接翻篇了。
环境准备好后,打开终端,跑一条命令搞定全局安装:
npm i -g @anthropic-ai/claude-code
接着用claude --version验证一下。首次运行会弹出窗口,让你授权Anthropic API密钥或者绑定的Claude Pro订阅。
安装成功后,你会看到项目根目录和用户目录下都悄悄生成了配置文件。理解它们的层级分工,有助于团队协作和个性化调校。
先说项目根目录的.claude/文件夹,里面有settings.json(这个可以提交到Git,团队共享)和settings.local.json(放本地,忽略,个人喜好覆盖)。
而系统用户目录~/.claude/下,存放的则是全局通用的配置偏好。这套分离机制挺妙的:团队在代码规范上保持一致,开发者个人操作习惯也能自由保留。
二、建立项目全局上下文
AI写代码记不住项目上下文,这是个普遍痛点。每次都要重复解释业务逻辑,效率怎么可能高得起来?Claude Code的解决方案是建立项目记忆。
在终端进入项目根目录,输入claude启动界面,然后敲入/init命令。
程序会自动扫描本地代码库,分析package.json中的依赖、目录架构和技术栈特征,完成后在根目录生成一个CLAUDE.md文件。
CLAUDE.md到底怎么写
这个文件是所有对话的“大脑”。每次启动新会话,程序都会先读取它。一份结构清晰的配置,能大幅降低沟通成本。下面给一个全栈项目的示例:
# 项目名称 SaaS 仪表盘
## 技术架构
- 前端 React 18 + Vite
- 状态管理 Zustand
- 后端 NestJS + TypeScript
- 数据库 MySQL + TypeORM
## 目录规范
- `/frontend/src/views` 存放页面级组件
- `/frontend/src/shared` 存放公共纯函数与 Hooks
- `/backend/src/modules` 按业务模块划分后端逻辑
## 编码约束
- 前端组件统一使用箭头函数和解构赋值
- 接口响应格式必须遵循 { code, data, message } 结构
- 严禁在 TypeScript 中使用 any 类型,复杂类型需定义 interface
- 所有的日期处理统一调用 dayjs 库,不要用原生 Date
## 常用脚本
- `npm run dev:all` 启动前后端本地服务
- `npm run lint` 执行代码规范检查
把这些规则写清楚后,下次安排新增一个数据展示接口,程序会自动按规范格式返回数据,并乖乖放到/backend/src/modules目录下。
真正需要警惕的是:千万别把数据库密码或API密钥写进这个文件,因为它会跟着代码一起提交到版本控制系统里去。
三、内存管理与拒绝上下文臃肿
终端界面有个上下文指示器,实时显示当前对话的内存占用情况。随着对话深入,引用的文件越来越多,窗口空间会被逐渐填满。
当占用率超过75%时,响应速度明显下降,甚至会出现遗忘早期指令的情况——想想也是,人都不一定能记住那么多事情,AI也一样。所以盲目堆砌上下文不是办法,精细化管理才是正道。
精准引入文件
最大的误区是一上来就把整个src目录扔给AI。正确的做法是按需挂载,使用@符号加文件名。
比如提示词可以这么写:“检查@frontend/src/views/Login.tsx中的表单校验逻辑,修复密码长度验证报错”。这种指哪打哪的方式,能极大节省Token消耗。
对话状态压缩
当一个功能模块开发到一半,上下文指示器已经标红时,可以用/compact命令。执行后,程序会将冗长历史对话压缩成一段摘要,保留关键的技术决策、当前任务进度和文件修改状态,同时丢掉那些试错中的废话。
如果开启一个和之前完全无关的新任务,直接使用/clear清空对话历史。此时CLAUDE.md中的项目记忆依然生效,只是重置了当次沟通记录。
四、掌控执行权,防止代码被改坏
在实际开发中,AI乱改代码是个真实风险,尤其涉及多文件重构任务时,直接下手很容易引发连锁报错。Claude Code提供了不同的交互模式,来应对不同的任务复杂度。
计划模式 (Plan Mode)
按Shift+Tab键切换到计划模式。这是进行复杂开发时特别好用的一个特性。在该模式下输入需求后,AI不会立刻动手写代码,而是先输出一份详细的执行步骤。
举个例子,如果要求把原有的Session登录重构为JWT登录,程序会列出如下计划:
- 安装jsonwebtoken依赖包
- 在工具类目录下创建token生成与解析方法
- 修改后端登录接口,用JWT替换原有Session逻辑
- 更新前端拦截器,在请求头中携带Token
开发者可以先审核这份计划,确认无误或提出修改意见后,再批准执行。这相当于在动手前先做了一次方案评审,从根本上堵住了代码库被大面积破坏的风险。
扩展思考模式 (Extended Thinking)
遇到那种偶发的深层Bug,或者需要权衡利弊的架构设计时,可以开启扩展思考模式。这会消耗更多计算资源,让程序在给出最终答案前进行更深度的内部推理。日常简单的增删改查任务就没必要开这个了。
五、权限与安全边界
作为本地化运行的工具,Claude Code具备读取文件、修改代码甚至执行Shell脚本的能力。基于最小权限原则,执行敏感操作前都会弹窗请求授权。
开发者可以根据项目的信任级别,在配置文件中自定义权限边界。通过修改本地的settings.json就能实现管控:
{
"permissions": {
"allowedTools": ["Read", "Write", "Glob", "Bash(npm run dev)"],
"blockedTools": ["Bash(rm *)", "Bash(git push -f)"],
"autoApprove": ["Write(frontend/src/views/*)"]
}
}
这里allowedTools划定白名单,blockedTools锁死危险操作,而autoApprove允许AI在特定目录下免弹窗修改代码。永远别把宽泛的终端执行权限放进自动批准列表。
第一部分总结与下期预告
在第一部分中,我们完成了基础环境的搭建:通过ServBay部署Node.js环境,生成了规范的CLAUDE.md项目记忆,掌握了精细化的上下文管理技巧,还学会了用计划模式和权限控制来保护代码安全。
这套体系搭建完成之后,命令行AI编程工具才算真正融入了本地研发工作流。
在即将发布的第二部分中,我们会探讨更高级的进阶能力,包括如何配置MCP(模型上下文协议)连接外部数据库与文档,以及如何为Claude编写自定义技能,进一步解放生产力。