15 个内置工具:它能"动手"的边界

Claude Code 内置了 15 个工具,这就是它实际能操作的全部能力。说白了,不管你 prompt 写得多花哨,最终都是通过这 15 个工具落地的。

文件操作类(7 个):

  • Read(读文件)、Write(写文件)、Edit(改文件)、MultiEdit(批量改)
  • Glob(找文件)、Grep(搜内容)、LS(列目录)

执行类(1 个):

  • Bash——跑 Shell 命令,理论上终端里能做的事它都能做,这一个工具就撑起了半边天

网络类(2 个):

  • WebSearch、WebFetch——搜索和抓取网页,弥补训练数据过时的短板

Notebook 类(2 个):

  • NotebookRead、NotebookEdit——专门操作 Jupyter Notebook 单元格

任务管理类(2 个):

  • TodoRead、TodoWrite——内置待办事项,追踪多步任务进度

子代理(1 个):

  • Agent——启动子代理处理独立任务,相当于它自己再分身一个助手去干活

15 个不多不少,但组合起来覆盖面极广。日常开发中你能想到的操作,基本都在射程范围内。

CLAUDE.md:三层配置体系

很多人只知道项目根目录放一个 CLAUDE.md 就完事了,但实际上它有三层,搞清楚这个结构能省不少麻烦。

  • 项目级 CLAUDE.md——放在项目根目录,跟着仓库走,团队共享。写项目约定、技术栈、代码规范这些公共信息。
  • 本地级 CLAUDE.local.md——也在项目目录,但被 .gitignore 掉了。你个人的偏好、私有配置放这里,不污染团队仓库。
  • 全局级 ~/.claude/CLAUDE.md——跟着你的机器走,所有项目都会加载。适合放通用习惯,比如「用中文回复」「commit message 用英文」之类的。

另外,输入 /init 命令,Claude Code 会自动扫一遍代码库,帮你生成一份项目级的 CLAUDE.md。生成的内容不一定完美,但至少给了个起点,你再手动补充关键信息就好。

两个容易忽略的符号

  • #——在对话中打 #,后面的内容会进入 memory 模式,被持久化记住。相当于随时给它立规矩:「以后都按这个来」。
  • @ 符号——@ 一个文件路径,直接把文件指给它看,明确告诉它「改这个」,省得它自己猜半天猜错。

这两个小细节看着不起眼,但对提高指令精准度非常有用。

快捷键和操作技巧

几个实用的操作,值得记住:

  • Esc 按一次:中断当前执行,正在跑的任务立刻停下
  • Esc 按两次:进入 rewind 模式,可以回退对话到某个节点重新开始。这个功能非常关键——做复杂任务发现方向跑偏了,不用清空重来,直接回退到分叉点
  • Shift + Tab:切换权限模式
  • /compact:压缩对话历史,上下文快满的时候用,把之前的对话总结成更短的版本腾出空间
  • /clear:清除所有对话历史,彻底从零开始
  • Cmd + Ctrl + Shift + 4 或 3(Mac):截图到剪贴板后直接粘贴给 Claude Code 看,省去保存文件再传的步骤

五种输出类型

Claude Code 能输出的东西比大多数人以为的要多:

  • 文档——Markdown、Quarto 等各种文本格式
  • 代码——Python、C++、Java 等各种语言
  • HTML 页面——完整网页,带样式带交互
  • 图像和图表——SVG 矢量图、Mermaid 流程图、组织架构图
  • React 组件——带真实功能的交互式 UI 组件

知道这些之后,很多你觉得「这个它应该做不了吧」的事情,其实都能做。

Hooks 机制

Hooks 是在 Claude Code 运行前或运行后自动触发的任务,写在 settings 文件里。它不需要手动调用,条件满足就自己跑。比如可以设置每次 Claude Code 完成修改后自动执行 git commit,把手动操作彻底干掉。第一章只是点到为止,后续课程会深入展开。


这一章的内容对老手来说大部分不陌生,但系统过一遍还是有收获。比如 CLAUDE.md 的三层结构,很多人用了很久都没刻意区分过 local 和全局的差异;再比如 Esc 按两次的 rewind 功能,不学还真不知道有这个操作。建议动手把自己的三层 CLAUDE.md 配好,尤其是全局那一层——一次配置,所有项目受益。