一、简介

一句话总结:以前的AI是对话式AI,你问我答,ClaudeCode是一个AI智能体,能直接对你的代码进行修改、完善、测试、部署。

二、安装及配置

2.1 nodeJS(必须)

Node.js是一个让js能在电脑上运行的环境,这是claudeCode必须的安装环境

2.1.1 官网安装

nodejs官网下载地址:https://nodejs.org/zh-cn/download

需要安装版本大于等于v18的,选择LTS(长期支持版)

安装完成后打开终端输入:node -v

出现版本号即安装成功~

2.1.2 nvm安装

还有另一种安装node的方法就是nvm(node版本管理工具)

nvm的github安装地址:https://github.com/coreybutler/nvm-windows/releases/tag/1.2.2

安装完成后,重启终端。

使用:nvm install --lts 安装最新LTS版本

nvm的用法有:

查看版本:nvm -v

查看可安装node版本:nvm list available

安装node版本:nvm install 16.20.2

查看本机已有node版本:nvm list

使用node:nvm use 16.20.2

设置默认Node:nvm alias default 18.19.0

卸载Node版本:nvm uninstall 18.19.0

2.2 git (可选,但是强烈推荐)

在AI编程中,版本管理是非常重要的,有时候AI也会错改你的代码,在放开了删除权限的情况下甚至会错删你的代码!!这时候git就直接可以回滚了。

2.2.1 git安装

git安装地址:https://git-scm.com/install/windows

git查看是否安装成功:git --version

出现版本号就是成功了~

2.2.2 git的配置

git账号配置

# 设置你的名字(用英文,可以是昵称)
$ git config --global user.name "Your Name"

# 设置你的邮箱
$ git config --global user.email "your.email@example.com"

git的常用命令

# 1. 在项目文件夹中初始化 Git 仓库(只需要做一次)
$ git init

# 2. 查看当前文件状态(哪些文件被修改了)
$ git status

# 3. 把修改的文件添加到"暂存区"(准备提交)
$ git add .

# 4. 提交一个版本(附带说明信息)
$ git commit -m "描述这次修改做了什么"

# 5. 将代码推送到远程仓库(如GitHub,Gitee)
$ git push

# 6. 从远程仓库拉取最新代码
$ git pull

2.3 claudecode

安装完成node之后,就可以安装claudecode了。

2.3.1 claudecode安装

第一种方式:npm安装(推荐)

npm install -g @anthropic-ai/claude-code

第二种方式:原生安装器

curl -fsSL https://claude.ai/install.sh | bash

安装成功校验:claude --version

如果速度慢,导致下载超时,而你又没有出国旅行,可以配置一下npm的国内镜像,之后再安装。

npm config set registry https://registry.npmmirror.com
npm install -g @anthropic-ai/claude-code

2.3.2 登录/api配置

安装完ClaudeCode之后,必须要配置API或者登录才能使用,如果不是出国旅行的用户,则需提前修改claudeCode的配置文件:settings.json

现在claudecode对国内用户进行大批量屏蔽,我们只能通过使用中转服务,或者api的形式来使用,本文主要讲解接入deepseek。

在windows系统,这个文件一般在C盘 -> 用户 -> 当前用户 -> .claude 下

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxxxb7ff48bxxxx",
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro",
    "ANTHROPIC_MODEL": "deepseek-v4-flash"
  },
  "includeCoAuthoredBy": false,
  "effortLevel": "high",
  "model": "haiku"
}
 

参数(环境变量) 作用 何时使用
ANTHROPIC_API_KEY Anthropic 官方 API Key 直接使用官方服务时
ANTHROPIC_AUTH_TOKEN 第三方平台的 API Key 使用中转/第三方模型时
ANTHROPIC_BASE_URL API 端点地址(覆盖默认地址) 使用中转/第三方服务时
ANTHROPIC_MODEL 默认使用的模型名称或别名 持久指定默认模型
ANTHROPIC_DEFAULT_OPUS_MODEL opus 槽位映射的具体模型 自定义三级槽位映射
ANTHROPIC_DEFAULT_SONNET_MODEL sonnet 槽位映射的具体模型 自定义三级槽位映射
ANTHROPIC_DEFAULT_HAIKU_MODEL haiku 槽位映射的具体模型 自定义三级槽位映射
API_TIMEOUT_MS API 请求超时时间(毫秒) 网络慢或模型推理耗时长时

deepseek的开放平台:

https://platform.deepseek.com/api_keys

登录或者api配置成功后,可以cmd进去你的项目进行cc了。

到你的目录下,输入: claude

会弹出安全检验,yes。

成功界面~

2.3.3 cc-switch(强烈建议安装)

跟上文安装的node的管理工具nvm一样,cc-switch是claudecode配置的可视化切换工具。

不仅可以对claudecode进行管理,还可以对codex和gemini进行管理。

因为后期,确定需求和设计的时候可以使用低质量的大模型,代码实施的时候可以使用高质量,可以快速切换。

cc-switch安装地址:https://github.com/farion1231/cc-switch/releases/tag/v3.16.5

安装完打开cc-switch

第一步:添加供应商

选择你有其他api额度的平台,则选其他的,本文主要讲deepseek。

填写api和请求地址

最后他会自动生成你的claudecode的setting.json文件配置,点击添加。

添加完成后会自动修改你的setting.json文件。

2.3.4 核心配置

ClaudeCode有多层级的配置体系,从全局到项目,根据优先级层层覆盖。

全局配置(有影响所有项目)

  └── ~/.claude/settings.json

项目配置(只影响当前项目)

 └── 项目根目录/.claude/settings.json

项目上下文文件(告诉AI项目背景信息)
  └── 项目根目录/CLAUDE.md ← 最重要!

2.3.4.1 settings.json

优先调用全局的setting.json,再到当前项目的setting.json

常用的setting.json配置为:

{
  // 允许 Claude Code 执行的操作(不再需要每次确认)
  "permissions": {
   "allow": [
     "Read",        // 读取文件
     "Write",       // 写入文件
     "Bash(npm *)",   // 执行 npm 命令
     "Bash(git *)",   // 执行 git 命令
     "Bash(node *)"   // 执行 node 命令
   ],

   // 禁止执行的操作
   "deny": [
     "Bash(rm -rf *)" // 禁止执行危险的删除命令
   ]
  },
  // 默认使用的模型
  "model": "sonnet",
  // 自动紧凑阈值(上下文使用超过此比例时自动压缩)
  "autoCompactThreshold": 80
}

2.3.4.2 CLAUDE.md

CLAUDE.md是ClaudeCode中最重要的配置文件之一,可以理解为这是你的项目说明书,用来交代你的项目背景、技术栈和当前进度。

CLAUDE.md 的三个层级(由顶向下叠加生效):

很多人只知道 CLAUDE.md 可以放在项目根目录,其实官方设计了 3 个层级的 CLAUDE.md,它们会同时生效、不冲突:

层级 路径 作用范围 适合写什么
全局级 ~/.claude/CLAUDE.md 所有项目都会读 个人习惯、身份、翻译偏好(如"永远用中文回答"、"我是 xx、从事 xx")
项目级 项目根目录/CLAUDE.md 仅本项目 项目技术栈、架构、规范、进度(可提交 Git,团队共享)
文件夹级 子目录/CLAUDE.md 仅该子目录 模块专属约定(如 src/payment/CLAUDE.md 写支付模块踩过的坑)

三层叠加生效,不冲突。优先级:文件夹级 > 项目级 > 全局级。

官方推荐的创建方式有两种:

  • /init 创建项目级:在项目根目录下运行 claude 后输入 /init,cc 会自动扫描项目并生成一份 CLAUDE.md 初稿,你再调整。官方建议:项目有一定规模再 /init 效果更好(太空它扫不出什么东西)。

  • /memory 编辑全局级:在 cc 会话里输入 /memory 选择“全局 CLAUDE.md”,会用默认编辑器打开该文件供你修改。修改全局后需重启 cc 才生效。

CLAUDE.md格式如下:

# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## 项目概述

基于 **RuoYi-Vue 3.9.1**(若依前后端分离框架)二次开发的 ES 检索系统。标准 RuoYi 基础上新增了两个自定义模块:

- **ruoyi-es**:Elasticsearch 检索模块(新闻文章检索 + 商品检索,含 Redis 热度排行)
- **ruoyi-rabbitmq**:RabbitMQ 集成模块(含死信队列 DLX/DLQ),用于 ES 数据异步同步

后端 Spring Boot 3.5.x / Java 17 / MyBatis / MySQL 8 / Redis / JWT;前端 Vue 2 + Element UI + Vuex + Vue CLI 4(**不是** Vite/Vue3)。

## 常用命令

**后端(Maven 多模块,根目录执行)**
- 打包:`mvn clean package -DskipTests`
- 运行:启动 `ruoyi-admin` 模块的 `com.ruoyi.RuoYiApplication`(端口 8080),或打包后执行 `bin/run.bat`
- 系统没有独立的单元/集成测试目录,功能验证靠运行应用 + Swagger UI(`/swagger-ui.html`)

**前端(ruoyi-ui 目录)**
- 安装依赖:`npm install`
- 开发运行:`npm run dev`(默认端口 80,`/dev-api` 代理到后端 8080,见 `vue.config.js` 与 `.env.development`)
- 生产构建:`npm run build:prod`

**数据初始化**:MySQL 库 `ruoyi-es`(连接配置在 `ruoyi-admin/src/main/resources/application-druid.yml`),建表脚本 `sql/ruoyi-es-202603271440.sql`。

## 外部依赖(本地必须启动,否则后端启动报错)

- MySQL(库名 `ruoyi-es`,root/123456)
- Redis:`localhost:6379`,**database 2**(`application.yml` 中 `spring.data.redis.database: 2`)
- Elasticsearch:`http://127.0.0.1:9200`(`spring.elasticsearch.uris`),**需安装 IK 分词插件**(索引 mapping 用了 `ik_max_word`/`ik_smart`)
- RabbitMQ:`localhost:5672`,guest/guest,手动 ACK

## 后端架构

标准 RuoYi 模块划分:
- `ruoyi-admin`:启动模块,Web 控制器、公共配置、`application*.yml`
- `ruoyi-framework`:Spring Security + JWT 认证、MyBatis、Redis、拦截器
- `ruoyi-system`:系统业务(用户/角色/菜单/字典等)
- `ruoyi-common`:公共注解、常量、工具类、核心 domain(`AjaxResult`、`BaseController`、`PageDomain`)
- `ruoyi-quartz` / `ruoyi-generator`:定时任务、代码生成

2.3.4.3 第二层记忆

AutoMemory(CC自己的笔记本),如果说CLAUDE.md是你主动立下的规矩,那么AutoMemory则是在cc干活过程中默默记下的设计笔记,你没有显性写进CLAUDE.md的习惯,产生的bug问题等都会被默默地记录在一个后台的agent中。

启动第二层记忆命令:/memory

Auto Memory 会记哪几类东西:

类型 含义 举例
user 关于你 你的角色、偏好(如“不喜欢深色 UI”)
feedback 你给过的反馈 “不要这样做"、“对,就这样"
project 项目相关 进度、决策、技术选型
reference 外部资源索引 “某份设计文档在 docs/design.md”
2.3.4.4 第三层记忆

【自建的参考文档】有些东西不适合全部塞到CLAUDE.md中去,但是CC所需要的必须必须要能查到,比如说做一个前端UI页面,你希望:

你喜欢的UI风格:颜色、字体、间距->docs/brand-visual.md

语术风格:docs/copywriting-style.md

就可以在CLAUDE.md中加上指引

- 修改前端视觉、调颜色、调间距时 → 必读 `docs/brand-visual.md`
- 写产品文案、按钮文字、提示语时 → 必读 `docs/copywriting-style.md`

这样只在CC“需要的时候”才会去读取完整文档、保证了准确性,且不占多余的上下文。

2.3.4.5 三层记忆总结

Claude Code 的三层记忆体系:第一层 CLAUDE.md(你主动写,全量加载)→ 第二层 Auto Memory(cc 自己记,按需读取)→ 第三层自建参考文档(你写,cc 遇到对应任务才读)。

位置 优先级 加载方式 谁在维护
1 CLAUDE.md(三级) 会话启动全量加载 你手动维护
2 Auto Memory 先读索引、按需读子文件 cc 自己写、你校对修改
3 参考文档 按需 cc 遇到对应任务才读 你手动维护
2.3.4.6 .claudeignore 

类似于 .gitignore,用来告诉 Claude Code 哪些文件/目录不需要关注:

# .claudeignore 示例
node_modules/      # 依赖包目录(太大了,AI不需要看)
.next/            # Next.js 构建产物
dist/            # 编译输出
*.log            # 日志文件
.env             # 环境变量(包含敏感信息)

三、简单使用

3.1 基础命令

# 最基本的启动方式(在当前目录启动)
$ claude

# 指定项目目录启动
$ claude --project-dir /path/to/your/project

# 使用指定模型启动
$ claude --model sonnet

3.2 核心命令

在 Claude Code 对话中,以 / 开头的命令是“斜杠命令”,用来控制Claude Code 的行为。在输入框里打一个 / 就会弹出完整命令清单;/help 列出所有可用指令。

基础高频命令:

命令 作用 使用场景
/help 显示帮助信息 忘记命令时查看
/model 查看/切换当前模型(高/中/低档) 需要换用更强/更快的模型时
/compact 压缩当前对话的上下文 对话太长,AI开始“遗忘”早期内容时
/clear 完全清空当前对话 开始全新的任务时
/context 详细查看上下文占比(各 MCP/Skill 各占多少) 优化 token、诊断哪里挨上下文
/memory 查看/编辑 CLAUDE.md 与自动记忆 管理项目/全局记忆、开启 Auto Memory
/status 查看会话状态 确认模型、Token 消耗
/cost 查看当前会话费用 监控花了多少钱
/review 对当前项目进行代码审查 完成功能后检查质量
/init 自动生成项目的 CLAUDE.md 进入新项目后的第一件事
/plan 切入 Plan Mode(只读规划模式) 复杂任务起手(详见 4.9 节)
/rewind 回滚 cc 之前的修改 “后悔药”,下面重点讲
/resume 选择历史会话恢复 上次话题还没聊完
/btw “顺便问一句”,不污染主上下文 主任务进行中想问个无关问题

扩展管理命令:

命令 作用 使用场景
/skill <名称> 直接调用某个 Skill 手动触发,不要等 AI 自己决定
/agent 创建、查看、调用子代理(SubAgent) 手工创建专项 SubAgent
/plugin 插件管理界面(discover / installed) 发现、安装、卸载插件
/login 使用 Claude 官方订阅会员登录 有 Claude Pro/Max 会员时首选
/simplify 派 3 个子 Agent 从代码质量/性能/复用性三个角度优化 快速全面优化已有代码

三个最常用的核心命令:

/compact —— 上下文压缩(必须掌握)

这是解决”用久了 AI 变笨”的核心武器。用 cc 一段时间会发现回答变慢、质量下降——这是因为你聊的每句话、它读的每个文件、它执行的每个操作的结果,都在挤占上下文空间。模型上下文虽然有 200K,但实际有效比例只有 60%-80%,且会随上下文增多能力下降。脑子里塞多了东西,它就容易把握不住重点。

/context —— 监控上下文余量

/compact 之前,先用 /context 看看当前状况:它会详细展示上下文占比,包括各个 MCP、Skill 各占用了多少 token,让你知道是什么在”吃掉”上下文。

/rewind —— “后悔药”(双击 ESC 快捷启动)

当你让 cc 改了一些代码、过后发现不满意(或者项目被改坏了),cc 自带一个回滚机制:在对话里输入 /rewind,或者直接双击 ESC,就会进入回滚界面

3.3 快捷键

快捷键

用途

Esc

停止当前 AI 回复/工具调用

Ctrl + C

停止当前命令或生成

Ctrl + D

退出 Claude Code

Esc → Esc

打开回滚(Checkpoint)菜单,可恢复到之前状态

四、进阶使用

当你拿到一个项目,要使用CC的时候,是应该先让他规划整个项目再执行,还是自己分不同的模块逐步让它做?

答:CC官方提供原生的PlanMode(规划模式),在该模式下AI只能分析,不能修改,有专门的快捷键与命令可随时切入。

 进入/切换运行模式,可以在命令行使用快捷键:Shift + Tab

4.1 四种运行模式

4.1.1 Default / Manual Mode(默认模式)

Default / Manual Mode(默认模式)

这是第一次打开CC时的默认模式

它的特点是:

  1. 可以读取整个项目、可以搜索代码、分析代码、生成代码
  2. 不可修改代码、不可执行命令行、不能自动执行

    应用场景:

    1. 新项目
    2. 敏感代码
    3. 机密项目

    安全性最高的模式,当你在当前模式需要修改时,会提示,例如:

    问:帮我修改一下数据库的密码。

    答:(确认需求)

    答:(请求执行)

    答:(结果)

    4.1.2 PlanMode(规划模式)

    PlanMode(规划模式):写入文件、修改文件、运行 shell 命令、运行测试、任何改动项目的动作。这保证你在看到 AI 计划之前,它不会动你项目中的任何一行代码

    在 Plan Mode 下,AI 只能调用这些只读工具

    工具 作用
    Read 查看文件内容
    Glob 按 pattern 查找文件
    Grep 用正则在文件内容中搜索
    LS 列出目录内容
    WebSearch / WebFetch 联网查资料
    Task 启动只读子代理去调研
    AskUserQuestion 向你提交选项题以澄清需求

    什么时候需要用到PlanMode,当你可以用一段话讲清楚,讲明白你的需求和预期,那就不需要使用PlanMode,如果你说不清,就先试用PlanMode。

    4.1.3 Accept Edits Mode(可编辑模式)

    可编辑模式,可以自动修改代码,但是不能执行命令。如果过程中涉及到其他命令,例如npm install等,会进行询问。

    4.1.4 Auto Mode(自动模式)

    目前最像AI Agent的模式,开启以后完全不会打断你,完全交给CC来执行,只有一种情况会打断你,就是会实时判断是否有危险,存在安全问题的时候会自动拦截。

    4.1.5 四种运行模式总结

    能力对比:

    功能 Manual Plan Accept Edits Auto
    阅读代码
    理解项目
    分析 Bug
    生成代码建议
    修改文件
    删除文件 ✅(需确认)
    新建文件
    重构代码
    执行 Shell 命令 ⚠️(少量只读) ✅(需确认)
    自动编译项目 ⚠️(确认后)
    自动运行测试 ⚠️(确认后)
    自动修复编译错误 部分
    自动完成整个任务 半自动

    一句话总结:

    Manual和Plan只能读取代码,Plan能执行部分只读的shell命令。

    acceptEdits和Auto是能修改代码的,acceptEdit仅修改,要执行命令的命令的时候需确认。Auto就是完全交给CC操作

    四种模式的开发案例:

    假设你的 Spring Boot + RabbitMQ 项目需要增加"预约成功发送邮件"功能。

    模式 Claude 会做什么
    Manual 分析需要修改 OrderService、RabbitMQ Producer、Mail Consumer,并给出代码示例,不修改任何文件。
    Plan 扫描整个项目,列出需要修改的模块、数据库、消息队列及实施步骤,形成完整方案,不改代码。
    Accept Edits 自动新增 MailService、修改 Producer、Consumer、配置文件等,涉及执行 Maven 或启动项目时会询问。
    Auto 自动完成代码修改 → 编译 → 启动 → 发送测试消息 → 验证邮件是否发送成功 → 修复可能出现的问题,直到流程正常。

    4.2 Skill(必学)

    4.2.1 Skill的定义

    官方对Skill的定义可以简单理解为:Skill是ClaudeCode的可复用专业能力,Skill不是Prompt。

    Skill = Pronpt + 文档 + 实例 + 工作流程

    CC + Skill = 某领域的专家 (CC + Java Skill = Java高级工程师 )

    它把某一项专业能力封装起来,供ClaudeCode在合适的时候自动调用。

    例如:

    问:帮我使用Springboot写一个发送邮件的接口

    CC:生成controller -> service -> Mapper结束。

    如果你加入了Springboot Skill:

    CC:生成Controller -> service ->mapper ->dto ->vo ->统一返回->异常处理->Swagger->日志->单元测试....结束

    因为Skill告诉了CC说Springboot项目应该是这样写的。

    4.2.2 Skill资源库

    ClaudeCode官方skills库:https://github.com/anthropics/skills/tree/main/skills

    有专门写word的、有编程的、有图片设计的等等...

    社区Skills库

    ComposioHQhttps://github.com/ComposioHQ/awesome-claude-skills

    alirezarezvanihttps://github.com/alirezarezvani/claude-skills

    OpenAI:https://github.com/openai/skills/tree/main/skills

    Superpowers

    Superpowers — Claude Code Skill Collections — Awesome Claude Skills

    注意:千万不要安装来路不明的Skills,必须是官网而且长期维护的skills,实在要安装的话一定要自己读一下skill.md和scripts中的脚本代码,用AI多次审查才能使用,否则非常危险!

    4.2.3 Skill的应用

    Skills安装到ClaudeCode主要有三种方法:

    第一种:直接从git上找到skills下载下来,然后放到 cc的skills文件中去

    想查看是否安装成功,可以先退出原来的claude然后重新进入使用命令:/skills

    第二种:直接从git上clone下来,再自己放到文件夹中去

    例:git clone https://github.com/obra/superpowers.git

    第三种:使用npx安装器

    假如我只想安装superpowers中的一个skills:

    npx skills add https://github.com/obra/superpowers --skill writing-plans

    可以看到writing-plans被安装到了~\.agents\skills中去。

    4.2.4 创建自己的专属Skill

    CC官方给我们提供了一个skills来方便我们创建自己的skills-【skill-creator】。

    4.2.5 Skill对Token的影响

    因素 对 Token 的影响 原因
    历史对话(Context) ⭐⭐⭐⭐⭐ 对话越长,需要携带的上下文越多,是 Token 消耗最大的来源。
    读取的大型代码文件 ⭐⭐⭐⭐⭐ 一次打开多个源码文件,会显著增加上下文。
    项目文档(README、规范) ⭐⭐⭐⭐☆ 如果 Claude 需要参考项目文档,也会增加上下文。
    实际加载的 Skill 内容 ⭐⭐⭐☆☆ Skill 越长,占用越多 Token,但仅限于被加载的 Skill。
    MCP 返回的数据 ⭐⭐⭐☆☆ 如数据库查询结果、GitHub Issue、接口返回等。
    安装的 Skill 数量 ⭐☆☆☆☆ 数量本身几乎没有影响,关键在于是否被使用。

    五、项目实践

    结合现有开源项目(ruoyi-vue)、整合es和rabbitmq开发一款,大数据检索系统。

    准备另开文章写实施步骤。

    更多推荐