Claude Code 基础入门到实战
目录
1、快速入门
基本介绍
Claude Code 是 Anthropic 推出的 AI 编程助手(ai coding agent)。它不是代码补全工具,而是一个可以自主读取代码库、编辑文件、运行命令、搜索网络、与外部服务交互的 Agent。你用自然语言描述任务,Claude Code 自主规划、执行、验证,你可以在任意环节介入调整方向。
注意区分两个概念:
Claude Code:Anthropic 推出的编程工具/框架,不绑定特定模型
Claude:Anthropic 提供的大模型,是 Claude Code 默认使用的后端模型。类比国内,智谱公司提供的 GLM-5.1 也可以作为 Claude Code 的后端模型
支持平台
核心能力
Claude Code 通过 agentic loop(智能体循环) 工作:收集上下文 → 执行操作 → 验证结果,反复迭代直到任务完成。
基本使用
官网:claude.com/product/claude-code
安装与启动
官方安装方式(不方面)
curl -fsSL https://claude.ai/install.sh | bash
推荐安装方式
前提条件:
您需要安装 Node.js 18 或更新版本环境
MacOS 用户推荐使用 nvm 方式安装 Nodejs 或 Homebrew 方式。不推荐直接安装包安装(后续可能会遇到权限问题)
Windows 用户还需安装 Git for Windows
进入命令行界面,安装 Claude Code
npm install -g @anthropic-ai/claude-code
检查安装版本
claude --version
启动:进入项目目录后运行 claude。
模型选择(后端大模型):
快速体验
安装配置完成后,进入一个空目录,运行 claude 启动,然后输入:
开发一个贪吃蛇游戏
Claude Code 会这样工作:
理解任务:大模型分析你的意图,确定需要创建一个 HTML + JavaScript 的贪吃蛇游戏
规划方案:决定创建哪些文件(比如 index.html、style.css、game.js),用什么技术方案
调用工具执行:
用
Write工具创建游戏文件用
Bash工具打开浏览器预览(如open index.html)
等待确认:在 Default 权限模式下,文件编辑和命令执行前会询问你确认
迭代优化:你可以继续提要求,比如"加个计分板"、"改成移动端适配",Claude Code 会基于已有代码继续修改
整个过程你只需要用自然语言描述需求,Claude Code 自主完成编码、运行、调试。这就是 agentic coding 的核心体验。
内置工具
Claude Code 的所有操作通过工具完成。你不需要手动调用这些工具,大模型会根据你的需求自动选择合适的工具来执行。了解它们的作用有助于你理解 Claude Code 在做什么。
提示
以下有些工具现在看不懂没关系,后面实际用到的时候自然就懂了。
文件操作
搜索
执行
网络
Agent 与任务
MCP 工具
MCP (Model Context Protocol) 是一种扩展机制,通过连接外部服务器,Claude Code 可以获得额外的自定义工具。比如配置了 pencil 服务器后就能使用设计相关的工具,MCP 工具以 mcp__服务器名__工具名 的格式命名。
权限模式
Claude Code 有四种权限模式,控制大模型在执行操作时的自由度,按 Shift+Tab 在四种模式间循环切换,底部状态栏会显示当前模式。
会话管理
每次在项目目录中运行 claude 都会开启一个会话,会话内的对话历史、文件变更都有记录,支持以下操作:
使用建议:
对话过程中发现 Claude Code 方向错了,用
/rewind回滚,再重新描述需求长时间对话后大模型开始"遗忘"之前的内容,用
/compact压缩一下想完全重新开始,用
/clear清空
记忆机制
Claude Code 有多种方式在不同会话之间保持记忆,确保每次新对话不需要从零开始。
CLAUDE.md — 你写的持久化指令
CLAUDE.md 是纯 Markdown 文件,内容在每次会话启动时自动注入到大模型的上下文中,你可以在里面写编码规范、项目架构说明、构建命令等,大模型每次对话都会遵守。
存放位置与作用域(按加载顺序排列,越后加载优先级越高):
加载规则:从当前目录向上遍历目录树,逐层加载,同一目录内,CLAUDE.local.md 排在 CLAUDE.md 之后。
我现在 ~/.claude/CLAUDE.md 中的内容:
# Global CLAUDE.md
## 文件写入规则
写文件时,分段写入,避免 Claude Code 调用大模型 API 超时。对于大文件,应拆分为多次 Edit/Write 调用,每次处理一部分内容。
## 搜索规则
需要搜索时,优先调用 MCP 中的搜索工具(如 `mcp__web-search-prime__web_search_prime`、`mcp__web-reader__webReader` 等),而不是使用内置的 WebSearch 工具。
## 技术方案推荐原则
推荐技术方案时,站在 AI 容易维护的角度来推荐,而不是站在人容易维护的角度。优先选择结构明确、模式统一、上下文自包含、AI 容易理解和修改的方案。
## 调试规则
修改 bug 时,必须使用 `/superpowers:systematic-debugging` 技能,遵循系统性调试流程:先找到根因再修复,不要凭猜测改代码。要多读相关代码,务必一次性改对,不要偷懒。
**系统性修复原则:** 找到根因后,不要只修复用户描述的单一场景。必须主动排查所有同类场景(相同模式的其他按钮、其他页面、其他流程分支),一次性全部修复,避免用户反复遇到同类问题。
## Git 规则
永远不要回退已经 git commit 提交的代码(包括 `git reset --hard`、`git rebase`、`git commit --amend` 等操作)。已提交的代码代表用户确认过的历史,只能向前推进,不能重写历史。
## 代码引用格式
返回代码文件或方法名时,使用相对路径格式(如 `backend/config.py:22` 或 `frontend/src/App.vue:335`),确保在 VSCode 中点击即可跳转到对应位置。
Auto Memory — 大模型自己写的记忆
大模型在工作过程中会自行判断哪些知识值得跨会话保留(比如调试经验、构建命令、你的偏好),自动写入记忆文件。
存储位置:
~/.claude/projects/<项目路径>/memory/
├── MEMORY.md # 索引文件
├── debugging.md # 调试相关笔记
├── api-conventions.md # API 设计决策
└── ... # 其他主题文件
MEMORY.md是索引文件,每次会话启动时自动加载主题文件(如
debugging.md)不在启动时加载,大模型需要时会用Read工具按需读取你可以说"记住 XXX"主动触发记忆写入,运行
/memory可以浏览和编辑所有记忆文件默认开启,如需关闭可在
settings.json中设置autoMemoryEnabled: false,或设置环境变量
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1
上下文窗口与压缩
上下文窗口是大模型一次能处理的信息总量,包括:系统指令、CLAUDE.md、记忆文件、对话历史、文件内容、命令输出等。
自动压缩默认开启,当上下文使用率达到约 95% 时自动触发,压缩后保留以下内容:
你的需求和意图
关键技术概念和决策
已修改的文件和重要代码片段
CLAUDE.md(从磁盘重新注入,不会丢失)
Auto Memory(从磁盘重新注入,不会丢失)
(原文此处为一幅上下文窗口示意图)
可以通过配置上面的环境变量来修改阈值:环境变量 - Claude Code Docs
自定义压缩行为:
/compact:手动触发压缩/context:查看当前上下文使用情况在
~/.claude/settings.json的env字段中配置:DISABLE_AUTO_COMPACT:设为"1"关闭自动压缩,但保留手动/compactDISABLE_COMPACT:设为"1"关闭所有压缩,包括手动的CLAUDE_AUTOCOMPACT_PCT_OVERRIDE:调整触发阈值(1-100),比如设为"50"表示上下文使用 50% 时就触发压缩,高于默认值约 95% 的设置不会生效CLAUDE_CODE_AUTO_COMPACT_WINDOW:设置用于自动压缩计算的上下文容量(token 数),标准模型默认 200K,扩展上下文模型默认 1M,设一个较小的值可以更早触发压缩
配置示例(GLM-5.1 在 80% 时自动压缩):
{
"env": {
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000"
}
}
说明:
CLAUDE_CODE_AUTO_COMPACT_WINDOW设为"200000"是因为 GLM-5.1 不是原生 Claude 模型,Claude Code 无法自动识别其上下文窗口大小,需要手动指定(200K token)CLAUDE_AUTOCOMPACT_PCT_OVERRIDE设为"80"表示上下文使用 60% 时触发压缩
完整环境变量参考:环境变量 - Claude Code Docs
状态行(Status Line)
状态行是 Claude Code 底部的可自定义栏,可以实时显示上下文使用情况、会话成本、Git 状态等信息。它通过运行你配置的 shell 脚本工作:Claude Code 把当前会话的 JSON 数据通过 stdin 传给你的脚本,脚本提取需要的信息后输出到 stdout,Claude Code 就会显示你的脚本输出的内容。
最简单的配置方式: 直接在 Claude Code 中运行 /statusline 命令,用自然语言描述你想显示什么,Claude Code 会自动生成脚本并配置好。
/statusline 显示模型名称、上下文使用百分比和进度条
手动配置: 在 ~/.claude/settings.json 中添加 statusLine 字段,指向一个 shell 脚本:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline-command.sh"
}
}
Claude Code 把当前会话的 JSON 数据通过 stdin 传给脚本,脚本通过 jq 提取需要的字段并格式化输出。
以下是我的状态栏脚本(~/.claude/statusline-command.sh),显示模型名称、工作目录、Git 分支、上下文使用量(带颜色):
注意
记得执行 chmod +x ~/.claude/statusline-command.sh
#!/bin/bash
input=$(cat)
model=$(echo "$input" | jq -r '.model.display_name // .model.id // "unknown"')
# 去掉模型名中的 [variant] 后缀,比如 "GLM-5.1[1m]" → "GLM-5.1"
model_display=$(echo "$model" | sed 's/\[.*//')
cwd=$(echo "$input" | jq -r '.workspace.current_dir // empty')
total_input=$(echo "$input" | jq -r '.context_window.total_input_tokens // empty')
window_size=$(echo "$input" | jq -r '.context_window.context_window_size // empty')
# 非 Anthropic 模型需要手动指定上下文窗口大小
case "$model" in
GLM-*) window_size=200000 ;;
esac
# 显示最后两级目录
if [ -n "$cwd" ]; then
dir_display=$(echo "$cwd" | sed 's|.*/\([^/]*/[^/]*\)$|\1|')
else
dir_display="?"
fi
# 获取 Git 分支
branch=$(echo "$input" | jq -r '.worktree.branch // empty')
if [ -z "$branch" ]; then
branch=$(git --no-optional-locks -C "$cwd" rev-parse --abbrev-ref HEAD 2>/dev/null || true)
fi
# 格式化 token 数量(1000 → 1.0k, 1000000 → 1.0M)
format_tokens() {
local n="$1"
if [ -z "$n" ] || [ "$n" = "null" ]; then echo "?"; return; fi
if [ "$n" -ge 1000000 ] 2>/dev/null; then
printf "%.1fM" "$(echo "scale=1; $n / 1000000" | bc)"
elif [ "$n" -ge 1000 ] 2>/dev/null; then
printf "%.1fk" "$(echo "scale=1; $n / 1000" | bc)"
else
echo "$n"
fi
}
used_fmt=$(format_tokens "$total_input")
max_fmt=$(format_tokens "$window_size")
# 拼装输出
parts="${model_display} | ${dir_display}"
if [ -n "$branch" ]; then
parts="${parts} | ${branch}"
fi
# 根据使用率显示颜色:<65% 绿色, 65%-85% 黄色, ≥85% 红色
if [ -n "$total_input" ] && [ "$total_input" != "null" ] && [ -n "$window_size" ] && [ "$window_size" -gt 0 ] 2>/dev/null; then
used_pct=$(echo "scale=1; $total_input * 100 / $window_size" | bc)
pct_int="${used_pct%.*}"
[ -z "$pct_int" ] && pct_int="0"
if [ "$pct_int" -ge 85 ] 2>/dev/null; then
color="\033[31m" # 红色 - 紧急
elif [ "$pct_int" -ge 65 ] 2>/dev/null; then
color="\033[33m" # 黄色 - 警告
else
color="\033[32m" # 绿色 - 正常
fi
reset="\033[0m"
ctx_display="${used_fmt}/${max_fmt}"
parts="${parts} | ${ctx_display} ${color}${pct_int}%${reset}"
fi
echo -e "$parts"
效果类似:GLM-5.1 | claude-code-demo | main | 45.2k/200.0k 22%(22% 为绿色,超过 65% 变黄,超过 85% 变红)。
JSON 数据中常用字段:
model.display_name:当前模型名称context_window.total_input_tokens:已使用的上下文 token 数context_window.context_window_size:上下文窗口总大小context_window.used_percentage:上下文使用百分比workspace.current_dir:当前工作目录worktree.branch:当前 Git 分支
关闭状态行:运行 /statusline delete 或从 settings.json 中删除 statusLine 字段。
完整配置参考:自定义状态行 - Claude Code Docs
扩展机制
Claude Code 提供三种扩展机制,分别解决不同层面的定制需求:
Skill:定义可复用的工作流和操作指令。本质是一个
SKILL.md文件,大模型根据技能名字和描述自动调用,或你用/skill-name手动调用,技能名字和描述始终加载到上下文,但完整内容会按需加载,比 CLAUDE.md 更省上下文。Plugin:打包 Skill、Agent、Hook、MCP Server 等组件的容器,通过 Marketplace 安装和管理,插件中的 Skill 使用命名空间(如
/plugin-name:skill-name)避免冲突。Hooks:在特定生命周期事件(如工具调用前、文件编辑后、会话启动时)自动执行脚本,Hooks 配置了就一定会执行。
三者的关系:Plugin 是容器,可以包含 Skill 和 Hook,Skill 和 Hook 也可以独立使用,不依赖 Plugin。
2、Skill 机制
什么是 Skill
Skill 是扩展 Claude Code 能力的核心机制,本质上是一个 目录 + SKILL.md 文件,包含 YAML frontmatter(元数据)+ Markdown 内容(指令)。大模型在需要时自动加载,或你用 /skill-name 手动调用。
与 CLAUDE.md 的区别:
经验法则:
如果内容是"每次会话都该知道的事实",放 CLAUDE.md。
如果是"需要按特定步骤执行的操作流程",放 Skill。
加载机制(两阶段)
Skill 的加载分为两个阶段,这是它比 CLAUDE.md 节省上下文的核心设计:
会话启动时,Claude Code 扫描所有 Skill 目录,把每个 Skill 的
name(名字)和description(描述)加载到大模型上下文。这相当于一个"能力清单",让大模型知道有哪些 Skill 可用。描述过长会被截断。当 Skill 被实际调用(用户输入
/skill-name或大模型自动判断需要使用),完整的SKILL.md内容才会加载到对话中,加载后内容在本次会话内持续存在。
文件结构
my-skill/
├── SKILL.md # 主指令文件(必需)
├── template.md # 模板文件
├── scripts/
│ └── helper.py # 辅助脚本
└── examples/
└── sample.md # 示例输出
SKILL.md 的基本格式:
---
name: my-skill
description: 这个 Skill 做什么,什么时候使用
---
具体指令内容...
存放位置与作用域
调用方式
自动调用
大模型根据 description 判断是否需要使用某个 Skill,当用户的请求匹配 Skill 的描述时,大模型自动调用。
手动调用
在输入框中输入 /skill-name,后面可以跟参数:
/write-article "Claude Code 入门"
/fix-bug 登录页面点击提交按钮后没有反应
实用示例
示例 1:写文章 Skill
~/.claude/skills/write-article/SKILL.md:
---
name: write-article
description: 按照指定风格和结构撰写技术文章
arguments:
- topic
---
# 撰写技术文章
主题:$topic
## 写作步骤
1. **确定大纲**:先列出文章的章节结构,用编号列出每个章节的标题和要点
2. **撰写正文**:按大纲逐节撰写,每节控制在合理长度
3. **审校优化**:检查逻辑连贯性、表述准确性、格式一致性
## 格式要求
- 一级标题用 `##`,不要用 `#`(留给文件标题)
- 代码块标注语言类型
- 对比内容用表格,说明内容用列表
- 不要使用模糊表述,每个概念都要有明确定义
使用方式:/write-article "Claude Code 入门",参数会替换 $topic。
示例 2:修改 Bug Skill
.claude/skills/fix-bug/SKILL.md:
---
name: fix-bug
description: 系统性修复 Bug,先定位根因再修复,并排查同类问题
---
# 系统性 Bug 修复流程
Bug 描述:$ARGUMENTS
## 步骤
1. **复现问题**:根据上述 Bug 描述,确认复现条件和具体表现
2. **定位根因**:
- 用 Grep/Glob 搜索相关代码
- 用 Read 逐层阅读相关文件,理解代码逻辑
- 不要凭猜测改代码,必须找到确切的根因
3. **修复问题**:针对根因做最小改动,不要顺手重构无关代码
4. **排查同类**:搜索项目中是否存在相同模式的其他位置,一次性全部修复
5. **验证修复**:运行相关测试或手动验证 Bug 已解决
## 原则
- 每次只修一个 Bug,不要混入其他改动
- 改完必须验证,不能假设改了就好了
- 如果发现同类问题,全部列出并修复,不要只修用户报告的那一处
使用方式:/fix-bug 登录页面点击提交按钮后没有反应,Bug 描述会作为 $ARGUMENTS 传入。也可以直接告诉大模型"修复 XXX Bug",大模型根据描述自动调用此 Skill。
完整参考:Skills - Claude Code Docs
3、Hooks 机制
什么是 Hooks
Hooks(钩子)是用户定义的脚本,在 Claude Code 的特定生命周期事件发生时自动执行,Hooks 提供的是确定性控制,你配置了它,它就一定会执行。
配置结构
Hooks 在 settings.json 的 hooks 字段中配置,三层嵌套:
{
"hooks": {
"<事件名>": [
{
"matcher": "匹配规则",
"hooks": [
{
"type": "command",
"command": "脚本路径或命令",
"timeout": 60
}
]
}
]
}
}
配置位置:
常用事件
Hooks 支持近 30 个生命周期事件,以下是常用的:
匹配规则(matcher)
matcher 字段过滤 Hook 在什么情况下触发:
注
上表第 3 行的竖线字符在原始 PDF 中未正常渲染(字体缺字),此处按「反引号包裹的 | 符号」还原。
对于工具事件(PreToolUse、PostToolUse 等),matcher 匹配的是工具名。
对于 SessionStart,匹配的是会话启动方式(startup、resume、clear、compact)。
实用示例
Hook 脚本通过 stdin 接收 JSON 数据(包含会话信息、工具参数等),通过退出码控制行为。
以下示例由简到复杂,逐步讲解输入输出机制。
示例 1:编辑文件后自动格式化
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}
]
}
]
}
}
Claude Code 用 Edit 或 Write 修改文件后触发 PostToolUse 事件,Hook 通过 stdin 收到 JSON 数据,其中 tool_input.file_path 是被修改的文件路径,jq 提取后交给 Prettier 格式化。脚本正常执行完毕(退出码 0),操作继续。
什么是 jq:jqlang.org,一个轻量级且灵活的命令行 JSON 处理器。
stdin JSON 中常用的字段:
示例 2:阻止修改受保护文件
脚本 .claude/hooks/protect-files.sh:
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
PROTECTED_PATTERNS=(".env" "package-lock.json" ".git/")
for pattern in "${PROTECTED_PATTERNS[@]}"; do
if [[ "$FILE_PATH" == *"$pattern"* ]]; then
echo "已阻止:$FILE_PATH 匹配受保护模式 '$pattern'" >&2
exit 2
fi
done
exit 0
配置:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/protect-files.sh"
}
]
}
]
}
}
这个示例演示了退出码 2 的阻止效果。
脚本先用 cat 读取 stdin 的完整 JSON,再从 tool_input.file_path 提取文件路径。如果路径匹配受保护模式(如 .env),就向 stderr(>&2)输出原因并 exit 2,Claude Code 收到退出码 2 后取消操作,并将 stderr 内容反馈给大模型,让它知道为什么被阻止。如果不在保护列表中,exit 0 正常放行。
三个退出码的含义:
示例 3:会话启动时注入提醒
{
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "echo '提醒:使用 Bun 而不是 npm,提交前运行 bun test'"
}
]
}
]
}
}
SessionStart 事件的 stdout 内容会注入到大模型上下文,相当于动态的 CLAUDE.md。echo 输出的提醒在每次会话启动时自动注入,让大模型始终知道项目使用 Bun。这个 Hook 不需要处理 stdin,只利用 stdout 的注入能力。
示例 4:桌面通知
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code 完成了任务\" with title \"Claude Code\"'"
}
]
}
]
}
}
大模型完成响应后发送 macOS 桌面通知,适合长时间任务完成后提醒。这个 Hook 既不读 stdin 也不写 stdout,只是在 Stop 事件时执行一个系统命令。
示例 5:压缩后重新注入上下文
{
"hooks": {
"SessionStart": [
{
"matcher": "compact",
"hooks": [
{
"type": "command",
"command": "echo '压缩后提醒:当前项目使用 Bun 构建,不要用 npm'"
}
]
}
]
}
}
SessionStart 的 matcher 设为 compact 表示仅在上下文压缩触发的新会话中执行,用于补充压缩后可能丢失的关键信息。
示例 6:自动批准特定权限请求
{
"hooks": {
"PermissionRequest": [
{
"matcher": "ExitPlanMode",
"hooks": [
{
"type": "command",
"command": "echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PermissionRequest\", \"decision\": {\"behavior\": \"allow\"}}}'"
}
]
}
]
}
}
当退出码为 0 时,Hook 的 stdout 如果是合法 JSON,Claude Code 会解析其中的结构化指令:
continue: false:停止当前操作stopReason:停止原因systemMessage:给用户的警告信息hookSpecificOutput.permissionDecision:PreToolUse 事件的权限决定(allow/deny/ask)hookSpecificOutput.decision.behavior:PermissionRequest 事件的决定(allow/deny)
本例中,stdout 输出 JSON 指定 decision.behavior: "allow",自动批准 ExitPlanMode 的权限请求,跳过弹窗确认。
完整参考:Hooks - Claude Code Docs
4、Plugin 机制
什么是 Plugin
Plugin(插件)是一个自包含的目录,打包了多种组件来扩展 Claude Code 的功能。一个插件可以包含:
插件通过 Marketplace(市场) 分发和安装,支持版本管理。
目录结构
my-plugin/
├── .claude-plugin/
│ └── plugin.json # 清单文件(可选)
├── skills/ # Skill(子目录中的 SKILL.md)
├── agents/ # 子 Agent 定义
├── hooks/
│ └── hooks.json # Hook 配置
├── .mcp.json # MCP 服务器定义
├── .lsp.json # LSP 服务器配置
├── settings.json # 插件默认设置
├── scripts/ # Hook/工具脚本
└── bin/ # 可执行文件,加入 PATH
注意
只有 plugin.json 放在 .claude-plugin/ 目录内,其他所有目录都在插件根目录下。
清单文件(plugin.json)
.claude-plugin/plugin.json 定义插件的元数据和组件路径:
{
"name": "my-plugin",
"version": "1.0.0",
"description": "插件简介",
"author": { "name": "作者名" },
"homepage": "https://github.com/...",
"license": "MIT",
"dependencies": ["other-plugin"]
}
主要字段:
name(必需):插件唯一标识,kebab-case 格式version:语义版本号dependencies:依赖的其他插件userConfig:用户可配置的值,启用插件时提示输入
Marketplace(市场)
Marketplace 是插件的分发渠道。
三类市场
管理命令
/plugin marketplace add <repo> # 添加市场
/plugin marketplace list # 查看所有市场
/plugin install <name> # 从市场安装插件
/plugin update <name> # 更新插件
/plugin uninstall <name> # 卸载插件
/plugin list # 查看已安装插件
市场来源类型
github:GitHub 仓库directory:本地目录git:Git 仓库npm:npm 包url:远程 URL
配置方式
settings.json 中启用/禁用插件
{
"enabledPlugins": {
"code-review@claude-plugins-official": true,
"superpowers@claude-plugins-official": true,
"frontend-design@claude-plugins-official": false
}
}
格式为 plugin-name@marketplace-name,设为 true 启用,false 禁用。
注册市场
{
"extraKnownMarketplaces": {
"my-team-plugins": {
"source": {
"source": "github",
"repo": "my-org/claude-plugins"
}
},
"local-plugins": {
"source": {
"source": "directory",
"path": "/path/to/plugins"
}
}
}
}
安装作用域
实际配置示例
以下是一个完整的 settings.json 插件配置示例:
{
"enabledPlugins": {
"frontend-design@claude-plugins-official": false,
"code-review@claude-plugins-official": true,
"code-simplifier@claude-plugins-official": true,
"skill-creator@claude-plugins-official": false,
"playwright@claude-plugins-official": false,
"security-guidance@claude-plugins-official": false,
"rust-analyzer-lsp@claude-plugins-official": false,
"chrome-devtools-mcp@claude-plugins-official": false,
"superpowers@claude-plugins-official": true
},
"extraKnownMarketplaces": {
"zai-coding-plugins": {
"source": {
"source": "directory",
"path": "/Users/dadudu/.npm/_npx/2f024689b4d0d3b0/node_modules/@z_ai/coding-helper/zai-coding-plugins"
}
},
"claude-plugins-official": {
"source": {
"source": "github",
"repo": "anthropics/claude-plugins-official"
}
},
"langchain-skills": {
"source": {
"source": "github",
"repo": "langchain-ai/langchain-skills"
}
}
}
}
说明:
enabledPlugins中启用了code-review、code-simplifier、superpowers三个插件,其余保持禁用extraKnownMarketplaces注册了三个市场:zai-coding-plugins(智谱本地目录)、claude-plugins-official(官方 GitHub 仓库)、langchain-skills(LangChain 社区仓库)
完整参考:Plugins - Claude Code Docs
5、常用命令
输入 / 即可看到所有可用命令的完整列表。以下按类别整理常用命令。
会话管理
/recap 与 /compact 的区别
/recap 只是生成一条摘要让你回顾当前会话做了什么,对话内容原封不动,上下文不会释放。/compact 会把完整对话历史压缩成精简摘要来替换原文,真正释放上下文窗口空间。简单说:想回顾进度用 /recap,对话太长快满了用 /compact。
记忆与上下文
权限与安全
配置与诊断
界面与显示
TUI 是什么?
TUI(Terminal User Interface,终端用户界面)指在终端里绘制完整的图形界面。Claude Code 提供两种模式:
default:普通 CLI 模式,文字逐行滚动输出,和传统终端一样fullscreen:TUI 全屏模式,占满终端窗口,有独立的布局区域,不会上下滚动闪烁,适合长时间使用
通过 /tui fullscreen 切换到全屏模式,或在 settings.json 中设置 "tui": "fullscreen"。
开发工作流
什么时候用 /goal?
不用 /goal,Claude Code 也是你给一次提示它做一轮,你检查结果后再决定要不要继续。/goal 的作用是把"你检查 → 你再提示"这个循环自动化——设一个终止条件(如 /goal 所有测试通过),Claude Code 会自己改完一轮、跑测试、没过就继续改,直到条件满足才停。适合需要反复迭代、不确定要几轮的场景(修测试、调样式、性能优化)。一轮对话就能搞定的任务不需要用它。
插件与 MCP
代码审查与验证
任务管理
快捷前缀
完整命令参考:Commands - Claude Code Docs
6、Claude Code 常用插件和技能
官方推荐:claude.com/plugins
社区 Skill:skills.sh
先安装插件市场:
claude plugin marketplace add anthropics/claude-plugins-official
FrontendDesign
生成独具特色、生产级的前端界面,摆脱千篇一律的 AI 设计风格。该插件让 Claude 能够创建具有大胆美学选择、独特字体与配色方案、高冲击力动画以及情境感知视觉细节的精良代码。插件会在编码前建立设计框架——明确用途、目标受众及特定美学方向(粗野主义、极繁主义、复古未来风、奢华感、趣味性等),刻意规避系统默认字体、程式化紫色渐变和模板化组件等常见模式。
核心设计维度包括:通过非常规字体组合实现的深思熟虑的排版,经过编排的动效与滚动触发交互,采用不对称布局和破格元素的空间构成,以及通过渐变、纹理和分层效果打造的视觉层次。
claude plugin install frontend-design@claude-plugins-official
Superpowers
Superpowers 是一套综合性技能框架,旨在教授 Claude 结构化软件开发方法。该框架提供可组合的技能模块,涵盖测试驱动开发(TDD)、系统化调试、头脑风暴、内置代码审查的代理驱动开发,以及创建新技能的能力。插件强制实施严谨的实践规范:要求测试必须先失败再实现的"红-绿-重构"TDD 循环;包含根本原因调查的四阶段调试方法;以及在编码前通过苏格拉底式研讨完善需求的流程。
claude plugin install superpowers@claude-plugins-official
Context7
Context7 是一款 MCP 服务器,它能将最新、版本专属的文档和代码示例直接注入你的提示词中。它解决了大型语言模型(LLM)的常见问题:训练数据过时导致虚构的 API 接口和已弃用的代码模式。不同于依赖陈旧信息,Context7 直接从源代码仓库获取最新文档。该插件提供两大核心工具:resolve-library-id(用于将库名称匹配至 Context7 兼容标识符)和 query-docs(用于检索特定库的文档)。你甚至可以在提示词中指定版本号来锁定具体版本。使用方法:只需在需要最新文档的任意提示词中添加 "use context7"。例如:"创建一个检查 cookie 中有效 JWT 的 Next.js 中间件。use context7" 或 "配置 Cloudflare Worker 脚本以缓存 JSON API 响应。use context7"。你还可以通过 "use library /supabase/supabase for API and docs" 精确指定库文件。
claude plugin install context7@claude-plugins-official
CLAUDE.md Management
保持项目记忆的新鲜与高效。该插件提供工具来审核 CLAUDE.md 文件质量并捕捉会话学习成果,确保 Claude 始终拥有在代码库中高效工作所需的上下文环境。claude-md-improver 技能会扫描您的代码库中的所有 CLAUDE.md 文件,根据质量标准(命令、架构、注意事项、简洁性)进行评估,并生成包含评分和等级的质量报告。随后,它会根据发现的不足提出针对性的补充建议。
/revise-claude-md 命令帮助您在会话结束时记录学习成果——发现的 bash 命令、遵循的代码模式、遇到的环境异常——并建议更新相应的 CLAUDE.md 或 .claude.local.md 文件。
使用方法:
输入 "audit my CLAUDE.md files" 或 "check if my CLAUDE.md is up to date" 触发审核功能
在富有成效的会话后运行
/revise-claude-md来记录新见解插件将以差异对比形式展示建议修改内容,仅在获得您批准后才会应用更改
claude plugin install claude-md-management@claude-plugins-official
Playwright
Playwright MCP 使 Claude 能够通过结构化的无障碍数据而非截图来自动化浏览器交互。这提供了快速、轻量级的浏览器自动化,无需依赖视觉模型——Claude 直接与页面的无障碍树协作,实现确定性和可靠的交互。
主要功能包括:导航到 URL、点击元素、填写表单、处理文件上传、管理浏览器对话框、截图、生成 PDF 以及运行自定义的剧作家脚本。服务器还提供标签页管理、网络请求检查、控制台消息检索以及全面的测试断言工具,用于端到端测试工作流。
使用方法:自然地要求 Claude 执行浏览器任务。可以尝试以下提示,如"导航到 example.com 并截图"、"用用户名 test@email.com 填写登录表单"、"点击提交按钮并等待确认消息"或"运行一个端到端测试,验证结账流程是否正常工作"。Claude 将使用适当的浏览器自动化工具来完成这些任务。
claude plugin install playwright@claude-plugins-official
Skill Creator
Skill Creator 是一套用于开发、测试和迭代 Claude 代码技能的综合工具包。它提供四种操作模式——创建(Create)、评估(Eval)、改进(Improve)和基准测试(Benchmark)——引导您完成从初始概念到优化、生产就绪技能的完整开发生命周期。
底层由四个可组合的智能体处理专项任务:执行器(Executor)根据评估提示运行技能,评分器(Grader)根据预设标准评估输出结果,比较器(Comparator)对技能不同版本进行盲测 A/B 对比,分析器(Analyzer)则基于测试结果提出针对性改进建议。这些智能体共同实现了严谨的数据驱动型技能优化。
该插件还包含实用脚本,用于初始化技能、验证配置、准备评估用例,以及通过方差分析汇总基准测试结果——让您能够以统计学置信度衡量技能表现。
使用方法:输入指令 /skill-creator 并选择模式。可尝试如下提示:"创建一个审查 PR 安全漏洞的新技能"、"对我的代码审查技能运行评估"、"根据这些测试用例改进我的部署技能"或"对我的技能进行 10 次基准测试并显示方差"。交互式工作流将引导您完成需求收集、测试用例创建和迭代优化全过程。
claude plugin install skill-creator@claude-plugins-official
find-skill
这个技能能帮助您发现并安装来自开放智能体技能生态系统的技能。
npx skills add https://github.com/vercel-labs/skills --skill find-skills
7、Codex 常用功能介绍
本文介绍 Codex App 常用功能的作用、适用场景和使用建议。
1. 权限模式
权限模式决定 Codex 能不能直接执行命令、修改文件、访问网络,以及遇到风险操作时由谁来审批。在 Codex App 里,常见选择可以按下面理解:
2. 查看额度
Codex App 的额度与上下文、速率限制和你的 ChatGPT 套餐有关。
最常用的查看方式是:
输入
/状态进行查看在 设置 > 剩余用量 中查看
3. 计划模式
计划模式用于先理清需求,再动手执行。它适合复杂、不确定或风险较高的任务,例如迁移框架、重构核心模块、排查疑难 bug、设计多阶段实现方案。
使用方式:
输入
/计划通过输入框附近的模式入口切换到计划模式
计划模式的价值是减少误改。它把"理解问题"和"修改代码"分开,尤其适合你还没有完全确定方案时使用。
4. 目标模式
目标模式让 Codex 围绕一个目标工作,直到完成、暂停或需要更多输入。它适合多步骤、长时间、需要持续检查完成条件的任务。
使用方式:
输入
/目标通过输入框附近的模式入口切换到追求目标模式
好的目标应该包含明确结果和验收标准,例如:
把这个项目迁移到 TypeScript,要求 strict mode 编译通过,不能留下显式 any。
目标模式启动后,App 通常会在输入框上方显示目标进度,并提供暂停、恢复、编辑、清除等控制。
5. 侧边聊天
输入 /侧边,在当前会话旁边临时开一个聊天窗口,用来提问、确认状态或让 Codex 解释当前思路,侧边聊天会继承原会话的上下文,所以 Codex 知道你们刚才在做什么,常见用途:
询问进度:例如“现在做到哪一步了?”“还剩什么没完成?”
解释当前修改:例如“为什么要改这个文件?”“这个方案有什么风险?”
确认小决策:例如“这里用 A 库还是 B 库更合适?”但不让主任务立刻偏航。
临时追问:例如让 Codex 解释一个术语、总结当前上下文、整理下一步。
侧边聊天不会新开一个对话(不会出现在对话记录里)。
6. 派生功能
输入 /派生,会从当前会话分叉出一个新会话,和侧边聊天一样,派生出来的新会话也会继承原会话里的上下文。
它适合在"已有上下文还想复用,但接下来想换一个方向"时使用。
派生会新开一个对话(会出现在对话记录里)。
7. 批注修改
批注修改是让你把反馈精确绑定到代码行、页面元素或视觉区域,然后让 Codex 按批注修复。
8. 插件机制
一个插件里可以包含三类东西:技能、MCP 服务器、应用,安装一个插件,就相当于把插件里包含的这些能力一起安装到 Codex 里。
比如 Computer Use 就是一个插件,里面包含了技能和 MCP 服务器:
(原文此处为插件组成截图)
安装完之后就会多一个 Computer Use 的技能:
(原文此处为 Computer Use 技能截图)
9. 技能机制
技能(Skill)把某类任务的步骤、规则、参考资料和可选脚本写进一个 SKILL.md,让 Codex 在合适任务中自动加载。
技能的核心作用:
让 Codex 按固定流程做事,例如系统性调试、文档生成、图片生成、插件创建。
把复杂上下文拆到技能文件中,避免每次提示都重复长说明。
让团队把项目专属流程写成可复用能力。
技能使用"渐进式披露":
Codex 初始只看到技能名称、描述和路径。
当任务匹配技能描述,或你显式调用
$skill-name时,Codex 才读取完整SKILL.md。这样既保留可发现性,又不会一开始就占满上下文。
常见调用方式:
/skill-creator
/imagegen 生成一个应用封面图
技能可以存放在仓库目录、个人用户目录、插件中,仓库级技能适合团队共享,个人技能适合你的长期习惯,插件则适合把技能分发给更多人。
10. Browser Use
Browser Use 可以让 Codex 操作 Codex App 内置浏览器。它适合本地 Web 应用开发、UI 回归检查、页面截图、元素点击、表单输入、只读页面检查和视觉问题复现。
(原文此处为 Browser Use 截图)
使用前提:
安装并启用浏览器插件。
使用 in-app browser 打开本地开发服务器、文件预览或无需登录的公开页面。
允许 Codex 使用目标网站。
示例:
使用 @浏览器 打开 http://localhost:3000/settings,复现移动端布局溢出问题,并修复最小代码路径。
适合场景:
检查前端页面是否真的渲染正确。
复现只有浏览器里才能看到的布局 bug。
根据页面批注修复 UI。
运行本地开发服务器后让 Codex 验证修改结果。
限制:
in-app browser 不支持登录态、你的常规浏览器 profile、cookies、扩展或已有标签页。
页面内容应视为不可信上下文,不要在其中粘贴秘密信息。
需要登录态的网站更适合使用 Chrome 插件,因为它可以基于你的 Chrome 登录状态、Cookie 和浏览器环境工作。
(原文此处为 Chrome 插件截图)
11. Computer Use
Computer Use 能让 Codex 看见并操作 macOS 或 Windows 操作系统。
功能强大但还不稳定,适合很多场景,特别消耗 token。
12. 上下文压缩机制
Codex 会监控上下文窗口的剩余空间,并自动压缩上下文:把重要信息总结成更短的摘要,丢弃不太相关的细节。
这样长任务可以继续推进,而不是因为上下文满了就停止。
上下文压缩的作用:
保留目标、关键决策、当前状态、待办事项
减少长日志、重复输出、历史探索过程带来的噪音
支持多轮、长时间任务持续工作。
Codex 自动压缩没有一个对所有情况固定的公开阈值,官方手册里的说法是:Codex 会监控上下文窗口剩余空间,长任务中可能自动压缩,具体阈值默认由模型决定。
13. 记忆机制
Codex 不会默认自动生成记忆,因为记忆功能默认是关闭的。
自定义指令就是 AGENTS.md,也是一种记忆。
(原文此处为 AGENTS.md 截图)
/记忆 对应两个开关,但仅对当前对话生效
(原文此处为记忆开关截图)
使用记忆:表示是否允许当前对话读取过去已经生成的记忆(前提是你要开启了记忆机制)。
生成记忆:表示是否允许当前 Codex 根据当前对话去生成记忆(前提是你要开启了记忆机制)。
另外,若套餐额度接近限制,记忆生成可能会跳过,以节省使用量。
14. 桌面宠物
桌面宠物(Codex pets),能以浮动在桌面的方式展示当前 Codex 工作状态,让你在使用其他应用时也能快速看到任务是否运行、等待输入或需要审查。
输入框中输入 /宠物 就可以打开宠物。
也可以选择不同的宠物或创建自己的宠物。
(原文此处为桌面宠物截图)