安装使用 Claude Code 讲了怎么把 Claude Code 装好、连上 API 网关。装好只是起点,真正用顺手还得靠一些日常技巧。
这篇整理我高频使用的命令和工作流,覆盖项目记忆、常用命令、上下文管理、回溯等方面。你不用全部记住,读一遍知道大概有哪些招数,真正需要的时候回来查就行。
CLAUDE.md:告诉 Claude 你的项目约定
Claude Code 启动时会自动读取几个位置的 CLAUDE.md 文件,把内容拼进上下文:
- 项目级:当前工作目录下的
CLAUDE.md,团队共享,记录本项目的架构、命令、规范。 - 项目级本地版:
CLAUDE.local.md,建议加到.gitignore里,用来放个人临时偏好,不进团队仓库。 - 用户级:
~/.claude/CLAUDE.md,个人全局偏好,所有项目都生效。 - 子目录:在 monorepo(多个子项目放在同一个仓库里)下,每个子目录也可以放自己的
CLAUDE.md,Claude 读到这个目录下的文件时才顺带加载对应的规则。
简单说,就是你提前把「每次跟 Claude 聊天都得重复交代一遍的话」写进文件里,它自动记住。
一个典型的项目 CLAUDE.md 长这样:
# 项目说明
这是一个 Next.js 全栈项目,前后端都在同一个仓库里。
## 开发命令
- `npm run dev` 启动本地开发服务器,端口 3002
- `npm run build` 生产构建
- `npm run typecheck` 类型检查,提交前必跑
## 代码约定
- 组件用 TypeScript + 函数式写法,禁用 class component
- 样式统一用 Tailwind CSS,不要写 inline style
- 不要在客户端组件里直接 import 服务器模块这份文档相当于一份长期生效的系统提示词,不用每次会话重复解释「我这个项目是干嘛的」「什么能做什么不能做」,效率高很多。
懒得手写也没关系,在 Claude Code 会话里输入 /init 命令,它会自己扫一遍项目,总结架构和命令,生成一份初版 CLAUDE.md,你在这个基础上改就行。
官方给的经验是:CLAUDE.md 越短越好。Claude 每次会话都加载它,写得臃肿反而会让重要规则被淹没。
适合写进去的:
- Claude 猜不到的内部命令(比如自定义脚本、特殊的 build 流程)
- 和语言默认不同的代码风格
- 测试运行方式、提交规范
- 项目特有的环境变量、隐含约束
不适合写的:
- Claude 读代码就能看出来的内容(不用复述目录结构)
- 详细的 API 文档(链接到官方文档就行)
- 频繁变动的任务进度
- 「写干净的代码」这种显而易见的废话
我的一个实用习惯:每当发现 Claude 反复犯同一个错,就把「正确的做法」加一条到 CLAUDE.md,下次不用再重复纠正。久了它就像一份项目的用户手册,团队其他成员也能用。
Auto memory:Claude 自己写的记忆
CLAUDE.md 是你写给 Claude 的指令。Claude Code 还有另一套记忆机制叫 auto memory,是 Claude 自己写给自己的笔记,两者互补。
两者的关键差异:
| CLAUDE.md | Auto memory | |
|---|---|---|
| 谁写 | 你(当然也可以让 Claude Code 帮你更新) | Claude |
| 内容 | 规则、架构、约定 | Claude 观察到的经验、偏好、调试思路 |
| 触发时机 | 你手动编辑 | Claude 自动判断是否值得记。当然你也可以要求它记,比如「把 xxx 记到 memory 里」 |
比如你随口一句「这个项目以后用 pnpm 不用 npm」,或者告诉它「每次改完要跑 npm run typecheck」,Claude 觉得值得记住时,就会把这条笔记写进 memory 文件里,下次会话自动加载。你不用主动维护,它自己会维护这套 memory。
记忆文件按项目目录区分,每个项目有独立的目录:
~/.claude/projects/<项目路径>/memory/
├── MEMORY.md # 索引,每次会话启动时加载前 200 行
├── debugging.md # 按主题分的笔记文件
├── api-conventions.md
└── ...其中 <项目路径> 是把项目绝对路径里的 / 替换成 - 得到的名字。比如 /Users/alice/code/myapp 对应的目录就是 ~/.claude/projects/-Users-alice-code-myapp/memory/。
MEMORY.md 是索引文件,启动时自动加载(上限前 200 行或 25KB)。其他 topic 文件不会一股脑塞进上下文,Claude 按需读取,保证启动成本可控。
所有文件都是普通 Markdown,你随时可以打开看、改、删。
日常管理用 /memory 命令:输入后会列出当前会话加载的所有 CLAUDE.md、CLAUDE.local.md、auto memory 文件,选中就能直接在编辑器里打开。这个面板里也能一键开关 auto memory。
auto memory 的文件是本地存储的,不会跨机器同步,换一台电脑或者在云端跑,memory 要重新积累。
另外 memory 目录是按项目路径存的,如果你把项目文件夹改了名或者挪了位置,Claude 会把它当成一个新项目,之前积累的 memory 就找不到了。
我个人觉得这套机制挺有用,它能帮你积累那些自己都没意识到的习惯,比如某个项目的特定测试命令、某个库的坑点等。隔一段时间 /memory 看看,你会发现 Claude 记下的东西比你想象的多。
常用斜杠命令
进入 Claude Code 之后,几个斜杠命令值得记一下。
/model 查看和切换当前使用的模型。上下方向键切换模型,默认会根据你的订阅计划自动选,一般是 Sonnet 4.6 或 Opus 4.7。
左右方向键调整推理强度(reasoning effort),也就是模型在给答案前思考的深度,共 low / medium / high / xhigh / max 五档。强度越高效果越好,但速度更慢、token 消耗更多。
/clear 清除当前上下文,重新开始一轮新对话。做完一个任务换下一个时一定要 /clear,否则旧上下文堆着会干扰 Claude 的判断,还白白消耗 token。
/compact 手动压缩当前对话。上下文快满时 Claude 会自动压缩,你也可以主动触发。可以加参数指导它侧重保留什么,比如 /compact 侧重 API 改动相关的部分,但它只是影响摘要的侧重点,不能精确裁剪。
/status 打开设置面板,查看版本、模型、账号和连接状态,最常用的是确认 Anthropic base URL 是不是对的。
/init 生成项目的 CLAUDE.md,前面已经介绍过。
/simplify 让 Claude 审查你最近改动过的文件,从代码复用、质量和效率三个角度找问题并自动修复。可以加参数指定侧重方向,比如 /simplify 重点看内存效率。写完一段代码之后跑一下,相当于让 Claude 帮你做一轮 code review 加自动重构。
/insights 生成一份当前项目的使用报告,分析你和 Claude 的交互模式、常碰到的摩擦点、项目里哪些区域改动最多。适合隔一段时间跑一次,帮你发现自己没注意到的工作习惯。
在输入框里用 @ 可以引用具体文件,比如 @src/auth.ts 让 Claude 直接读这个文件的内容,比让它自己搜快得多,也更准。
要输入一段比较长的 prompt 时,按 Ctrl + G 可以把当前输入的内容丢到你的默认编辑器里打开,编辑完保存关闭,内容会回填到 Claude Code 的输入框。在终端里直接打字编辑比较别扭,长 prompt、粘贴大段日志、写复杂的计划时都用得上。
回溯与中断
Esc 打断
Claude 正在执行的时候,按一下 Esc 能立刻叫停它,上下文保留着,你可以马上纠正方向:
我:重构这个模块
Claude:<开始读一堆文件...>
我:<按 Esc>
我:先别动 tests/ 目录下的内容,只重构 src/这个操作用得非常多。Claude 跑偏了千万别干等,直接打断改方向。
撤销到之前的对话
按两下 Esc(或者输入 /rewind)会打开撤销菜单,列出之前所有的检查点(checkpoint)。checkpoint 是 Claude Code 在本地自动保存的对话状态和文件快照,选中某个检查点,对话会退回到那个时刻,Claude 之前改过的代码文件也会一起自动撤销,不用你手动 git checkout。
每次你提交一条 prompt 都会自动存一个 checkpoint,相当于一张安全网,这几种场景特别好用:
- Claude 改了一半你觉得方向不对,直接回到改动前的代码。
- 对话上下文越来越乱,想退到某个还清爽的时刻重新开始。
- 尝试了一个风险较大的改法,效果不好想完全撤销。
有两个坑要注意:
- checkpoint 只追踪 Claude 通过 Edit / Write 工具直接改的文件。如果 Claude 是执行
rm、mv这种 bash 命令改的,不在追踪范围内,也就没法 rewind 回来。 - checkpoint 不是 git 的替代品。默认保留 30 天左右就会清理,关键代码还是要靠版本控制。
恢复历史会话
关掉终端、电脑重启、第二天接着干活,会话不会丢。Claude Code 自动保存每个会话的记录:
# 继续当前目录下最近一次会话
claude --continue
# 从最近的会话列表里挑一个
claude --resume注意 --continue 只认当前目录下最近的那次会话。如果你到了别的项目目录下跑这条命令,它不会把你带回「上次那个项目」。
多任务并行时,用 /rename 命令给会话起个描述性的名字,比如 oauth-migration 或 debug-memory-leak,之后 --resume 时就能一眼找到想要的那个。
我的习惯是把每个待办事项当成一个独立会话跑,像 git 分支一样管理,不同任务的上下文互不污染,切回来继续也没有额外心智成本。
plan 模式
Claude Code 有几种权限模式,控制它执行操作(改文件、跑命令)时要不要经过你确认。按 Shift + Tab 可以在几种模式间循环切换:default(什么都要问你)、acceptEdits(文件编辑自动通过,跑命令还要问)、plan(只读,Claude 只探索和思考,不直接动代码)。反复按到屏幕底部状态栏显示 plan 为止。
plan 模式下,Claude 会先探索项目、向你确认一些问题,然后输出一份计划文档等你审核。你确认后,它才根据计划开始执行。
简单任务没必要开 plan 模式,直接说需求最快。但是像「重构这个模块的 API 设计」这种复杂任务,强烈建议用 plan 模式先对齐思路,能减少大量返工。
有时候 Claude 自己觉得任务比较复杂,也会主动切到 plan 模式。
跳过授权
默认情况下,Claude 执行 shell 命令或修改文件都会弹出确认,频繁操作时比较烦。启动时加个参数可以跳过所有授权:
claude --dangerously-skip-permissions这个参数等于把钥匙直接交给 Claude,只建议在自己的开发机、沙箱环境下用,生产环境或共享机器上千万别这么玩。即便启用了这个参数,Claude 对 .git、.claude、.bashrc 这类受保护路径的写入仍然会弹出确认。
一个更温和的折中是 auto 模式:
claude --permission-mode autoauto 模式下有一个独立的「安全分类器」会审查每条命令,只拦截明显有风险的操作(权限提升、访问未知基础设施、恶意行为),常规操作自动放行。对一般开发任务够用,既省去了频繁点确认的烦躁,又不至于完全放飞。
auto 模式目前还是官方的 research preview,并不是所有订阅计划都支持(Max / Team / Enterprise / API 用户可用,Pro 暂时不行),具体支持情况参考 官方文档。
用好 Claude Code 不靠什么魔法,就是这些日常积累起来的小习惯:
写好 CLAUDE.md 让它懂你的项目;让 auto memory 帮你把偏好沉淀下来;频繁 /clear 防止上下文变脏;跑偏了立刻 Esc,改错了用 /rewind 回滚;复杂任务先 plan 再做。
这些东西看起来多,实际用几次就变成肌肉记忆了。用 Claude Code 久了你会越来越依赖它,而这些技巧能让你用得更顺、更省 token。