Claude Code CLI 使用技巧(干货总结)

Claude Code CLI 使用技巧(干货总结)

Claude Code 账号注册订阅以及安装参考:https://www.cnblogs.com/keepriding/p/19826372

  • 涉及 CLAUDE.md、Memory 记忆、Skills 技能等总结。

  • 这些都是通用的 AI 智能体使用上的思路,Hermes Agent、龙虾、辅助编程智能体等都会使用到。

  • 现在流行的 AI 个人助理有 Hermes Agent、龙虾。这种大而全的智能体在探索阶段,并不是很成熟,但是时间够,它肯定会越来越好,谁不想拥有一个《钢铁侠》中贾维斯这种 AI 助理呢?如果把视线聚焦到小范围,某一个具体的工作中,那么就可以设计出成熟并且可以用于生产的 AI 智能体,比如 AI 辅助编程的智能体(程序员写的大语言模型和智能体,当然要先革自己的命),并以此为中心,向声波一样向外扩散......

存储指令和记忆

CLAUDE.md

项目级别 CLAUDE.md

  • 可以在项目根目录存放 CLAUDE.md,启动 CLAUDE 时,会作为上下文全部加载。

    • 运行 /init 自动生成起始 CLAUDE.md。如果启动所在目录是有代码的项目目录,CLAUDE 会分析代码创建一个包含构建命令、测试指令和它发现的项目约定的文件。

    • CLAUDE.md 文件可以使用 @path/to/import 语法导入其他文件。导入的文件在启动时展开并加载到上下文中,与引用它们的 CLAUDE.md 一起。例如:有关项目概述,请参阅 @README,有关此项目的可用 npm 命令,请参阅 @package.json。

    • 每个 CLAUDE.md 文件目标在 200 行以下,如果超过 200 行,可以使用导入其他文件或者拆分放到 .claude/rules/ 目录下。

  • 自动向上遍历(当前项目体系)
    在某个目录启动 claude 时,他会加载当前目录下的 CLAUDE.md,同时也会向上遍历加载 CLAUDE.md,直至扫描到项目根目录为止。

  • 对于较大的项目,可以使用 .claude/rules/ 将规则拆分,拆分的 *.md 文件可以放在 .claude/rules/ 目录下,例如:.claude/rules/security.md ,并且支持递归。

    • 默认情况下,.claude/rules/ 下的 *.md 文件以及递归目录的 *.md 文件都会在启动会话时加载。使用 paths 功能可以按需加载,感觉有些复杂,小项目用不到。

    • 使用描述性的语言命名,这样可以让 Claude 更容易聚焦,更准确执行写的要求与规范。

团队级别 CLAUDE.md

  • 组织可以部署一个集中管理的 CLAUDE.md,适用于机器上的所有用户。此文件不能被个人设置排除。把 CLAUDE.md 分发给需要的用户即可。
    • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
    • Linux 和 WSL: /etc/claude-code/CLAUDE.md
    • Windows: C:\Program Files\ClaudeCode\CLAUDE.md

个人级别 CLAUDE.md

  • 个人级别的规则适用于个人笔记本上的所有项目。
    • 路径:~/.claude/CLAUDE.md
    • 个人高于项目级别的优先级

自动记忆

自动记忆让 Claude 跨会话积累知识,无需你编写任何内容。Claude 在工作时为自己保存笔记:构建命令、调试见解、架构笔记、代码样式偏好和工作流习惯。Claude 不会每个会话都保存内容。它根据信息在未来对话中是否有用来决定什么值得记住。同时也可以主动记忆和主动遗忘,例如:

  • 主动要求记忆: 你可以直接对它说:“记住,以后所有测试都要在 Docker 容器里跑。” Claude 会将其写入记忆。
  • 遗忘信息: 对它说:“忘记关于旧 API 服务器的事情,我们已经弃用它了。”

设置方法

自动记忆默认开启。可以通过修改配置文件或者配置环境变量关闭。

所有记忆都存储在你本地机器的 ~/.claude/projects/project-name/memory/

登录 Claude Code CLI 使用 /memory 命令可以打开记忆相关的文件和目录。并且可以查看/编辑记忆。
image

配置文件关闭

vim ~/.claude/settings.json

{
  "autoMemoryEnabled": false
}

环境变量关闭

CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

存储机制

核心索引文件是 MEMORY.md。当 Claude 觉得内容太详细时,它会创建专门的主题文件(如 API_Ref.md),并在 MEMORY.md 中引用它们

~/.claude/projects/<project>/memory/
├── MEMORY.md          # 简洁索引,加载到每个会话
├── debugging.md       # 关于调试模式的详细笔记
├── api-conventions.md # API 设计决策
└── ...                # Claude 创建的任何其他主题文件
  • 自动记忆是机器本地的。同一 git 存储库中的所有 worktrees 和子目录共享一个自动记忆目录。文件不在机器或云环境之间共享。
  • 每次会话开始时,Claude 会自动加载 MEMORY.md 的前 200 行或 25KB。多余的内容会按需调取。

Skills

官方文档:https://code.claude.com/docs/zh-CN/skills

  • CLAUDE.md 规则在每个会话或打开匹配文件时加载到上下文中。对于不需要始终在上下文中的特定任务指令,改用 skills,它仅在你调用它们或 Claude 确定它们与你的提示相关时加载。

  • 个人理解:Skill(技能)就是将一些可以固定的流程化事情、或者某些工具和 API 使用方法等等写成一个操作说明,然后 AI 智能体根据用户的上下文内容判断有选择地读取有关联的 Skill(技能,即操作文档),实现按需加载,减少 Token 消耗,拓展 AI 智能体的“外部”操作能力,更方便地管理我们的工作流程。

基本信息

  • Skill 是使用 Markdown 语法写的说明文档,说明文档记录的就是写好的提示词,记录的文件名为 SKILL.md 。可以给不同的智能体使用,通用。

  • Skill 触发条件

    • 手动触发:/skill-name 手动触发

    • 自动触发:提问与 Skill 的描述(description)匹配,Claude 就会在相关时自动加载并使用它。

Skill 原理

  • Skill 以目录的形式存在,核心入口是 SKILL.md 文件,也就是一个索引文件,就像一个导引说明,比如三体这部科幻小说:

    • 第一本 三体 ---> 讲述了人类与三体文明初次接触的故事

    • 第二本 死神永生 ---> 讲述了人类启动面壁计划破坏三体文明的入侵计划的故事

    • 第三本 黑暗森林 ---> 讲述了宇宙文明之间在怀疑与信任所发生的故事

  • 接下来就是把每本书的具体内容写在单独的一个文件中,AI 根据提问相关性去选择读取哪本书内容。实现按需加载。

Skill 目录

目录结构

一个 Skill 就是一个目录,可以手动创建,存放位置为 .claude/skills/<skill-name>/
一个标准的 Skill 目录结构如下:

.claude/skills/code-review/
├── SKILL.md          # 核心指令(必须)
├── style-guide.md    # 公司的代码规范(按需加载)
├── template.md       # PR 评论的输出模板(按需加载)
└── scripts/
    └── lint-check.sh # 本地执行的脚本

SKILL.md 内容:
YAML Frontmatter (头部配置):在 --- 之间,定义规则。
Markdown 正文:发给 Claude 的具体指令和 Prompt(提示词)。

---
name: pr-summary
description: 总结拉取请求的变更
# disable-model-invocation: true
---
## Pull request 原始数据
- PR diff 内容: !`gh pr diff`
- PR 评论区: !`gh pr view --comments`

## 你的任务
仔细阅读上述终端输出的数据,为这个 PR 生成一份技术摘要。
  • 每个 Skill 必须有一个 SKILL.md。与 AI 智能体开启会话时,它会扫描所有的
    .claude/skills/ 文件夹。但此时,它只读取每个 SKILL.md 文件顶部的 YAML 配置区(尤其是 name 和 description)。之后,只有满足触发条件时,才会通篇读取。

  • name 字段作用:可以使用 /skill-name 调用

  • description 字段作用:技能的功能描述

  • disable-model-invocation: true :禁止模型调用。不影响 /skill-name 调用。

目录路径

优先级:企业 > 个人 > 项目

  • 个人级别:~/.claude/skills/<skill-name>/SKILL.md

  • 项目级别:.claude/skills/<skill-name>/SKILL.md

  • 插件级别:<plugin>/skills/<skill-name>/SKILL.md

    • claude mcp 管理 。底层主要是基于 MCP (Model Context Protocol) 标准构建的工具服务

    • 为了防止你安装的插件自带的技能和你自己写的技能名字冲突(比如大家都叫 deploy),Claude Code 强制为插件 Skill 引入了命名空间机制。调用格式通常是:/插件名:技能名

嵌套发现:

Claude Code 会自动从嵌套的 .claude/skills/ 目录中发现 skills。例如

  • 如果你正在编辑 packages/frontend/ 中的文件,Claude Code 也会在 packages/frontend/.claude/skills/ 中查找 skills。
  • 如果你切换去编辑 packages/backend/main.py,它就会加载后端的专属 skills,而不会加载前端的。
  • 总结:会从“正在被编辑或操作的文件所在的目录”向上递归发现 skills。靠近的 skills 优先级最高。

添加其他文件

Skills 可以在其目录中包含多个文件。这使 SKILL.md 专注于要点,同时让 Claude 仅在需要时访问详细的参考资料。大型参考文档、API 规范或示例集合不需要在每次 skill 运行时加载到上下文中。

my-skill/
├── SKILL.md (required - overview and navigation)
├── reference.md (detailed API docs - loaded when needed)
├── examples.md (usage examples - loaded when needed)
└── scripts/
    └── helper.py (utility script - executed, not loaded)

从 SKILL.md 中引用支持文件,以便 Claude 知道每个文件包含什么以及何时加载它:

## Additional resources
- For complete API details, see reference.md
- For usage examples, see examples.md
  • 将 SKILL.md 保持在 500 行以下。将详细的参考资料移到单独的文件中。
  • 文档可以是本地文档或者链接。

传递参数

Skill 支持将外部数据和用户输入动态注入到 Prompt 中。主动调用 skill 或者提示词触发都可以传递参数。

参数可通过 $ARGUMENTS 占位符获得,
例如:此 skill 按编号修复 GitHub 问题。$ARGUMENTS 占位符被替换为 skill 名称后面的任何内容:

---
name: fix-issue
description: Fix a GitHub issue
disable-model-invocation: true
---

Fix GitHub issue $ARGUMENTS following our coding standards.

1. Read the issue description
2. Understand the requirements
3. Implement the fix
4. Write tests
5. Create a commit
  • 当你运行 /fix-issue 123 时,Claude 收到”Fix GitHub issue 123 following our coding standards…”

  • 如果你使用参数调用 skill 但 skill 不包含 $ARGUMENTS,Claude Code 会将 ARGUMENTS: 追加到 skill 内容的末尾,以便 Claude 仍然看到你输入的内容。

动态上下文注入

这是将 AI 与终端命令行深度结合。

在 Skill 发送给大模型之前,Claude Code 会预先在本地终端执行 !命令 skill 中的代码,并把终端的 stdout (标准输出) 文本直接替换到提示词里。

文档示例场景:生成 PR 摘要

---
name: pr-summary
description: 总结拉取请求的变更
---
## Pull request 原始数据
- PR diff 内容: !`gh pr diff`
- PR 评论区: !`gh pr view --comments`

## 你的任务
仔细阅读上述终端输出的数据,为这个 PR 生成一份技术摘要。

在这个流程里,Claude 不必自己去学怎么用 GitHub CLI。预处理阶段就已经把 gh pr diff 真实的输出结果“喂”到了提示词里,Claude 拿到的直接是现成的差异代码,它只需要专注做总结。

Plan Mode

在做具体实施前,使用 Plan Mode 讨论方案、确认细节。确认没问题后再让 Claude Code 按照方案执行。
切换方式:Shift + tab

  • 默认模式:
    Claude Code 编辑文件时会询问。
    截屏2026-04-19 20.55.15

  • 编辑同意模式
    Claude Code 编辑文件不再询问(执行本机 shell 命令会询问。启动时加--dangerously-skip-permissions参数可以跳过所有询问,这样做很危险)
    image

  • Plan 模式
    规划,不做具体操作。用于讨论方案、确认细节等等。
    image

posted @ 2026-04-19 22:06  清葵雨露  阅读(250)  评论(0)    收藏  举报