ClaudeCode——使用笔记


Claude Code 安装

  • 可使用 npm 安装

    1
    2
    3
    4
    # 安装:
    npm install -g @anthropic-ai/claude-code
    # 查看安装情况:
    claude -v
  • 注:还可以使用 Claude Code 官方网页提供的安装方式:

    1
    curl -fsSL https://claude.ai/install.sh | bash
  • 注:以下 Claude Code 可能简称为 CC


登录和配置

Claude

  • 先为 Claude Code 创建一个本地文件夹

    1
    2
    mkdir -p cc_work_space
    cd cc_work_space
  • 启动 Claude Code

    1
    claude
  • 这里如果没有配置相关 API(详情见前面一步),会要求登录,如果没有配置相关 API,也没有登录,可以使用 /login 命令进行登录

  • 两种方式可选配置

    • 方案一:订阅用户,可购买官方的 Pro 或者 Max 会员
    • 方案二:使用官方 API KEY,按照 Token 消耗量计费
  • 注:截止到 25 年底,Claude 依然无法在国内使用

第三方 API KEY 配置(可切换国产模型等)

  • 目前的 Claude Code 是支持配置第三方 API KEY 的

  • 打开/创建文件:

    1
    vim ~/.claude/settings.json
  • 输入信息(视情况修改其中的配置 APP_ID,URL 和 模型名称等):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    {
    "env": {
    "ANTHROPIC_AUTH_TOKEN": "{申请的AppId}",
    "ANTHROPIC_BASE_URL": "https://xxx/v1/xxx/",
    "ANTHROPIC_MODEL": "claude-opus-4.7",
    "ANTHROPIC_SMALL_FAST_MODEL": "claude-opus-4.7",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-opus-4.7",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4.7",
    "CLAUDE_CODE_THINKING_TYPE": "adaptive",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "CLAUDE_CODE_EXTRA_BODY": "{\"thinking\":{\"type\":\"adaptive\"}}",
    "CLAUDE_CODE_THINKING_EFFORT": "high",
    "ANTHROPIC_CUSTOM_HEADERS": "email?",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "60000",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
    },
    "permissions": {
    "allow": [],
    "deny": []
    },
    "hasCompletedOnboarding": true,
    "disableLoginPrompt": true
    }
  • 若配置后 Claude Code 后要求登录(国内一般无法直接登录),则需确认是否已经添加下面的参数:

    1
    2
    "hasCompletedOnboarding": true,
    "disableLoginPrompt": true

初次使用

进入工作目录 & 登录

  • 先为 Claude Code 创建一个本地文件夹

    1
    2
    mkdir -p my_cc
    cd my_cc
  • 启动 Claude Code

    1
    claude
  • 登录方案:

    • 若已经配置第三方 API KEY,则不需要登录,启动即可使用
    • 这里如果没有配置相关第三方 API KEY(详情见前面一步),会要求登录
      • 注:如果没有配置相关 API,也没有登录,可以使用 /login 命令进行登录
      • 详情见前面的内容

使用 Claude Code

  • 使用 Claude Code,从一个简单需求开始,直接在 Claude Code 命令行输入想要做的事情(比如 “写一个随机数模拟器网站” )

    1
    > 写一个随机器模拟网站
  • 接下来就可以通过对话完成想完成的任何事情了


Claude 配置文件

  • Claude 一般通过 xx/settings.json 文件进行配置

settings.json 一般包含哪些内容?

  • settings.json 文件的核心作用是定义 Claude 的行为边界和工具使用权限。一个标准的配置文件通常包含以下几个核心部分:
  • permissions(权限控制,最核心):
    • 通过 allow(允许)、ask(询问)、deny(拒绝)三个列表来精细化管控 Claude 的操作
    • allow:高频且低风险的操作(如读取代码、执行测试命令)
    • ask:存在一定风险的操作(如 git push、安装依赖),需要手动确认
    • deny:绝对禁止的高危操作(如删除文件 rm -rf、读取 .env 敏感文件)
  • hooks(钩子/自动化):
    • 定义在特定生命周期(如会话开始 SessionStart、工具执行前 PreToolUse)自动触发的脚本或命令
  • model(模型选择):
    • 指定当前环境下默认使用的 Claude 模型(如 claude-sonnet-4)
  • env(环境变量):
    • 为 Claude 的运行环境预设特定的环境变量
  • 一个典型的 settings.json 结构示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    {
    "model": "claude-sonnet-4-20250514",
    "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
    "Read(./src/**)",
    "Bash(npm run test)",
    "Bash(git status)"
    ],
    "ask": [
    "Bash(git push *)",
    "Bash(npm install *)"
    ],
    "deny": [
    "Bash(rm -rf *)",
    "Read(./.env*)",
    "WebFetch"
    ]
    },
    "hooks": {
    "SessionStart": [
    {
    "command": "echo '欢迎使用 Claude Code 进行项目开发'",
    "description": "会话开始时的欢迎语"
    }
    ]
    }
    }

不同层级的配置文件

  • ~/.claude/settings.json(全局设置)
    • 用户级(全局)配置,对当前电脑上的所有项目生效
    • 存放个人的通用偏好:
      • 比如默认使用的模型、全局的权限底线(如禁止在任何项目中执行某些高危命令)、全局的 Hooks 或 MCP 服务器配置等
    • 仅保存在本机,不随项目提交
  • ./.claude/settings.json(项目共享设置)
    • 项目级,仅对当前项目生效
    • 定义团队统一的开发规范和行为边界
      • 例如,规定当前项目允许执行的特定 npm 脚本、代码编辑的目录范围等
    • 旧版本建议提交到 Git,但现在也不建议提交到 Git 了,直接将整个 .claude 添加到 .gitignore 文件是最好的选择
      • 因为 ./.claude/settings.json 本来是放规则,但容易被添加一些个人本地的路径或者 API 信息
  • ./.claude/settings.local.json(项目本地设置)
    • 项目级,但仅对当前开发者生效
    • 存放个人的项目偏好,用于覆盖 ./.claude/settings.json 中的团队配置
      • 比如在本地调试时想临时放宽某些权限,或者使用不同的模型,但不想影响队友
    • 必须被添加到 .gitignore,绝对不能提交到 Git
  • 当同一个配置项在多个文件中出现时,Claude Code 会按照从高到低的优先级进行加载和覆盖(后加载的覆盖先加载的):
    • 个人项目本地配置 > 团队项目共享配置 > 个人全局配置
      • 最高优先级:./.claude/settings.local.json(个人项目本地配置)
      • 中间优先级:./.claude/settings.json(团队项目共享配置)
      • 最低优先级:~/.claude/settings.json(用户全局配置)

Claude 工作模式

  • 在打开 Claude Code 的模式下,通过 Shift + Tab 键切换工作模式

模式一:accept edits on

  • 这个模式下会自动接受所有 Claude Code 动作,比如创建文件也不需要人为 Check 和 授权
  • 方便快捷,但是有一定的风险
  • 注:这个是最常用的模式
  • 注意:执行终端命令,比如 mkdir -p 等也会再咨询,CC 非常谨慎,认为执行终端命令始终是危险的

模式二:plan mode on

  • 这个模式是规划模式:只聊天,不执行
  • 主要用于讨论我们的规划,用来构思接下来做什么,也可以用来讨论各种想法
  • 注:这个模式建议经常使用,特别是在想要表达比较复杂的需求时,可以和 Claude Code 交互多轮确定
    • 一旦 Claude Code 开始工作,就会大量消耗 Token 和时间,这里先对齐方案再进行代码编写,可以大幅提效,保证 CC 的工作符合我们的预期

模式三:默认模式

  • 显示:

    1
    ? for shortcuts
  • 刚进入 Claude Code 时,不做任何操作默认就是这个模式

  • 这个模式下,CC 比较谨慎,遇到高阶权限等会找我们确认

    • 比如创建文件也不需要人为 Check 和 授权

特别模式:bypass permissions on

  • 前面提到 CC 非常谨慎,认为执行终端命令始终是危险的,所以在以上提到的三种正常模式下,一定需要用户确定才能执行命令行

  • 如果想要绝对的自动化,让 CC 放心自动执行命令行,需要使用更隐晦的模式

    • bypass permissions on 是一个极度信任模式
  • 启动这个模式的方式是在启动时:

    1
    claude --dangerously-skip-permissions
  • 原本只有三个正常模式可切换,使用上述命令后, Shift + Tab 会在四个模式下轮训


Claude Code 中执行 Bash 命令

  • 在干净的 CC 输入框下,输入 ! 可以切换到本地 Bash 命令模式,可以使用任意 Bash 命令
    • 注:这里无法使用 SSH 登录等方式登录到其他机器(因为 Claude Code 持有本地的 CLI),但是可以使用 SSH 实现文件复制等
  • 比如 Mac 自带的 open 命令,可以默认打开一个文件(使用默认绑定的 应用打开),打开一个 html 文件可以使用下面的命令
    1
    open ./xx.html

Claude Code 输入框输入复杂文本

  • 说明:当需要在 Claude Code 的终端里输入一大段复杂的提示词、编写多行代码或者写长篇的需求文档时,直接在终端里敲会非常不方便
  • 官方建议:换行输入时可以使用 Shift + Enter
    • 但本人尝试过,这个命令常常无法生效(升级 CC 也没用)
  • 常用方式:在输入框场景使用 Ctrl + g 打开默认编辑器(通常是 VS Code)
    • 编辑完成后直接保存并关闭该标签页 ,写好的内容就会自动传回 Claude Code 的终端输入框中

默认编辑器配置(以 VS Code 为例)

  • 注:编辑器由 $EDITOR 环境变量确定

  • 先确保使用命令行可以打开 VS Code

    1
    code --version
    • 若提示找不到命令,则需要配置环境变量,VS Code 环境变量配置方式:
      • 打开的 VS Code 图形界面
      • 按下 Cmd + Shift + P 打开命令面板
      • 在输入框中输入 Shell Command: Install 'code' command in PATH,然后点击回车执行
      • 等待右下角提示“Installation successful”(安装成功)
      • 最后:完全关闭并重新打开你的终端窗口(或者在终端执行 source ~/.bash_profile),让环境变量生效
  • 临时配置(当前终端窗口有效):

    • 在终端执行以下命令(以配置为 VS Code 为例):

      1
      export EDITOR="code -w"
    • 注:-w 参数表示等待文件关闭后再继续,这对 Claude Code 接收回传内容很重要

  • 永久配置(推荐):

    • 将上述命令添加到你 Mac 的 Shell 配置文件中(比如 ~/.zshrc~/.bash_profile),这样每次打开终端都会生效:
      1
      2
      echo 'export EDITOR="code -w"' >> ~/.bash_profile
      source ~/.bash_profile

多种编辑器配置可选

  • 配置 VS Code:

    1
    export EDITOR="code -w" (-w 表示 wait 等待)
  • 配置 Sublime Text:

    1
    export EDITOR="subl -n -w" (-n 表示新建窗口)
  • 配置 Neovim:

    1
    export EDITOR="nvim"
  • 配置 Micro:

    1
    export EDITOR="micro"
  • 配置 CotEditor:

    1
    export EDITOR="coteditor"(需确保已安装其命令行工具)

补充说明:更多配置

  • 除了 EDITOR,有些程序(比如 Git、Crontab 等)还会读取 VISUAL 这个环境变量,为了兼容性,开发者可同时设置它们,例如:

    1
    2
    export VISUAL="code -w"
    export EDITOR="VISUAL"
  • 这样就能确保无论是 Git、Crontab 还是 Claude Code 等工具,都能准确唤起想要的默认编辑器


CLAUDE.md 管理(存储信息)

  • CLAUDE.md 文件相当于说明文档或者记忆,每次调用 Claude Code 时 Claude Code 都会遵守 CLAUDE.md 中的指令
  • ./CLAUDE.md 文件会在每次 Claude Code 打开当前项目时都生效,相当于是当前项目的说明文档
    • 可用 /init 来初始化当前项目的 ./CLAUDE.md 文件, /init浏览当前项目 并在当前文件夹下生成一个 ./CLAUDE.md 文件
    • 注:也可以自动打开并编辑 ./CLAUDE.md 文件,只要最终 ./CLAUDE.md 内容相同,那么两种做法是完全等价的
  • ./CLAUDE.md 相关的文件分两层:
    • ./CLAUDE.md:项目级别,仅当前项目使用,建议 Git 提交管理起来,方便其他本项目的人使用
    • ./CLAUDE.local.md:项目级别(本地用户私有),仅当前项目使用,需要添加到 .gitignore 中,防止影响别人
    • ~/.claude/CLAUDE.md:用户级别,当前用户的所有项目可用,不会提交到远程
  • 注意:三个文件并不是三选一的关系,而是互补的
    • 它们的内容会叠加生效,但当出现冲突时,项目级(./CLAUDE.md)的优先级高于用户级(~/.claude/CLAUDE.md
    • 举个例子:
      • ./CLAUDE.md 中,写了:“代码注释必须用英文”
      • ./CLAUDE.local.md 中,写了:“在这个项目中,如果遇到报错,优先检查 Docker 容器状态”
      • ~/.claude/CLAUDE.md 中,写了:“用中文回复”
      • 结果: Claude 会用中文回复,代码注释写英文,且遇到报错时会自动先检查 Docker

Claude Code 任务管理

  • 问题:
    • 在 Claude Code 窗口中使用 ! 启动的命令行如果是需要长久执行(比如启动服务器),会阻塞 Claude Code
  • 后台任务生成:
    • 可以根据启动提示按 ctrl + b 将服务放到后台,从而可以继续跟 Claude Code 交互
    • 此时会自动生成一个后台任务(聊天框会显示 1 backgroud task 等字样提示有个后台任务正在运行)
  • 查看后台任务:
    • 输入 /tasks 即可查看所有后台任务
    • 查看时点击 k 即可 杀死任务(也可能是点击 x 去停止)
  • 注意:在 Claude Code 中使用命令行启动的后台任务,在 Claude Code 窗口关闭时会自动跟着关闭

Claude Code 回滚功能

  • 触发回滚的方式:
    • 方式1:/rewind
    • 方式2:连续两次 ESC
  • 选择想要回滚的点(即这个点执行之前的状态),点击确认即可
    • 注意:被选中的点是输入命令 A,则回滚会会回到 命令 A 执行前的状态
  • 可选回滚方式:
    • 方式1:回滚代码和对话,回滚代码同时将对话也恢复到指定点
    • 方式2:回滚对话
    • 方式3:回滚代码
    • 方式4:不做任何操作
    • 方式5:可能还会有 Summarize From Here,实现将历史对话进行 Summary 的操作
  • 注意:还是建议使用 git 来管理,仅使用 Claude Code 的管理回滚的话,容易出现部分文件无法被删除的情况(即回滚时无法删除新生成的文件)
    • 特别是通过终端命令来生成的文件 Claude Code 无法管理
  • 注意:回滚是要注意打开的文件或者服务需要先关闭最好

Cluade Code 图片文件接收

  • 可以直接将图片拖动到 Claude Code 命令行,也可以 Ctrl + v(or CMD + v) 来粘贴图片

常用指令推荐

/btw

  • /btw 允许在独立于当前 Conversation 的对话下 跟 Claude Code 交互,可以问一些跟当前工作相关的问题
  • /btw 得到回复后直接 Enter 退出,不会对主线 Conversation 造成任何影响

/resume

  • /resume 负责恢复之前的对话,在有很多对话时,这里可以挑选一个之前的对话窗口
  • 替代 /resume 的另一种方法,启动 Claude Code 时使用 claude -c 可以接着上一次的对话开始
  • 注:关于对话管理:
    • 亲测目前如果用两个窗口同时 /resume 到同一个对话上,然后同时发出命令执行不同事项,最后可能会导致某一个执行历史消失,只剩下一个

/compact

  • /compact 对上下文进行压缩,压缩后可以减少 Token 的使用,压缩后会展示所有压缩结果,然后展示出来
  • /compact 进行压缩时,可以追加一些要求,比如下面的命令可以让:
    1
    /compact 重点保留用户的需求

/clear

  • /clear 清空所有上下文
  • 当接下来的任务与之前的任务没有关系时,记得使用这个命令清空上下文,最小化 Token 的使用,同时避免之前 上下文对现在的影响

/init

  • /init 负责初始化当前项目的 ./CLAUDE.md 文件,会 浏览当前项目 并在当前文件夹下生成一个 ./CLAUDE.md 文件
    • 注:也可以自动打开并编辑 ./CLAUDE.md 文件
  • 注:./CLAUDE.md 文件会在每次 Claude Code 打开当前项目时都生效,相当于是当前项目的说明文档

/memory

  • /memory 负责管理 Claude Code 的记忆系统
  • 输入 /memory 命令后可选择打开指定的管理文件
    • ./CLAUDE.md:项目级别,仅当前项目使用,建议 Git 提交管理起来,方便其他本项目的人使用
    • ~/.claude/CLAUDE.md:用户级别,当前用户的所有项目可用,不会提交到远程
  • 注:这个命令不常用,因为一般可以手动打开相应的文件并编辑

Claude Code 使用问题总结

Claude Code 写入文件时出现 Error writing file

  • 这个错误一般是没有权限或者写入文件过大等原因
  • 在出现这个错误时,一般来说 Claude Code 会重试,但如果是一直出现这个错误,则可以先使用 /btw 先咨询一下原因,然后停止(ESC),并跟 CC 要求他修改写入方式,不要出现类似错误(类似错误会循环浪费 Token)

Claude Code 使用 MCP Server

  • 第一步:安装 MCP Server
    • Claude Code 各种相关库的安装, 包括 Skills、MCP Server 等,都可以使用 /plugin 功能来安装
  • 安装后的 MCP Server,一般会在需要时自动被检测到,然后咨询用户是否使用

Claude Code 使用 Hooks

  • Hooks 是在执行前、后等位置触发的钩子,可以在指定的时间点触发
  • /hooks 命令可查看并增加 hooks

Claude Code 使用 Skills

  • Skills 一般在 ~/.claude/skills/ 下进行管理

创建 Skills

  • ~/.claude/skills/ 文件夹下创建目标 Skills

  • 比如 summary-pdf-paper Skills 可以使用下面的构造方式

    • 创建文件夹 ~/.claude/skills/summary-pdf-paper
    • 在该文件下下创建 SKILL.md 文件 ~/.claude/skills/summary-pdf-paper/SKILL.md
    • SKILL.md 文件下输入 SKILL 的内容
  • 建议在 SKILL.md 的文件最前面一定加上两个标准化的配置:

    1
    2
    3
    4
    ---
    name: summary-pdf-paper
    description: 解析 PDF 文件并总结其内容
    ---
    • 这样在 Claude Code 使用时,可以快捷展示 Description 的内容,方便知道每个 Skills 的具体工作内容
  • 建议不要手动创建 SKILL.md,在完成一个任务时,可使用下面的命令将刚刚完成任务的所有重点方式记录下来

    1
    2
    3
    4
    5
    6
    7
    8
    请调用 Skill Creator,复盘我们刚才完成 [task-name] 的全过程
    重点整理:
    1. 最优工作流程——从输入到输出的完整步骤
    2. 踩过的坑和怎么避免
    3. 我给过你的有效指令
    4. 输出格式规范
    5. 异常情况怎么处理
    最后,生成一个 ‘[skill-name]’ Skill
    • 注:在 Claude Code 中,Skill Creator 本质上是一个“元技能”(Meta Skill),也就是一个“用来创造技能的工具”
  • 如果还没开始任务,想要从 0-1 创建一个 Skills ,可以使用官方给出的 skill-creator Skill 帮忙创建

    • 直接在 Claude 里描述的需求,它会一步步引导构建,自动生成 skill 文件到 ~/.claude/skills 目录下
    • 所有自定义 skill 都建议是用它创建

查看 Skills

  • /skills 命令查看当前有多少 skills

使用 Skills

  • (似乎是)之前每次创建新的 Skills 后需要重启 Claude Code 才能生效,现在创建后直接生效
  • 触发 Skills 的方式有两种:
    • 正常表达需求,由 Claude Code 自动进行意图识别并触发是否使用对应的 Skills(一般会经过我们的同意再使用)
    • 明确使用已有 Skills 进行(推荐使用这种方式,更准确表达自己的需求)
      1
      /summary-pdf-paper 总结 PDF 文章 ./news.pdf

Claude Code 使用 SubAgents

  • SubAgent 是上下文完全独立于主 Agent 之外的 Agent,适用于上下文对主任务没有任何依赖的情况
  • 在 CC 聊天框输入 /agents 即可开始查看和创建 SubAgent,根据需要可配置 SubAgent 的下面几个属性:
    • 所有者(用户 or 项目等级)
    • 描述信息
    • 可用工具(权限)
    • 调用模型(可与主 Agent 不同,省钱)
    • 交互颜色
  • 创建以后这个 SubAgent 的配置会出现在 ~/.claude/agents/./.claude/agents/ 路径下
    • 注:创建 == 注册,重启 CC 后,SubAgent 就已经注册好了,此后可被自动调用
  • 创建/注册 SubAgent 完成后,在输入相应的需求时,主 Agent 会自动调用 SubAgent 进行工作

Claude Code 使用 plugin 安装

  • /plugin 命令非常强大,可以管理并安装 Claude Code 的全家桶(插件可理解为一个“全家桶”封装)
    • 全家桶包括 MCP Server、Skills 和 Hooks 等
      • Skills:自定义的斜杠命令(如 /review-pr
      • MCP (Model Context Protocol):让 Claude 访问外部数据源(如 数据库 等)
      • Hooks:在特定生命周期(如提交前)自动运行的脚本

/plugin 管理插件

  • 管理插件:在 Claude Code 交互界面中直接输入以下命令:

    1
    /plugin
    • 输入此命令将打开一个交互式 UI,可以直接在其中浏览、启用、禁用或卸载插件
  • 安装和查看插件:插件通常托管在“市场(Marketplace)”中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 从官方市场安装 GitHub 插件 
    # 示例:/plugin install <资源名称> @ <来源/市场标识>
    /plugin install github@claude-plugins-official

    # 安装完成后刷新
    /reload-plugins

    # 查看已安装列表
    /plugin list

插件 作用域

  • 在安装插件时,Claude 会询问用户安装到哪个作用域:
    • User (用户级):跨所有项目可用(存储在 ~/.claude/
    • Project (项目级):仅当前仓库可用,配置会存入 .claude/settings.json
      • 推荐团队协作使用,以便团队成员共享相同的插件环境
    • Local (本地级):仅当前项目可用,但不提交到 Git

管理插件市场 (Marketplaces)

  • 除了官方插件,还可以添加社区或公司内部的插件源
  • 添加市场
    1
    2
    3
    4
    5
    # 添加一个 Git 仓库作为插件源
    /plugin marketplace add https://github.com/org/custom-plugins.git

    # 或者添加本地路径
    /plugin marketplace add ./my-internal-plugins

附录:Claude Code 的有趣用词

  • 在与 Claude Code 交互时,会经常看到一些一闪而过的趣味单词(例如 Booping、Cogitated 等)
    • 这些词其实是 Claude Code 在处理任务时,用来代替枯燥的“Loading…”或“Processing…”的随机状态提示词
  • Anthropic 的开发团队为了缓解用户在等待 AI 响应时的焦虑感,硬编码了多达 187 个风格各异的动词
    • 这些词汇让原本冰冷的等待过程变得生动有趣,仿佛 Claude 是一个正在“努力思考”或“忙活”的数字同事
  • 这里记录词汇中比较常见或有趣的代表

深度思考与计算类

  • 这类词汇通常用来表达 Claude 正在进行严肃的逻辑推演或数据处理
  • Cogitating:深思、缜密思考(比普通的 Thinking 显得更费脑子)
  • Ruminating:反刍、反复咀嚼(非常生动,暗示模型在反复推敲上下文)
  • Crunching: crunching numbers,即正在费力地处理大量数据
  • Synthesizing:正在综合、合成信息
  • Computing / Calculating:最基础的“计算中”

烹饪与酝酿类

  • 在英文语境中,常把需要花时间的处理过程比作烹饪,暗示“正在努力产出结果”
  • Cooking / Baking:正在烹饪/烘焙(极客圈常说的 “Let him cook”,暗示正在憋大招)
  • Brewing:正在酿造、冲泡(像煮咖啡一样酝酿想法)
  • Marinating:正在腌制(让数据在 Prompt 里多“入味”一会儿)
  • Simmering / Stewing:小火慢炖(暗示正在处理复杂的逻辑,急不得)
  • Percolating:(咖啡)滴滤、渗透,指灵感正在慢慢浮现
  • Pondering:一个用来代替“加载中”的状态提示词,具体含义是沉思、仔细考虑或反复思索
  • Churning:一个用来代替“加载中”的趣味状态提示词,字面原意是搅拌、翻腾

创造与构建类

  • 当 Claude 正在生成代码或构建方案时,可能会出现这些词
  • Crafting:精心制作、打磨(带有工匠精神的感觉)
  • Conjuring:施展魔法、召唤(当 AI 写出一段神奇代码时,确实像变魔术)
  • Forging:锻造(听起来非常硬核,像是在打铁一样写代码)
  • Hatching:孵化(等待结果破壳而出)

趣味俚语与专属彩蛋

  • 这部分充满了工程师的幽默感和流行文化梗
  • Booping:轻轻戳一下、发出嘟嘟声(非常可爱的拟声/拟态词)
  • Clauding:Claude 的专属动词,意为“我正在 Claude 呢”(官方玩梗,品牌自信拉满)
  • Schlepping:源自意第绪语,意为“费力地搬运”(暗示它正在艰难地处理你庞大的代码库)
  • Vibing:沉浸在氛围中、跟着感觉走(一种非常现代、松弛的“心流”状态)
  • Reticulating:致敬经典游戏《模拟城市》(SimCity)加载时的经典文案“Reticulating Splines(正在校准曲线)”
  • Flibbertigibbeting:胡言乱语、轻浮地喋喋不休(用生僻的长单词来调侃 AI 的生成过程)
  • Noodling:即兴演奏/随意思考
  • Sussing:英式俚语,表示弄清楚
  • Combobulating:自造词,表示整理组合

Claude Code 中有用的一些 Trick

CLAUDE.md 添加一些指令

  • 来自网友的建议:在 CLAUDE.md 中加入如下内容,可大幅提升 CC 工作效率,让对话框更加干净整洁:

    1
    2
    3
    4
    5
    以第一性原理!从原始需求和问题本质出发,不从惯例或模板出发
    1. 不要假设我清楚自己想要什么。动机或目标不清晰时,停下来讨论
    2. 目标清晰但路径不是最短的,直接告诉我并建议更好的办法
    3. 遇到问题追根因,不打补丁。每个决策都要能回答"为什么"
    4. 输出说重点,砍掉一切不改变决策的信息
  • 来自 Karpathy 的 CLAUDE.md

    • github 地址:github.com/forrestchang/andrej-karpathy-skills/blob/main/CLAUDE.md

    • 安装方式:

      • 方式一:当做第三方 skill 安装并使用(注:Claude Code 可能无法通过 /skills 管理第三方 skill)

        1
        2
        3
        /plugin marketplace add forrestchang/andrej-karpathy-skills
        /plugin install andrej-karpathy-skills@karpathy-skills
        # 安装后 skill 名称为 `/karpathy-guidelines`
        • 安装后可在类似 ~/.claude/plugins/cache/karpathy-skills/andrej-karpathy-skills/1.0.0/skills/karpathy-guidelines/SKILL.m 下看到 SKILL.md
      • 方式二:直接去下载并添加到自己的项目中

    • Karpathy 的 CLAUDE.md 核心内容:

      1
      2
      3
      4
      1. Think Before Coding:Don't assume. Don't hide confusion. Surface tradeoffs.
      2. Simplicity First:Minimum code that solves the problem. Nothing speculative.
      3. Surgical Changes:Touch only what you must. Clean up only your own mess.
      4. Goal-Driven Execution:Define success criteria. Loop until verified.

自动生成或改进 Skills

  • 在完成一个任务时,可使用下面的命令将刚刚完成任务的所有重点方式记录下来

    1
    2
    3
    4
    5
    6
    7
    8
    请调用 Skill Creator,复盘我们刚才完成 [task-name] 的全过程
    重点整理:
    1. 最优工作流程——从输入到输出的完整步骤
    2. 踩过的坑和怎么避免
    3. 我给过你的有效指令
    4. 输出格式规范
    5. 异常情况怎么处理
    最后,生成一个 [skill-name] Skill
  • 如果这个 Skills 已经存在,则可以使用下面的命令优化这个 Skill

    1
    根据完成这个任务遇到的所有问题,改进原始的 [skill-name] Skill

附录:Claude Code Cache 策略

  • 原始博客:
  • Prompt Caching(提示缓存)不应只是后期优化手段,而必须是 Agent 产品从第一天就要围绕其设计的架构约束
  • 因为 Claude Code 是长对话 Agent,每次携带全量上下文重算成本极高,而缓存基于“前缀匹配”,一旦前缀变动,后续所有缓存全部失效
  • 博客总结了 Anthropic 开发团队在构建 Claude Code(其命令行 AI 助手)过程中的核心心得:Prompt Caching(提示词缓存)是构建高效、低延迟 AI 智能体的关键

核心理念:Prompt Caching 是命脉

  • 对于像 Claude Code 这样需要长期运行的智能体(Agent),Prompt Caching 允许重复利用之前往返的计算结果,从而大幅降低成本并减少响应延迟
  • Claude Code 团队甚至将缓存命中率视为核心监控指标,命中率过低会被视为生产故障(SEV)

核心机制:前缀匹配 (Prefix Matching)

  • 缓存的工作原理是前缀匹配
    • 只要请求的开头到某个断点(breakpoint)的内容完全一致,就可以命中缓存
  • Prompt 的结构顺序至关重要

最佳实践建议

  • Prompt 结构优化(静态在前,动态在后): (注:这个是针对 Agent 设计者的)
    • 将最稳定的内容放在最前面,最容易变化的内容放在最后面
    • Claude Code 的推荐顺序是:
      • 1)全局静态系统提示词 & 工具定义(全局缓存)
      • 2)项目特定背景(如 CLAUDE.md,项目内缓存)
      • 3)会话上下文(Session context)
      • 4)具体的对话消息(每轮都会增长)
  • 利用消息进行更新,而非修改 Prompt: (注:这个是针对 Agent 设计者的)
    • 如果信息(如当前时间或文件状态)发生变化,不要修改系统提示词(这会导致缓存失效)
    • 建议通过在下一轮对话中添加 <system-reminder> 标签来传递更新
  • 不要在中途更换模型或工具: (注:这个是针对 Claude Code 使用者的)
    • 模型: 缓存是针对特定模型的
      • 在对话中途切换模型(例如从 Opus 换到 Haiku)会强制重新构建整个缓存,成本可能反而更高
    • 工具: 增删工具会破坏前缀一致性。Claude Code 即使在“计划模式”(Plan Mode)下也会保持工具集不变,仅通过消息告知 AI 处于该模式
  • 延迟加载工具(Tool Search):
    • 为了保持前缀稳定,可以使用“工具存根”(lightweight stubs),只在 AI 明确需要调用某个工具时才加载其完整 Schema

进阶技巧:缓存安全的压缩(Compaction)

  • 当对话超出上下文窗口时需要进行压缩(总结)
    • 传统的做法是开一个新请求进行总结,但这会导致无法复用旧请求的缓存
  • 官方推荐解决方案: 使用“缓存安全分叉”(Cache-safe forking)
    • 使用完全相同的系统提示词、工具和历史记录,仅在末尾添加一个总结请求消息
    • 这样,总结操作可以几乎完全命中已有的历史缓存,仅支付新增 Token 的费用
    • 注:Claude Code 的 /compact 命令就能自动实现这个