claude-code
概述
Claude Code是由 Anthropic官方推出的交互式命令行工具。它不是一个简单的代码片段生成器,也不是一个需要你反复复制粘贴的聊天窗口。Claude Code是一个真正活在你终端里的 AI 编程伙伴,为开发者提供强大的 AI 辅助编程体验。
它被设计用来:
- 理解你的本地环境: 它可以直接读取你的文件,熟悉你的项目结构和编码规范。
- 执行实际任务: 它能运行测试、执行 lint 检查、读写文件,甚至帮你管理 Git 提交。
- 协同完成复杂工作: 从多文件的大规模重构,到一步步规划并实现一个新功能,它能像一个初级开发者一样与你协作
官网:https://www.anthropic.com/claude-code
文档:https://docs.anthropic.com/en/docs/claude-code
安装
安装Node.js 18+版本
进入Node.JS 官网,选择对应的操作系统和版本下载
安装claude code
直接在终端中输入以下命令进行安装
bash
npm install -g @anthropic-ai/claude-code
输入以下命令,当出现Claude版本信息则表明安装成功
bash
claude --version
更新Claude Code 版本
bash
claude update
使用
Claude Code使用模式有2种:
arduino
交互式会话:claude
非交互式:claude -p "question"
这里使用交互式会话,在终端输入claude
进入Claude Code
bash
claude
初次安装进入Claude Code要求选择一个主题颜色,按回车健确认 登录方式有以下2种,但大概率是不会使用的吧,一个字:贵
1.Claude账号登录
2.API方式

配置API
配置API就是不使用Claude官方模型,使用其他任意模型提供商的任何模型
环境变量
1.Windows系统
方法1: 临时设置
,仅当前终端有效。在PowerShell或CMD中执行:
bash
# PowerShell
$env:ANTHROPIC_BASE_URL="https://xxx.com"
$env:ANTHROPIC_AUTH_TOKEN="API Key"
# CMD
set ANTHROPIC_BASE_URL=https://xxx.com
set ANTHROPIC_AUTH_TOKEN=API Key
方法2: 永久设置
,全局生效。
a. 图形界面:
-
右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
-
在「用户变量」或「系统变量」中新建: 变量名:
ANTHROPIC_AUTH_TOKEN
:API KEY 变量名:ANTHROPIC_BASE_URL
:任意模型供应商提供的API URL -
可选变量:
ANTHROPIC_MODEL
:指定主要默认模型ANTHROPIC_SMALL_FAST_MODEL
:指定用于处理后台任务的模型。可以是一个较小的本地模型以节省成本。

b. PowerShell设置:
也可以使用Windows PowerShell环境变量配置,其信息也是配置在系统环境变量中
bash
# PowerShell CMD
setx ANTHROPIC_AUTH_TOKEN "API Key"
setx ANTHROPIC_BASE_URL "https://xxx.com"
# PowerShell
[System.Environment]::SetEnvironmentVariable('ANTHROPIC_BASE_URL', 'https://xxx.com', 'User')
[System.Environment]::SetEnvironmentVariable('ANTHROPIC_AUTH_TOKEN', 'API Key', 'User')
2.Linux、Mac系统:
方法1: 临时设置
,仅当前终端有效
bash
export ANTHROPIC_BASE_URL="https://xx.com"
export ANTHROPIC_AUTH_TOKEN="API Key"
方法2: 永久设置
编辑
vim .bashrc
文件,输入以下变量信息
bash
export ANTHROPIC_AUTH_TOKEN = API KEY
export ANTHROPIC_BASE_URL = BASE_URL
或者输入以下命令添加变量信息
bash
echo 'export ANTHROPIC_BASE_URL="https://xx.com"' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN="API Key"' >> ~/.bashrc
执行以下命令使配置生效
bash
source .bashrc
配置settings.json
直接在Claude Code的全局配置文件settings.json
中配置
-
Windows 平台:
C:\Users\用户名.claude\settings.json
-
Linux/Mac 平台:
vim ~/.claude/settings.json
示例结构如下,只需要填写env核心内容即可
bash
{
"env": {
"ANTHROPIC_API_KEY": "",
"ANTHROPIC_BASE_URL": "",
"ANTHROPIC_MODEL": "",
"ANTHROPIC_SMALL_FAST_MODEL": ""
},
"permissions": {
"allow": "",
"deny": ""
}
}
验证
通过以下命令验证是否设置成功:
bash
# macOS/Linux
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
# Windows PowerShell
echo $env:ANTHROPIC_BASE_URL
echo $env:ANTHROPIC_AUTH_TOKEN
# Windows CMD
echo %ANTHROPIC_BASE_URL%
echo %ANTHROPIC_AUTH_TOKEN%
借助开源项目
这一类开源项目比较多,这里列举2个常见的
个人更喜欢claude-code-router
,具体如何使用可参考博文:Claude Code Router:一键接入多种AI模型的智能路由器
使用脚本
如果使用多个供应商时,频繁修改环境变量多有不便,于是乎编写了如下脚本。首先配置模型信息,然后通过一键脚本形式管理环境变量信息
Windows系统下,创建manage_env.bat
,编辑文件内容如下:
bash
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
:: --- 在此处配置您的环境变量 ---
set "ANTHROPIC_AUTH_TOKEN=sk-1234556"
set "ANTHROPIC_BASE_URL=https://xxx.com"
set "ANTHROPIC_MODEL=gemini-2.5-pro"
set "ANTHROPIC_SMALL_FAST_MODEL=gemini-2.5-flash"
:: --- 配置结束 ---
:menu
cls
echo.
echo ===================================================
echo 环境变量管理脚本
echo ===================================================
echo.
echo 1. 设置永久环境变量 (为当前用户)
echo.
echo 2. 设置临时环境变量 (新窗口,关闭即失效)
echo.
echo 3. 删除设置的永久环境变量
echo.
echo 4. 验证永久环境变量
echo.
echo 5. 退出
echo.
echo ===================================================
echo.
set /p choice="请输入您的选择 [1,2,3,4,5]: "
if "%choice%"=="1" goto set_perm
if "%choice%"=="2" goto set_temp
if "%choice%"=="3" goto delete_perm
if "%choice%"=="4" goto verify_perm
if "%choice%"=="5" goto exit_script
echo.
echo 无效的选择,请按任意键返回菜单...
pause > nul
goto menu
:set_perm
echo.
echo 正在设置永久环境变量...
reg add HKEY_CURRENT_USER\Environment /v ANTHROPIC_AUTH_TOKEN /t REG_SZ /d "%ANTHROPIC_AUTH_TOKEN%" /f >nul
reg add HKEY_CURRENT_USER\Environment /v ANTHROPIC_BASE_URL /t REG_SZ /d "%ANTHROPIC_BASE_URL%" /f >nul
reg add HKEY_CURRENT_USER\Environment /v ANTHROPIC_MODEL /t REG_SZ /d "%ANTHROPIC_MODEL%" /f >nul
reg add HKEY_CURRENT_USER\Environment /v ANTHROPIC_SMALL_FAST_MODEL /t REG_SZ /d "%ANTHROPIC_SMALL_FAST_MODEL%" /f >nul
echo.
echo 永久环境变量设置成功!
echo.
echo 按任意键返回菜单...
pause > nul
goto menu
:set_temp
echo.
echo 正在打开一个新的命令提示符窗口并设置临时环境变量...
start "临时环境会话" cmd /k "chcp 65001 >nul & set ANTHROPIC_AUTH_TOKEN=%ANTHROPIC_AUTH_TOKEN% & set ANTHROPIC_BASE_URL=%ANTHROPIC_BASE_URL% & set ANTHROPIC_MODEL=%ANTHROPIC_MODEL% & set ANTHROPIC_SMALL_FAST_MODEL=%ANTHROPIC_SMALL_FAST_MODEL% & echo 临时环境变量已设置。关闭此窗口后将会失效。"
goto menu
:delete_perm
echo.
echo 正在删除永久环境变量...
reg delete HKEY_CURRENT_USER\Environment /v ANTHROPIC_AUTH_TOKEN /f >nul 2>&1
reg delete HKEY_CURRENT_USER\Environment /v ANTHROPIC_BASE_URL /f >nul 2>&1
reg delete HKEY_CURRENT_USER\Environment /v ANTHROPIC_MODEL /f >nul 2>&1
reg delete HKEY_CURRENT_USER\Environment /v ANTHROPIC_SMALL_FAST_MODEL /f >nul 2>&1
echo.
echo 永久环境变量已被删除!
echo.
echo 按任意键返回菜单...
pause > nul
goto menu
:verify_perm
echo.
echo 正在从注册表查询永久环境变量...
echo.
reg query HKCU\Environment /s | findstr "ANTHROPIC"
echo.
echo 查询完成。
echo.
echo 按任意键返回菜单...
pause > nul
goto menu
:exit_script
exit /b 0
命令说明
CLI命令
命令 | 语法 | 描述 | 示例 |
---|---|---|---|
claude |
claude |
启动交互式 REPL 模式 | claude |
claude "query" |
claude "查询内容" |
使用初始提示启动 REPL | claude "解释这个项目的结构" |
claude -p "query" |
claude -p "查询内容" |
通过 SDK 查询并退出 | claude -p "解释这个函数的作用" |
claude -c |
claude -c |
继续最近的对话 | claude -c |
claude -r |
claude -r claude -r "<会话ID>" "查询" |
选择需要恢复的会话 恢复指定会话 | claude -r "abc123" "完成这个 PR" |
claude update |
claude update |
更新到最新版本 | claude update |
claude mcp |
claude mcp |
配置模型上下文协议服务器 | claude mcp |
CLI选项标志
标志 | 描述 | 示例 |
---|---|---|
--add-dir |
添加工作目录 | claude --add-dir ./src |
--allowedTools |
指定允许的工具 | claude --allowedTools Read,Write |
--disallowedTools |
指定禁用的工具 | claude --disallowedTools Bash |
--print/-p |
打印响应而不进入交互模式 | claude -p "hello world" |
--output-format |
指定输出格式 (text, json, stream-json) | claude --output-format json -p "说明" |
--input-format |
指定输入格式 | claude --input-format json |
--verbose |
启用详细日志记录 | claude --verbose |
--max-turns |
限制代理轮数 | claude --max-turns 5 |
--model |
设置会话模型 | claude --model claude-3-haiku |
--permission-mode |
设置权限模式 | claude --permission-mode strict |
--resume |
恢复指定会话 | claude --resume abc123 |
--continue |
加载最近的对话 | claude --continue |
--dangerously-skip-permissions |
跳过权限提示 | claude --dangerously-skip-permissions |
交互模式斜杠命令
命令 | 功能 | 示例用法 |
---|---|---|
/add-dir |
添加额外的工作目录 | /add-dir ./tests |
/agents |
管理自定义 AI 子代理 | /agents list |
/bug |
向 Anthropic 报告错误 | /bug |
/clear |
清除对话历史 | /clear |
/compact |
压缩对话内容,在上下文中保留摘要 | /compact 摘要说明 |
/config |
查看/修改配置 | /config show |
/cost |
显示令牌使用统计 | /cost |
/doctor |
检查 Claude Code 安装健康状态 | /doctor |
/exit |
退出 | /exit |
/export |
将当前对话导出到文件或剪贴板 | /export |
/help |
获取使用帮助 | /help |
/hooks |
管理工具事件的钩子配置 | /hooks list |
/ide |
管理 IDE 集成并显示状态 | /ide status |
/init |
使用 CLAUDE.md 指南初始化项目,类似于记忆 | /init |
/install-github-app |
为代码仓库设置 Claude GitHub Actions | /install-github-app |
/login |
切换 Anthropic 账户 | /login |
/logout |
登出 Anthropic 账户 | /logout |
/mcp |
管理 MCP 服务器连接 | /mcp status |
/memory |
编辑 CLAUDE.md 记忆文件 | /memory edit |
/migrate-installer |
从全局 npm 安装迁移到本地安装 | /migrate-installer |
/model |
选择或更改 AI 模型 | /model claude-3-opus |
/permissions |
查看或更新权限 | /permissions show |
/pr_comments |
查看拉取请求评论 | /pr_comments |
/release-notes |
查看版本说明 | /release-notes |
/resume |
恢复对话 | /resume |
/review |
请求代码审查 | /review |
/status |
查看账户和系统状态 | /status |
/upgrade |
升级到 Max 以获得更高的速率限制和更多的 Opus | /upgrade |
/terminal-setup |
安装 Shift+Enter 键绑定 | /terminal-setup |
/vim |
进入 vim 模式 | /vim |
进阶使用
对话模式
Claude Code支持三种对话模式,可以使用快捷键进行切换
Linux、Mac:
bash
shift+tab
Windows:
bash
alt+m
1.普通模式:AI所有修改代码需要人工进行审核 2.auto-accept模式:AI所有修改代码无需人工进行审核
3.plan模式:AI不会修改代码只会提出想法、建议、计划等

历史对话
输入/resume
查看历史对话记录 可以选择历史话题
进入某个历史对话后,可以连续按2次
ESC
进行选择某次对话
图片对话
如果模型支持图片读取,可以直接将图片拖到对话输入框,然后进行提问

与IDE集成
在Claude Code终端进行AI代码修改后的审核是非常不方便的,此时可以借助插件把Claude Code接入IDE
集成功能
css
差异查看:在 IDE 差异查看器中打开文件差异,以查看和修改建议的更改
选择上下文:IDE 中的当前选择会自动与 Claude Code 共享
文件引用快捷方式:使用Cmd+Option+K(Mac)或Ctrl+Alt+K(Linux / Windows)插入文件引用
诊断共享:波浪形错误和警告与 Claude Code 实时共享
安装以下图所所示的插件 输入
/ide
命令来管理 IDE 集成并显示状态 选择所使用的IDE,例如这里是Trae
启用自动连接到IDE
到这里就将Claude Code集成到了Trae IDE中
当在IDE中选择代码时,Claude窗口就会同步选择
记忆管理
记忆管理使用
/init
指令,会在当前项目根目录下创建CLAUDE.md
文件并生成相关信息
功能 | 描述 | 示例 |
---|---|---|
CLAUDE.md 文件 | 项目特定的上下文和指令存储 | 在项目根目录创建包含项目规范的文件 |
项目知识持久化 | 跨会话保持对项目的理解 | Claude 记住你的代码风格、架构模式 |
自定义指令 | 为项目设定特定的工作流程 | 定义测试流程、部署步骤等 |
示例CLAUDE.md内容:
markdown
# 项目上下文
这是一个 React + TypeScript 项目
- 使用 Jest 进行测试
- 遵循 Airbnb 代码规范
- API 调用使用 axios
- 状态管理使用 Redux Toolkit
添加记忆:
命令行输入:# 记忆内容
,然后提示选择项目级记忆还是用户级的记忆,完成后会将记忆内容写入到CLAUDE.md
文件 项目级与用户级记忆:
项目级记忆:仅对当前项目生效
bash
当前项目\CLAUDE.md
用户级记忆:对所有项目生效
bash
# Windows
C:\Users\用户名\.claude\CLAUDE.md
# Linux Mac
~/.claude/CLAUDE.md
MCP集成
Context7 MCP
是一个可以用来获取任何库的最新文档和代码示例的工具。
添加MCP:
远程服务器连接
bash
claude mcp add --transport http context7 https://mcp.context7.com/mcp
SSE传输协议
bash
claude mcp add --transport sse context7 https://mcp.context7.com/sse
本地服务器连接
bash
claude mcp add context7 -- npx -y @upstash/context7-mcp
删除MCP:
bash
claude mcp remove context7
注意:
MCP安装分为项目级(当前项目生效)与用户级(所有项目生效)
使用--scope user
申明用户级安装
bash
claude mcp add context7 --scope user -- npx -y @upstash/context7-mcp
自定义命令
基于项目级或用户级,创建
.claude/commands/
目录,在该目录下创建合适名称的MD格式文件,文件名即指令名称,文件中描述指令功能
例如: 基于当前项目,创建 .claude/commands/my_command.md
文件,内容如下:
bash
请告诉我 $year 年,中秋节是哪月哪天,放假几天?
可能需要重启Claude Code终端,然后直接输入指令名称与参数值 执行结果如下:
Hooks 钩子
Claude Code Hooks 是用户定义的 Shell 命令,会在 Claude Code 生命周期的各个阶段执行。钩子能够对 Claude Code 的行为进行确定性控制,确保某些操作始终发生,而不是依赖 LLM 来选择运行它们。
使用Hooks可以实现自动化工作流
hooks应用场景:
css
通知:自定义当 Claude Code 等待您的输入或运行许可时如何收到通知。
自动格式化:每次编辑文件后在prettier.ts 文件、gofmt.go 文件等上运行。
日志记录:跟踪并统计所有已执行的命令,以进行合规性或调试。
反馈:当 Claude Code 生成的代码不符合您的代码库约定时提供自动反馈。
自定义权限:阻止对生产文件或敏感目录的修改。
配置方式:
bash
~/.claude/settings.json 用户设置
.claude/settings.json 项目设置
.claude/settings.local.json 本地项目设置 高优先级
Hooks 钩子事件:
Claude Code提供了以下几个在工作流程的不同生命周期运行的钩子事件,每个事件都会接收不同的数据,并能以不同的方式控制Claude Code的行为。
css
PreToolUse:在工具调用之前运行(可以阻止它们)
PostToolUse:工具调用完成后运行
UserPromptSubmit:在用户提交提示时运行,在 Claude 处理之前
Notification:当 Claude Code 发送通知时运行
Stop:当 Claude Code 完成响应时运行
SubagentStop:子代理任务完成时运行
PreCompact:在 Claude Code 即将运行压缩操作之前运行
SessionStart:当 Claude Code 启动新会话或恢复现有会话时运行
结构: 钩子由匹配器组织,每个匹配器可以有多个钩子:
bash
{
"hooks": {
"EventName": [
{
"matcher": "ToolPattern",
"hooks": [
{
"type": "command",
"command": "your-command-here"
}
]
}
]
}
}
matcher:匹配工具名称的模式,区分大小写
arduino
简单字符串完全匹配:Write仅匹配写入工具
支持正则表达式:Edit|Write或*
用于*匹配所有工具。也可以使用空字符串 ("") 或 matcher留空。
hooks:模式匹配时执行的命令数组
bash
type:目前仅"command"支持
command:要执行的 bash 命令
timeout:(可选)在取消特定命令之前,该命令应运行多长时间(以秒为单位)
常见匹配器:
需要注意不同的钩子事件具有不同的匹配器
arduino
Task:子代理任务
Bash:Shell 命令
Glob:文件模式匹配
Grep: 内容搜索
Read: 文件读取
Edit、MultiEdit:文件编辑
Write:文件写入
WebFetch、WebSearch:Web 操作
添加钩子事件
输入/hooks
并回车进入hooks配置 选择生命周期钩子事件
接着添加匹配器
输入匹配器类型
添加钩子事件执行操作
选择存储位置
到了这步钩子事件就添加完毕
同时
settings.json
文件中就存在了以下钩子事件配置:
bash
{
"hooks": {
"PostToolUse": [
{
"matcher": "Read|Write",
"hooks": [
{
"type": "command",
"command": "echo 123 > hooks.txt"
}
]
}
]
}
}
接着就可以验证钩子事件是否执行,例如:xx.py文件有什么内容? 触发读取匹配器,从而执行echo 123 > hooks.txt
SubAgent 子代理
Claude Code 中的自定义SubAgent 子代理是专门的 AI 助手,可以调用它们来处理特定类型的任务。它们通过提供特定于任务的配置,包括自定义的系统提示、工具和单独的上下文窗口,从而实现更高效的问题解决。
根据项目实际需求,可以创建多个Agent,当发出某指令时,Claude Code就会自动调用这些子代理Agent执行特定任务
以创建一个写代码注释的Agent为例:
输入/agents
进入Agent管理配置 创建Agent
选择存放级别
使用Claude生成
自然语言描述Agent可以做什么
赋予Agent怎样的工具权限,直接选择Continue即可
选择模型
选择Agent代表的颜色 发出指令写注释,会自动调用创建的Agent执行