大家好,我是淡知。
Claude Code是Anthropic官方出的命令行AI编程工具,之前写AI工具横评的时候一直没单独拿出来讲。
最近在项目里深度用了一阵,功能比想象中强很多——安装到大型项目改造到skill扩展。
今天一步步讲清楚,保证你跟着做能用上。
一、Claude Code是什么?
简单说:Anthropic官方出的命令行AI编程工具,可以帮你读代码、写代码、改代码、跑命令。
它的核心能力:
直接在你的代码目录里工作 理解整个项目的上下文 帮你修改文件、运行命令、搜索代码 支持skill扩展(类似插件)
对比ChatGPT和Claude网页版,Claude Code的优势是直接在本地跑,能操作你的文件、运行你的项目。
二、安装
前置要求
Node.js 18+ npm(Node.js自带) Anthropic API Key(免费额度用完需要付费)
安装步骤
方式一:npx直接跑(推荐先用这个)
npx @anthropic-ai/claude-code方式二:全局安装
npm install -g @anthropic-ai/claude-code安装完成后,直接在终端运行:
claude配置API Key
Claude Code依赖API Key,支持Anthropic官方Key,也可以接入国产大模型。
配置文件位置(Windows)
Claude Code的配置文件在用户目录下:
C:\Users\Administrator\.claude\settings.json配置文件示例:以MiniMax为例
{"env": {"API_TIMEOUT_MS": "3000000","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,"ANTHROPIC_API_KEY": "sk-cp-你的Key","ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic","ANTHROPIC_MODEL": "MiniMax-M2.7" }}几个关键字段:
ANTHROPIC_API_KEY:你的API KeyANTHROPIC_BASE_URL:国产模型接入地址,MiniMax示例是https://api.minimaxi.com/anthropicANTHROPIC_MODEL:使用的模型名称,如MiniMax-M2.7API_TIMEOUT_MS:请求超时时间,单位毫秒
方法1:直接写配置文件(推荐,Windows用户用这个)
在 C:\Users\Administrator\.claude\settings.json 里填入上面的配置,重启Claude Code即可。
方法2:设置环境变量(临时生效,PowerShell)
$env:ANTHROPIC_API_KEY="sk-cp-你的Key"$env:ANTHROPIC_BASE_URL="https://api.minimaxi.com/anthropic"$env:ANTHROPIC_MODEL="MiniMax-M2.7"方法3:Mac/Linux永久生效
echo'export ANTHROPIC_API_KEY=sk-cp-你的Key' >> ~/.zshrcsource ~/.zshrcMiniMax API Key在 minimaxi.com 申请。
三、基本用法
进入交互模式
claude进入后,你会看到提示符,直接输入你想让它做的事:
claude > 分析一下这个项目的结构claude > 帮我加一个登录功能claude > 帮我写单元测试单次执行(不用交互)
claude -p "帮我看看这个文件有什么问题"-p 参数表示print模式,不进入交互,直接输出结果。
从上次对话继续
claude -c-c 会读取当前目录的历史对话记录,继续上次的任务。
四、权限系统(重点)
Claude Code修改文件前需要你授权,这个权限系统是它和普通AI最大的区别。
五种权限模式
auto | |
acceptEdits | |
dontAsk | |
plan | |
bypassPermissions |
指定权限模式运行
claude --permission-mode acceptEdits权限请求长这样
claude wants to: Write to: src/utils/auth.js Reason: Adding JWT token validation functionAllow this action? [y/N/a/y+/a+/n+]y= 同意这次a= 同意这个目录所有后续操作y+= 本次对话所有后续操作都同意n= 拒绝
跳过权限检查(危险场景)
claude --dangerously-skip-permissions⚠️ 这个参数会跳过所有确认,生产环境慎用。只建议在CI/CD或自动化脚本里用。
五、大型企业项目改造实战
场景设定
假设我们有一个JavaScript老项目,需要:
给项目加ESLint代码规范 把一个旧的回调函数改成Promise风格 批量注释掉旧的console.log
Step 1:分析项目结构
claude -p "分析这个项目的目录结构,告诉我用了什么框架,主要模块有哪些"Claude会扫描整个项目,给你一个结构化的分析。
Step 2:给项目加ESLint
claude --permission-mode acceptEdits进入交互模式后输入:
帮我的项目安装ESLint并配置好,要求:1. 安装 eslint + @eslint/config-array2. 配置规则:禁止console.log,禁止var声明,强制使用const/let3. 在根目录生成 .eslintrc.js 配置文件4. 在 package.json scripts 里加一条 lint 命令Claude会:
运行npm install安装依赖 生成.eslintrc.js配置文件 修改package.json添加脚本 自动格式化符合规范的新文件
Step 3:改造回调函数成Promise风格
项目里有一段这样的老代码:
// old-code.jsfunctiongetUserData(userId, callback) { db.query('SELECT * FROM users WHERE id = ?', [userId], function(err, result) {if (err) { callback(err, null); } else { callback(null, result); } });}在Claude Code里输入:
找到这个文件中的 getUserData 函数,把回调风格改成 Promise + async/await 风格,并更新所有调用它的地方。Claude会自动:
改写函数为Promise风格 找出所有调用方 统一改成async/await调用
改完后大概长这样:
// new-code.jsfunctiongetUserData(userId) {returnnewPromise((resolve, reject) => { db.query('SELECT * FROM users WHERE id = ?', [userId], (err, result) => {if (err) reject(err);else resolve(result); }); });}// 调用方asyncfunctionloadUser() {try {const user = await getUserData(123);console.log(user); } catch (err) {console.error('加载失败', err); }}Step 4:批量处理console.log
输入:
在整个 src 目录下,把所有 console.log 批量注释掉,保留 error 级别的。Claude会:
扫描所有文件中的console.log 逐个确认你要保留哪个 批量注释掉其他的
六、Skill扩展安装
什么是Skill?
Skill是Claude Code的扩展机制,类似插件,可以自定义AI的行为和工具集。
安装官方Skill
claude --install-skill gitclaude --install-skill bashclaude --install-skill read安装自定义Skill
Skill本质上是一个JSON配置文件,定义了描述、提示词和可用工具。
创建步骤:
在项目根目录创建 .claude/skills/文件夹
mkdir -p .claude/skills创建一个skill配置文件,例如 code-review.json:
{"name": "code-review","description": "专门做代码审查的agent","prompt": "你是一个资深代码审查员,负责审查代码质量和安全性。你的职责是:1. 检查代码逻辑问题;2. 检查潜在bug;3. 检查安全隐患;4. 提供优化建议。","tools": ["Bash(git *)", "Grep", "Read", "Glob"]}在项目根目录创建 CLAUDE.md来声明skill:
<!-- claude-code: skills -->## Skills- code-review: 代码审查运行时指定skill:
claude --agent code-reviewSkill常用工具
Bash | |
Read | |
Edit | |
Grep | |
Glob | |
Write | |
NotebookEdit |
七、实战案例:改造一个完整项目
任务描述
把一个普通前端项目,改造成支持TypeScript + ESLint + Prettier的规范化项目。
完整操作步骤
Step 1:进入项目目录
cd your-projectclaudeStep 2:安装TypeScript
帮我在项目里添加TypeScript,要求:1. 安装 typescript @typescript eslint/parser2. 生成 tsconfig.json,target是ES2020,strict模式开启3. 把 package.json 里 scripts 的启动命令改成用 ts-node 运行Step 3:加ESLint
加上ESLint配置,要求:1. 禁止 console.log2. 强制分号结尾3. 缩进2个空格4. 配置 @typescript-eslint/parserStep 4:加Prettier
加上Prettier格式化配置,要求:1. 安装 prettier eslint-config-prettier2. 配置文件 .prettierrc:单引号、不加分号、宽度1003. 在package.json加 format 命令Step 5:批量修复类型错误
扫描整个src目录,找出所有TypeScript类型错误并修复,不要改变代码逻辑。Step 6:提交代码
用 git 提交这些改动,要求:1. 先 git status 看看改了哪些文件2. commit message 格式:feat: 升级项目到TypeScript + ESLint + Prettier八、常见问题
Q1:第一次运行卡住了
可能是API Key配置问题,检查一下:
echo$ANTHROPIC_API_KEY确认Key有效,没有过期。
Q2:修改文件被拒绝
确认你以正确的权限模式运行:
claude --permission-mode acceptEdits或者手动确认每次权限请求。
Q3:项目目录访问不了
Claude Code默认只能访问当前目录和子目录,如果需要访问其他目录:
claude --add-dir /path/to/another/projectQ4:中文输出乱码
设置环境变量:
export LANG=en_US.UTF-8Q5:Skill不生效
检查CLAUDE.md文件格式是否正确,skill配置JSON的name字段要唯一。
九、配置推荐
在项目根目录创建CLAUDE.md,可以给Claude Code默认指令:
# Claude Code 项目配置## 项目类型React + TypeScript 前端项目## 代码规范- 使用 TypeScript strict 模式- ESLint 规则:no-console, semi, 2-space indent- 优先使用 const,禁用 var## 常用命令- 开发:npm run dev- 构建:npm run build- 格式化:npm run format## 注意事项- 修改前先确认文件路径- 大改动用plan模式先看计划最后说两句
Claude Code本质是一个本地化的AI编程助手,它不仅能帮你那些机械、重复、耗时的活干快点,更能帮你写代码。
对于Java开发来说,它能帮你写脚本、调接口、看代码库;对于前端项目,它能帮你批量改配置、加规范、做迁移。
上手的关键就一件事:敢让它去干,看它怎么做,改它的输出就行。
好了,今天的分享先到这里,我是淡知,下期见。
夜雨聆风