Claude Code 入门:使用方式与功能介绍

Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手,可以直接在终端中与 Claude 进行交互,帮助你完成代码编写、调试、重构等开发任务。

不过它的能力远不止于此。除了基础的对话和代码操作,Claude Code 还提供了子代理、插件、技能、钩子、MCP 等扩展机制,可以深度定制你的 AI 编程工作流。

本文是 Claude Code 系列的第一篇,主要介绍它的整体功能和核心概念,帮你建立一个全局认识。后续文章会深入到具体的实战场景。

使用方式

Claude Code 有三种使用方式:桌面版应用、Web 版本、终端版本。本文主要介绍终端版本的使用。

桌面版应用

桌面版除了终端功能外,还支持屏幕截图、共享窗口、语音输入等功能,适合不想折腾终端的用户。

Claude Code Web

Web 版可以实现本地与云端的混合开发,这个会在后续文章中单独介绍。

终端版本

终端版是最常用的方式,下面介绍具体的安装和使用步骤。

1. 注册账号

首先需要注册 Claude.ai(推荐)或 Claude Console 账户,并订阅 Pro 或 Max 计划。虽然也支持按 token 付费,但对于日常开发来说并不划算。

2. 安装 Claude Code

安装方式有三种,按个人习惯选择即可:

  • Native Install
  • Homebrew
  • NPM

我使用的是 NPM 方式安装。

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

3. 网络配置

这一步很重要。Claude Code 对网络稳定性要求较高,风控也比较严格,网络不稳定可能导致账号被封。

无论使用哪种 IDE,都需要在终端设置中配置好网络环境。以 WebStorm 为例,在终端的环境变量设置中进行网络配置。

4. 启动使用

网络配置完成后,就可以启动 Claude Code 了。如果安装了 IDE 插件,可以直接点击右上角的 CC 图标启动,或者终端里面执行。

1
claude

首次启动会有两个步骤:

  1. 目录安全性授权 - 选择 Yes
  2. 登录认证 - 运行 /login 完成授权

完成后就可以开始 AI 编程了。

常用功能

1
claude [选项] [子命令] [提示词]

默认情况下,直接运行 claude 会启动一个交互式会话。如果想要非交互式输出(比如用于脚本或管道),可以使用 -p/--print 选项。

日常开发

1
2
3
4
5
# 启动交互式会话
claude

# 继续上次对话
claude -c

进入到会话中的常用操作:

  • @文件名 引用特定文件
  • 选中代码后直接提问,Claude 会自动识别选中的内容

[效果图]

脚本集成

1
2
3
4
5
6
7
8
# 分析日志文件
cat error.log | claude -p "分析这个错误并给出解决方案"

# 代码审查
git diff | claude -p "审查这些代码变更"

# 生成 JSON 格式输出
claude -p --output-format json "列出这个项目使用的技术栈"

自动化场景

1
2
3
4
5
6
7
8
# 设置预算上限,防止意外花费
claude -p --max-budget-usd 0.5 "重构这个模块"

# 使用备用模型,提高可用性
claude -p --model sonnet --fallback-model haiku "快速回答这个问题"

# 自动接受编辑,加快工作流
claude --permission-mode acceptEdits "修复所有 TypeScript 类型错误"

设置提示

1
2
# 追加系统提示
claude --append-system-prompt "回答时请使用中文"

Sub Agents 子代理

子代理是 Claude Code 中处理特定任务的专门 AI 助手。你可以把它理解为:Claude 雇来的专家助理,各司其职,干完活给你汇报结果。

每个子代理都在独立的上下文窗口中运行,有自己的系统提示、工具权限和独立权限。当 Claude 遇到匹配的任务时,会自动委托给对应的子代理处理。

这里最常见的场景就是使用 /plan,先和 Claude 一起制定实现思路,再进入执行阶段。

为什么需要子代理?

优势 说明
保留上下文 探索和实现保持在主对话之外,不会撑满你的对话窗口
强制约束 可以限制子代理只能使用特定工具(如只读)
跨项目复用 用户级子代理可在所有项目中使用
控制成本 将简单任务路由到更便宜的模型(如 Haiku)

内置子代理

Claude Code 自带了几个常用的内置子代理:

子代理 模型 用途
Explore Haiku (快速) 只读搜索、代码库探索,不会修改任何文件
Plan 继承主对话 计划模式下的代码库研究
General-purpose 继承主对话 复杂的多步骤任务,需要探索和修改

常见使用场景

1. 隔离高容量操作

当任务会产生大量输出时(如运行测试),用子代理处理,只返回摘要:

1
使用子代理运行测试套件,仅报告失败的测试及其错误消息

2. 并行研究

同时启动多个子代理独立调查不同模块:

1
使用单独的子代理并行研究身份验证、数据库和 API 模块

3. 链式工作流

按顺序使用不同子代理完成多步骤任务:

1
使用 code-reviewer 子代理查找性能问题,然后使用 optimizer 子代理修复

什么时候用子代理 vs 主对话?

场景 推荐方式
需要频繁交互、迭代改进 主对话
多阶段共享上下文(规划→实现→测试) 主对话
快速、小范围的改动 主对话
任务会产生大量输出但你只需要摘要 子代理
想强制工具/权限限制(如只读审查) 子代理
工作是自包含的,返回结果即可 子代理

创建自定义子代理

除了内置子代理,你还可以创建自己的子代理。运行 /agents 命令即可进入管理界面:

1
/agents

子代理配置文件是一个带 YAML frontmatter 的 Markdown 文件,例如一个代码审查子代理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
---
name: code-reviewer
description: 代码审查专家,主动审查代码质量和安全性
tools: Read, Glob, Grep
model: sonnet
---

你是一个高级代码审查者,确保代码质量和安全的高标准。

审查要点:
- 代码是否清晰易读
- 函数和变量命名是否合理
- 是否有重复代码
- 错误处理是否完善
- 是否暴露了敏感信息

子代理存放位置决定了其作用范围:

  • 项目级 .claude/agents/ - 仅当前项目可用,可提交到版本控制
  • 用户级 ~/.claude/agents/ - 所有项目可用

Plugins 插件

插件是一种打包和分发 Claude Code 扩展功能的方式。如果说独立配置是”自己用的工具”,那插件就是”可以分享给别人的工具包”。

一个插件可以包含多种组件:斜杠命令、子代理、Skills、钩子、MCP 服务器等。

插件 vs 独立配置

方式 命令格式 适用场景
独立配置 (.claude/) /hello 个人工作流、项目特定、快速实验
插件 (.claude-plugin/) /plugin-name:hello 团队共享、社区分发、跨项目复用

插件目录结构

1
2
3
4
5
6
7
8
my-plugin/
├── .claude-plugin/
│ └── plugin.json # 清单文件(必需)
├── commands/ # 斜杠命令
├── agents/ # 子代理
├── skills/ # Skills
├── hooks/ # 钩子配置
└── .mcp.json # MCP 服务器配置

常见使用场景

1. 团队统一工作流

团队有标准的代码审查流程、提交规范,打包成插件后成员一键安装即可:

1
2
/team-standards:review    # 代码审查
/team-standards:commit # 规范化提交

2. 跨项目复用

常用的工具命令(如生成文档、运行特定测试)做成插件后,所有项目都能用,不用每个项目单独配置。

3. 整合多种能力

一个插件可以同时包含命令、子代理、钩子等。比如”前端开发插件”可以包含:

  • 组件生成命令
  • 样式审查子代理
  • 保存后自动格式化钩子

创建插件

运行 /plugins 命令进入管理界面,或手动创建目录结构。

最简单的插件只需要一个清单文件:

.claude-plugin/plugin.json

1
2
3
4
5
{
"name": "my-plugin",
"description": "我的第一个插件",
"version": "1.0.0"
}

然后添加一个斜杠命令 commands/hello.md

1
2
3
4
5
---
description: 打个招呼
---

向用户热情地问好,并询问今天有什么可以帮忙的。

测试插件:

1
claude --plugin-dir ./my-plugin

演进路径

  1. 先在 .claude/ 里快速实验
  2. 验证好用后,转换成插件
  3. 分发给团队或通过市场共享

Skill 技能

Skill 是一个 Markdown 文件,用来教 Claude 如何做特定的事情。当你的请求与 Skill 的描述匹配时,Claude 会自动应用它,无需你显式调用。

简单来说:Skill 是给 Claude 的专业知识手册,Claude 会在合适的时候自动翻阅。

Skill vs 斜杠命令

这两个容易混淆,核心区别是触发方式

功能 触发方式 适用场景
Skill Claude 自动判断是否使用 专业知识、审查标准、输出格式
斜杠命令 你手动输入 /command 固定流程、快捷操作

Skill 的工作流程

  1. 发现 - 启动时加载所有 Skill 的名称和描述(轻量)
  2. 激活 - 当你的请求匹配某个 Skill 的描述时,Claude 请求加载完整内容
  3. 执行 - Claude 按照 Skill 的说明执行任务

创建一个 Skill

Skill 存放在 ~/.claude/skills/(个人)或 .claude/skills/(项目)目录下。

每个 Skill 需要一个 SKILL.md 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
---
name: pr-review
description: 使用团队标准审查 PR。当审查代码、检查 PR 时使用。
allowed-tools: Read, Grep, Glob
---

# PR 审查标准

审查 PR 时,检查以下要点:
1. 是否有单元测试覆盖
2. 是否符合命名规范
3. 是否有潜在的安全问题
4. 代码是否易于理解

关键字段说明:

  • name - Skill 名称
  • description - 最重要,Claude 靠这个判断是否触发
  • allowed-tools - 可选,限制 Skill 只能使用特定工具

常见使用场景

1. 统一团队审查标准

1
2
3
4
5
6
---
name: code-review
description: 按团队标准审查代码。当用户说"审查代码"或"review"时使用。
---

审查时必须检查:安全性、性能、可读性、测试覆盖...

当你说”帮我审查这个 PR”时,Claude 自动应用这个标准。

2. 特定格式输出

1
2
3
4
5
6
7
8
9
---
name: explaining-code
description: 用图表和类比解释代码。当用户问"这段代码怎么工作"时使用。
---

解释代码时必须包含:
1. 一个现实世界的类比
2. ASCII 流程图
3. 逐步讲解

3. 领域专业知识

1
2
3
4
5
6
7
8
9
10
---
name: our-database
description: 查询公司数据库。当需要查询用户、订单数据时使用。
---

数据库结构:
- users 表:id, name, email...
- orders 表:id, user_id, amount...

常用查询模式:...

Skill 存放位置

位置 路径 作用范围
个人 ~/.claude/skills/my-skill/SKILL.md 你的所有项目
项目 .claude/skills/my-skill/SKILL.md 当前项目所有人

渐进式披露

对于复杂的 Skill,可以把详细内容放在单独的文件中,Claude 只在需要时加载:

1
2
3
4
5
my-skill/
├── SKILL.md # 概述和导航
├── reference.md # 详细文档(按需加载)
└── scripts/
└── helper.py # 工具脚本(执行但不读取)

这样既保持主文件简洁,又能提供完整的参考资料。

Hook 钩子

钩子是用户定义的 shell 命令,在 Claude Code 生命周期的特定时刻自动执行。它提供对 Claude 行为的确定性控制——确保某些操作总是发生,而不是依赖 AI 选择执行。

简单来说:钩子把”建议”变成”强制规则”。 不再是”请记得格式化代码”,而是”每次编辑后自动格式化”。

钩子事件类型

事件 触发时机 能做什么
PreToolUse 工具调用之前 可以阻止调用
PostToolUse 工具调用完成后 执行后处理
Notification Claude 发送通知时 自定义通知方式
Stop Claude 完成响应时 收尾操作
SessionStart/End 会话开始/结束时 初始化/清理

配置方式

通过 /hooks 命令配置,保存在 settings.json 中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write \"$file_path\""
}
]
}
]
}
}

关键字段:

  • matcher - 匹配条件(工具名,支持正则,* 匹配所有)
  • command - 要执行的 shell 命令

常见使用场景

1. 自动格式化代码

每次 Claude 编辑文件后,自动运行格式化:

1
2
3
4
5
6
7
8
9
10
11
12
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write ..." }
]
}
]
}
}

2. 保护敏感文件

阻止 Claude 修改 .envpackage-lock.json 等文件:

1
2
3
4
5
6
7
8
9
10
11
12
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "检查路径,敏感文件则 exit 2 阻止" }
]
}
]
}
}

3. 自定义通知

当 Claude 需要输入时,发送桌面通知:

1
2
3
4
5
6
7
8
9
10
11
12
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "notify-send 'Claude' '需要输入'" }
]
}
]
}
}

4. 命令日志记录

记录所有 shell 命令,用于审计或调试:

1
2
3
4
5
6
7
8
9
10
11
12
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "jq '.tool_input.command' >> log.txt" }
]
}
]
}
}

钩子的核心价值

钩子与其他功能的区别在于确定性

方式 执行保证
在 CLAUDE.md 里写”请格式化代码” AI 可能忘记
用 Skill 定义格式化规范 AI 自动判断是否应用
用 Hook 配置 PostToolUse 100% 每次都执行

当你需要某个操作必须发生时,用钩子。

MCP

MCP (Model Context Protocol) 是一个开源标准协议,用于将 Claude Code 连接到外部工具和数据源。通过 MCP 服务器,Claude 可以访问你的数据库、API、问题跟踪器等外部系统。

简单来说:MCP 是 Claude 与外部世界的”桥梁”。 Skill 教 Claude “怎么做”,MCP 则”提供工具让 Claude 能做”。

MCP 能做什么?

连接 MCP 服务器后,你可以直接用自然语言操作外部系统:

1
2
3
4
"查询 PostgreSQL 数据库,找出这个月的总收入"
"检查 Sentry 最近 24 小时的错误"
"审查 GitHub PR #456 并提出改进建议"
"实现 JIRA ENG-4521 中描述的功能"

安装 MCP 服务器

1
2
3
4
5
6
7
8
9
10
11
# 远程 HTTP 服务器(如 Notion、GitHub、Sentry)
claude mcp add --transport http notion https://mcp.notion.com/mcp

# 本地 stdio 服务器(如数据库连接)
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://user:pass@host:5432/mydb"

# 管理服务器
claude mcp list # 列出所有服务器
claude mcp remove xx # 删除服务器
/mcp # 在 Claude Code 中查看状态和认证

常见使用场景

1. 查询数据库

1
2
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://readonly:[email protected]:5432/analytics"

然后直接问:

1
2
"这个月的总收入是多少?"
"找出 90 天没有购买的客户"

2. 集成 GitHub

1
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

然后:

1
2
"审查 PR #456 并提出改进建议"
"为这个 bug 创建一个 issue"

3. 监控错误 (Sentry)

1
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

然后:

1
2
"最近 24 小时最常见的错误是什么?"
"显示错误 ID abc123 的堆栈跟踪"

配置范围

范围 命令参数 适用场景
local (默认) --scope local 个人、当前项目
project --scope project 团队共享(存入 .mcp.json,可提交 git)
user --scope user 个人、所有项目

MCP 与 Skill 的配合

典型组合:MCP 提供连接,Skill 提供知识。

  • MCP 连接到公司数据库
  • Skill 教 Claude 你的数据模型和查询规范
1
2
3
4
5
6
7
8
9
10
11
12
13
# Skill: 教 Claude 理解数据库结构
---
name: our-database
description: 查询公司数据库时使用
---

数据库结构:
- users 表:id, name, email, created_at
- orders 表:id, user_id, amount, status

查询规范:
- 总是使用 readonly 用户
- 大查询要加 LIMIT

这样 Claude 既能连接数据库(MCP),又知道怎么正确查询(Skill)。

选择指南

  • 想让 Claude 掌握某种知识/规范 → Skill
  • 想让某个操作必须执行 → Hook
  • 想连接外部系统 → MCP
  • 想隔离任务或限制工具 → Sub Agents
  • 想分享给团队/社区 → Plugin

功能组合

这些功能可以组合使用,发挥更大威力。

组合 1:MCP + Skill(连接 + 知识)

场景:查询公司数据库

  • MCP 提供数据库连接
  • Skill 教 Claude 数据模型和查询规范
1
2
MCP: 连接到 PostgreSQL
Skill: users 表结构是...,查询时要加 LIMIT...

效果:Claude 既能连接,又知道怎么正确查询。

组合 2:Skill + Hook(知识 + 强制)

场景:代码审查流程

  • Skill 定义审查标准
  • Hook 在每次提交前强制运行 lint
1
2
Skill: 审查时检查安全性、性能、可读性...
Hook: PostToolUse 时自动运行 eslint

效果:Claude 按标准审查,代码还会自动格式化。

组合 3:Sub Agents + Skill(隔离 + 专业)

场景:专业代码审查

  • 创建只读的 code-reviewer 子代理
  • 给它加载 code-review Skill
1
2
3
4
# 子代理配置
name: code-reviewer
tools: Read, Grep, Glob # 只读
skills: code-review # 加载审查 Skill

效果:隔离的只读审查,应用专业标准。

组合 4:Plugin 整合一切

场景:团队前端开发工具包

一个 Plugin 可以包含:

  • 斜杠命令/fe:component 生成组件
  • 子代理:样式审查代理
  • Skill:React 最佳实践
  • Hook:保存后自动格式化
  • MCP:连接设计系统 API
1
2
3
4
5
6
my-frontend-plugin/
├── commands/component.md
├── agents/style-reviewer.md
├── skills/react-patterns/SKILL.md
├── hooks/hooks.json
└── .mcp.json

效果:团队成员安装一个插件,获得完整的前端开发工作流。

组合 5:Hook + MCP(自动化 + 外部)

场景:自动同步到外部系统

  • Hook 在特定事件触发时执行
  • 通过 MCP 操作外部系统
1
2
Hook: Stop 时检查是否有新功能完成
MCP: 自动在 JIRA 更新状态

效果:完成功能后自动更新项目管理系统。

总结

本文介绍了 Claude Code 的使用方式和核心功能。除了基础的对话和代码操作,它还提供了五种扩展机制:

  • Sub Agents - 隔离任务、并行处理
  • Skill - 教 Claude 专业知识
  • Plugin - 打包分发给团队
  • Hook - 确保操作必定执行
  • MCP - 连接外部系统

这些功能可以单独使用,也可以组合起来构建更强大的工作流。

更多细节可以参考官方文档:https://code.claude.com/docs/zh-CN/overview


Claude Code 入门:使用方式与功能介绍
https://siweimoxing.com/Claude-Code/Claude-Code-入门:使用方式与功能介绍/
作者
Sown
发布于
2026年1月10日
许可协议