Claude Code 基础教程以及使用心得分享
自从 Claude Code(下文简称 cc)支持 Claude Pro 订阅用户之后,它的身影便频繁出现在各大技术论坛,常被用来与 Cursor 等 AI 编程工具作比较。作为 Cursor 的年费用户,我已经在项目中建立一套成熟的 Cursor 工作流,因此虽然很想体验,但迟迟并没有下定决心。
最近 Cursor 的计费模式调整,从按次计费改为按 API 用量计费。在我看来是变相削减用量。于是,我一边发邮件申请切回旧方案(顺带一提,邮件申请通过了),我一边开通了 Claude Pro,打算先用 cc 过渡一阵。
经过一段时间的探索,我发现 cc 确实名不虚传。它和 Cursor 各有所长,完全可以相辅相成,并不是替代关系。后续我打算双持,搭配使用。
基础入门
什么是 Claude Code
Claude Code 是 Anthropic 官方基于最新的 Claude Opus/Sonnet 4 开发的 CLI AI 编程工具。
和常见的 IDE 不同,cc 完全运行在终端中,没有图形界面。对于习惯使用图形界面来开发的程序员来说,刚开始使用 cc 可能会有些不适应。不过,这两者并不冲突。你完全可以在终端中使用 cc 开发,再回到 IDE 中审查代码、提交 commit、执行 rebase。
安装
本文主要介绍在 macOS 和 Linux 系统上安装并使用原生 cc 的方法。
如果你想:
- Windows 系统上使用,需要额外配置,具体方法可以参考 《 Claude Code 终极版FAQ指南 》。
- 使用非 Anthropic API 格式的 API,如 Gemini API、OpenAI API,可以参考 Claude Code Router 项目
- 使用支持 Anthropic API 格式的非官方 API(如第三方中转、Kimi K2),可以通过配置环境变量
ANTHROPIC_BASE_URL
和ANTHROPIC_AUTH_TOKEN
实现。
准备
要使用 cc,你需要准备:
- 一个稳定的梯子
- Claude Pro 订阅的 Claude 账号
安装与代理配置
你可以使用下面的命令安装 cc:
1
npm install -g @anthropic-ai/claude-code
由于终端不走系统代理,如果你没有开全局代理或者 TUN 模式,需要为终端配置代理。切记一定要配置好代理,否则可能因为 IP 问题被封号(A 社封号相当严格)。
在终端执行以下命令,根据你的代理工具修改端口号:
1
2
3
export HTTPS_PROXY=http://127.0.0.1:6152
export HTTP_PROXY=http://127.0.0.1:6152
export ALL_PROXY=socks5://127.0.0.1:6153
如果不想每次都输入以上三条命令,也可以直接在 ~/.claude/settings.json
中配置:
1
2
3
4
5
6
7
{
"env": {
"HTTP_PROXY": "http://127.0.0.1:6152",
"HTTPS_PROXY": "http://127.0.0.1:6152",
"ALL_PROXY": "socks5://127.0.0.1:6153"
}
}
登录
整个登录流程如下:
- 运行 cc:
claude
- 首次运行,cc 会提示你选择主题,然后进入登录页面。
- 登录时选择 “Claude account with subscription”,使用订阅账号登录。
- cc 会自动打开浏览器让你登录 Claude 账号。如果在远端服务器上运行 cc,稍等一小会之后,cc 会给你一个临时链接,你可以在本地机器上用浏览器打开这个链接,登录 Claude 账号。在浏览器登录账号之后,屏幕上会显示一个授权码(code),把它粘贴到终端中并回车,即可完成远端服务器上 cc 的登录。
登录成功后,你可以直接在对话框中与 Claude 交互。不过,要实际在项目中高效地使用它编程,我们还需要先进行一番配置。
配置
要在项目中使用 cc,你需要先 cd
到项目根目录,然后再运行 claude
。在运行之前,我推荐先配置好项目的 CLAUDE.md
以及 MCP,这能极大增强 AI Agent 的能力。
CLAUDE.md
CLAUDE.md
是 Agent 的记忆文件,每次会话开始时都会自动载入上下文。你既可以在 cc 中直接使用 /init
生成,也可以在项目根目录下手动创建。
如果想自己动手,但又不知道从何写起,你可以参考官方最佳实践教程中推荐的 CLAUDE.md
内容:
- Common bash commands(常用 bash 命令)
- Core files and utility functions(核心文件、函数)
- Code style guidelines(编码规范)
- Testing instructions(测试指令)
- Repository etiquette (e.g., branch naming, merge vs. rebase, etc.)(仓库规范)
- Developer environment setup (e.g., pyenv use, which compilers work)(开发者环境配置)
- Any unexpected behaviors or warnings particular to the project(项目中的异常行为或者警告)
- Other information you want Claude to remember(其它你想要让 cc 记住的信息)
你还可以参考 Gemini CLI Repo 下的 GEMINI.md
,两者的作用是一样的。下文我也会分享我写 CLAUDE.md
的方法论和心得。
CLAUDE.md 支持项目级(在项目根目录)和系统级(在 ~/.claude/ 目录)两种配置。你可以把跨项目的规则写到系统级配置中。
MCP
MCP 的作用以及我推荐的一些 MCP 服务器我在 Cursor Vibe Coding 心得分享已经分享过,在这里就不再赘述。
在 cc 中,你同样可以为项目级(在项目根目录创建 .mcp.json
)和系统级(配置 ~/claude.json
)配置 MCP。
以下是一个配置示例:
1
2
3
4
5
6
7
8
9
10
11
12
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
},
"mcp-feedback-enhanced": {
"command": "uvx",
"args": ["mcp-feedback-enhanced@latest"]
}
}
}
你也可以使用 claude mcp add
命令来配置 MCP 服务器,具体可以参考官方文档:Model Context Protocol (MCP)。
配置好之后,你可以使用 claude mcp list
来检查 MCP 服务器连接状态。
实战技巧与心得
书写 CLAUDE.md
虽然可以直接使用 /init
一键生成,但我一般喜欢自己写 CLAUDE.md
,可以定制化程度和可玩性都更高。
在实践中,我摸索出一套 CLAUDE.md
模板结构:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 项目开发指南
## 工程师角色
你是一个【角色】,擅长【技术栈】。
### 工作流程
【工作流程】
### 要求
【要求】
### 技术栈要求
【项目技术栈】
## 项目架构概述
【项目架构】
## 常用命令
【常用命令】
## 编码规范
【编码规范】
---
【其它】
每个参数解释如下:
- 【角色】:为 AI 定义角色,比如“世界级的全栈工程师”、“世界级的前端工程师”
- 【技术栈】:大方向上的技术栈,比如 React、Python、Rust
- 【工作流程】:定义 AI 的工作流程。我在 Cursor Vibe Coding 心得分享中分享过一些工作流程,比如 RIPER5、基于任务拆解的工作流。
- 【要求】:你对 AI 的要求。比如”使用简体中文回复“、”一定要多使用 interactive_feedback 工具多向我反馈、报告工作以及下一步任务。“
- 【项目技术栈】:具体的技术栈,比如:
- 语言:Python 3.11
- 依赖管理:
uv
- 测试框架:
pytest
- 代码质量:
ruff
- 依赖管理:
- 配置管理:python-dotenv
- Web 框架:FastAPI
- 数据校验:Pydantic
- 语言:Python 3.11
- 【项目架构】:简单介绍项目架构,比如有哪些服务、前端是什么、后端是什么、它们怎么通信。也可以是文件夹目录说明
- 【常用命令】:项目中常用的命令及其含义。一定要有!一定要有!一定要有!如果没有 AI 会乱猜,执行一些奇怪的命令,很浪费时间和 token。比如:
- 在
frontend
目录下:npm run dev
:启动前端项目npm run build
:构建前端项目npm run lint
:执行 ESLint
- 在
backend
目录下:uv sync --all-groups
:更新依赖(包含开发用的所有依赖)uv run pytest
:运行测试
- 在
- 【编码规范】:定义编码规范。我一般会用 审美与提示词书写 中的方法写一套编码规范。
- 【其它】:其它想要添加的部分。比如,如果是一个前端项目,我会写一份 UI/UX 设计规范。
Plan mode
在 cc 中,连按两次 shift + tab
可以进入 Plan mode(规划模式)。在规划模式下,cc 会自动理解需求、搜集相关代码,然后做出一份行动计划,并根据行动计划执行。
简而言之,如果你还没有形成自己的工作流,Plan mode 是一个很好的起点。但如果你已有一套成熟的方法论,直接按自己的节奏来,效率可能更高。
上下文管理
在 Cursor Vibe Coding 心得分享中,我提到过,上下文管理是所有 AI 编程工具的核心。cc 也不例外。
除了常用的清空上下文窗口(/clear
)之外,cc 提供了强大的 /compact
命令。它能压缩当前上下文窗口中所有对话的内容,生成一份总结,并在一个全新的会话中载入总结,实现信息压缩、流转。
这个功能对于复杂的多阶段任务尤其有用。比如,一个需求需要被拆解成五个开发阶段。传统做法是,先制定一份开发计划,然后每个阶段都开启一个新会话,将计划放入上下文,并在提示词中指明当前进度与后续任务。
而有了 /compact
,工作流就变得更流畅:它会自动提炼当前会话的核心信息(如初始需求、任务进度等),带到下一个会话中。这个流程就简化为:
- 提出需求,让 AI 理解需求、拆解开发任务
/compact
,执行第一阶段任务- 确认第一阶段任务无误之后,
/compact
,继续执行第二阶段任务 - 确认第二阶段任务无误之后,
/compact
,继续执行第三阶段任务 - 以此类推,直到任务完成
用量查看
ccusage
是一个用于查看、监控 cc 用量的命令行工具。
1
2
3
4
5
6
7
8
# 安装 ccusage
npm install -g ccusage
# 比较常用的命令
ccusage # 查看每日用量
ccusage monthly # 查看每月用量
ccusage session # 查看每个项目的用量
ccusage blocks --live # 实时监控用量
更多用法可以参考官方文档。
目前 cc 的用量上限规则为:
- 一个 cc 用量窗口(session)持续5小时。也就是说,5小时重置一次用量。
- 用量窗口以整小时为单位。假设你 8:55 发送第一条消息,那么用量窗口为 8:00 - 13:00.
- Anthropic 会根据服务器负载来决定用户用量。对于 Claude Pro 用户,一般一个用量窗口可以用 $5-10
不过最近我收到一封来自 Anthropic 的邮件,他们将在八月底调整用量规则,在五小时重置的基础上引入每周使用限制。
Starting August 28, we’re introducing weekly usage limits alongside our existing 5-hour limits:
- Current: Usage limit that resets every 5 hours (no change)
- New: Overall weekly limit that resets every 7 days
- New: Claude Opus 4 weekly limit that resets every 7 days
- As we learn more about how developers use Claude Code, we may adjust usage limits to better serve our community.
中文翻译:从八月二十八日开始,我们将在现有5小时使用限制的基础上,引入每周使用限制:
- 当前:每5小时重置一次的使用限制(保持不变)
- 新增:每7天重置一次的总体每周限制
- 新增:每7天重置一次的 Claude Opus 4 每周限制 随着我们对开发者如何使用 Claude Code 了解更多,我们可能会调整使用限制,以便更好地服务我们的社区。
现在还不知道每周限制具体限多少,Anthropic 认为 ”Most Pro users can expect 40-80 hours of Sonnet 4 within their weekly rate limits.“(在新的每周限制下,大部分 Pro 用户一周可以使用 40-80 小时的 Sonnet 4)。具体影响有待观察,希望不要限得太死。
我强烈推荐在使用 cc 时,在另一个终端窗口运行 ccusage blocks --live
实时监控用量。这能帮你根据剩余用量动态调整任务预期——额度充裕时,放心让它执行复杂任务;额度见底时,则让它做一些简单任务,避免任务执行到一半因为用尽额度而中断。
其它奇怪玩法
在实践中,我发现 CLI 类 AI 编程工具(比如 cc、Gemini CLI)的用法并不仅限于编程。核心思想是,把它看作一个可以访问、修改你电脑上的文件,并且可以运行命令行工具的 AI Agent。基于这个想法,你可以发展出很多玩法。
比如,用 AI 写一份月总结:
1
claude -p "请你使用 `git log --author="$(git config user.name)"` 查看我这个月提交的所有 commit,并做一份月总结"
或者,cd
到 Obsidian Vault 文件夹下,让它可以访问、修改 Obsidian 笔记,或者搜索相关笔记并回答。
常用命令、快捷键汇总
常用命令
- 基础:
claude
:运行 ccclaude -c
:继续上一个会话claude -r
:继续之前的某一个会话(会进入一个窗口让你选择某个之前的会话)claude --dangerously-skip-permissions
:运行 cc,并进入 YOLO 模式(自动同意 Agent 的所有操作)
- MCP相关:
claude mcp add
:添加 MCP 服务器claude mcp list
:检查 MCP 服务器状态
- 检查 & 更新:
claude doctor
:检查 cc 状态claude update
:更新 cc
常用快捷键
ctrc + c
:- 按下一次 = 清空输入框
- 连按两次 = 退出 cc
esc
:- 在 AI 执行任务时,单击
esc
打断 AI - 双击
esc
:- 如果输入框中有内容,双击
esc
效果为清空输入框 - 如果输入框中没有内容,双击
esc
效果为跳到当前会话中某个之前的对话,从该处开始重新对话
- 如果输入框中有内容,双击
- 在 AI 执行任务时,单击
shift + tab
:用于状态切换- 默认为正常模式
- 使用一次切换至 auto-accept edit mode:自动同意 AI 编辑的操作
- 再使用一次切换至 plan mode:规划模式,用于写代码前的规划
- 再使用一次切回正常模式
ctrl + r
:切换到详细输出模式。可以看到 cc 具体读了哪些代码,具体的输出。不过,个人感觉也不是很详细,聊胜于无option + 回车
:换行
常用 slash 命令
/init
:为项目初始化一份CLAUDE.md
/clear
:清空所有上下文,开始新会话/compact
:压缩上下文并开始新会话。cc 会生成一份当前会话的总结,并将这份总结 作为下一个会话的开始/model
:/mcp
:查看当前 MCP 服务器状态/help
:查询所有可用 slash 命令
结语
我在这篇文章中分享了近期使用 cc 的一些心得和常用操作。实际上,cc 还有许多更高级的用法,比如自定义 slash command、Hooks、以及最近刚出的 Subagents。这些功能可以进一步扩展 cc 的能力,实现更自动化、更智能的开发流程。
目前我也在摸索这些功能的用法,后续如果我发现好玩的用法,我也会分享给大家。