Loading...

文章背景图

二.Claude Code 基础入门到实战

2026-10-05
4
- 字
- 分钟
|

Claude Code 基础入门到实战

目录


1、快速入门

基本介绍

Claude Code 是 Anthropic 推出的 AI 编程助手(ai coding agent)。它不是代码补全工具,而是一个可以自主读取代码库、编辑文件、运行命令、搜索网络、与外部服务交互的 Agent。你用自然语言描述任务,Claude Code 自主规划、执行、验证,你可以在任意环节介入调整方向。

注意区分两个概念:

  • Claude Code:Anthropic 推出的编程工具/框架,不绑定特定模型

  • Claude:Anthropic 提供的大模型,是 Claude Code 默认使用的后端模型。类比国内,智谱公司提供的 GLM-5.1 也可以作为 Claude Code 的后端模型

支持平台

类别

支持情况

界面

终端 CLI, VS Code 扩展, JetBrains 插件, 桌面 App (macOS/Windows), 浏览器 (claude.ai/code)

操作系统

macOS 13.0+, Windows 10 1809+, Ubuntu 20.04+, Debian 10+, Alpine Linux 3.19+

云提供商

Anthropic 原生 API, Amazon Bedrock, Google Vertex AI, Microsoft Foundry

核心能力

Claude Code 通过 agentic loop(智能体循环) 工作:收集上下文 → 执行操作 → 验证结果,反复迭代直到任务完成。

能力类别

具体内容

文件操作

读取文件、编辑代码、创建文件、重命名和重组

搜索

按模式查找文件、正则搜索内容、探索代码库

执行

运行 Shell 命令、启动服务器、运行测试、使用 git

网络

搜索网络、获取文档、查找错误信息

基本使用

官网:claude.com/product/claude-code

安装与启动

官方安装方式(不方面)

curl -fsSL https://claude.ai/install.sh | bash

推荐安装方式

前提条件:

  • 您需要安装 Node.js 18 或更新版本环境

  • MacOS 用户推荐使用 nvm 方式安装 Nodejs 或 Homebrew 方式。不推荐直接安装包安装(后续可能会遇到权限问题)

  • Windows 用户还需安装 Git for Windows

进入命令行界面,安装 Claude Code

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

检查安装版本

claude --version

启动:进入项目目录后运行 claude。

模型选择(后端大模型):

后端模型

说明

Claude(默认)

Anthropic 提供的大模型,需要国外账号和国外银行卡充值订阅(Pro/Max/Team 等),对中国限制较严,有封号风险

GLM-5.1

智谱提供的大模型,订阅 GLM Coding Plan 后配置 API Key 即可使用,无需国外账号。套餐名额有限抢不到的话,可以去淘宝找黄牛帮忙。详情参考 智谱 GLM Coding,配置步骤参考 Claude Code 接入指南

快速体验

安装配置完成后,进入一个空目录,运行 claude 启动,然后输入:

开发一个贪吃蛇游戏

Claude Code 会这样工作:

  1. 理解任务:大模型分析你的意图,确定需要创建一个 HTML + JavaScript 的贪吃蛇游戏

  2. 规划方案:决定创建哪些文件(比如 index.html、style.css、game.js),用什么技术方案

  3. 调用工具执行:

    • 用 Write 工具创建游戏文件

    • 用 Bash 工具打开浏览器预览(如 open index.html)

  4. 等待确认:在 Default 权限模式下,文件编辑和命令执行前会询问你确认

  5. 迭代优化:你可以继续提要求,比如"加个计分板"、"改成移动端适配",Claude Code 会基于已有代码继续修改

整个过程你只需要用自然语言描述需求,Claude Code 自主完成编码、运行、调试。这就是 agentic coding 的核心体验。

内置工具

Claude Code 的所有操作通过工具完成。你不需要手动调用这些工具,大模型会根据你的需求自动选择合适的工具来执行。了解它们的作用有助于你理解 Claude Code 在做什么。

提示

以下有些工具现在看不懂没关系,后面实际用到的时候自然就懂了。

文件操作

工具

作用

Read

读取文件内容

Edit

精确替换文件中的某段文字,必须完全匹配才能替换

Write

创建新文件或完全覆盖已有文件

搜索

工具

作用

Glob

按文件名模式查找文件,比如找出所有 .js 文件

Grep

按内容搜索文件,比如找出所有包含 "login" 的文件

执行

工具

作用

Bash

执行 Shell 命令,比如运行测试、安装依赖、启动服务器

网络

工具

作用

WebSearch

搜索网络,获取搜索结果

WebFetch

获取网页内容

Agent 与任务

工具

作用

Agent

启动一个子 Agent 来独立完成子任务,适合并行处理多个独立工作

TaskCreate/TaskUpdate/TaskList

任务列表管理,用于规划和跟踪多步骤任务的进度

AskUserQuestion

向你提问,收集需求或消除歧义

MCP 工具

MCP (Model Context Protocol) 是一种扩展机制,通过连接外部服务器,Claude Code 可以获得额外的自定义工具。比如配置了 pencil 服务器后就能使用设计相关的工具,MCP 工具以 mcp__服务器名__工具名 的格式命名。

权限模式

Claude Code 有四种权限模式,控制大模型在执行操作时的自由度,按 Shift+Tab 在四种模式间循环切换,底部状态栏会显示当前模式。

模式

效果

适合场景

Default

文件编辑和 Shell 命令执行前都会询问确认

刚开始使用时,想了解 Claude Code 在做什么

Auto-accept edits

文件编辑自动通过,Shell 命令仍需确认

日常开发,信任代码修改但想把控命令执行

Plan mode

只读不写,先输出计划让你审批,批准后再执行

复杂任务,想先看方案再动手

Auto mode

自动执行大部分操作,自动判断操作的危害程度,遇到危险操作(如删除文件、访问敏感目录)仍会拦截确认

日常开发,大部分操作信任但需要安全兜底

Bypass permissions

完全跳过所有权限检查,无任何安全拦截

启动时通过 claude --dangerously-skip-permissions 开启

会话管理

每次在项目目录中运行 claude 都会开启一个会话,会话内的对话历史、文件变更都有记录,支持以下操作:

操作

方式

说明

恢复上次会话

claude -c 或 /resume

继续上次未完成的对话,上下文和文件状态都会保留

从历史中选择恢复

claude --resume

列出所有历史会话,选择一个恢复

回滚多步

/rewind

列出所有检查点,可以选择回退到任意一步。如果 Claude Code 改坏了代码,用这个恢复到之前的状态

压缩上下文

/compact

对话太长时会占用大量上下文窗口,压缩后只保留关键信息,释放空间让对话可以继续

清空对话

/clear

完全清空当前会话的对话历史,从头开始。注意这不会撤销已做的文件变更

使用建议:

  • 对话过程中发现 Claude Code 方向错了,用 /rewind 回滚,再重新描述需求

  • 长时间对话后大模型开始"遗忘"之前的内容,用 /compact 压缩一下

  • 想完全重新开始,用 /clear 清空

记忆机制

Claude Code 有多种方式在不同会话之间保持记忆,确保每次新对话不需要从零开始。

CLAUDE.md — 你写的持久化指令

CLAUDE.md 是纯 Markdown 文件,内容在每次会话启动时自动注入到大模型的上下文中,你可以在里面写编码规范、项目架构说明、构建命令等,大模型每次对话都会遵守。

存放位置与作用域(按加载顺序排列,越后加载优先级越高):

优先级

作用域

路径

用途

低

用户全局

~/.claude/CLAUDE.md

个人偏好,适用于所有项目

中

项目级

./CLAUDE.md 或 ./.claude/CLAUDE.md

团队共享的项目规范,通过 Git 共享

高

项目本地

./CLAUDE.local.md

个人项目偏好,加入 .gitignore 不会提交

加载规则:从当前目录向上遍历目录树,逐层加载,同一目录内,CLAUDE.local.md 排在 CLAUDE.md 之后。

我现在 ~/.claude/CLAUDE.md 中的内容:

# Global CLAUDE.md

## 文件写入规则

写文件时,分段写入,避免 Claude Code 调用大模型 API 超时。对于大文件,应拆分为多次 Edit/Write 调用,每次处理一部分内容。

## 搜索规则

需要搜索时,优先调用 MCP 中的搜索工具(如 `mcp__web-search-prime__web_search_prime`、`mcp__web-reader__webReader` 等),而不是使用内置的 WebSearch 工具。

## 技术方案推荐原则

推荐技术方案时,站在 AI 容易维护的角度来推荐,而不是站在人容易维护的角度。优先选择结构明确、模式统一、上下文自包含、AI 容易理解和修改的方案。

## 调试规则

修改 bug 时,必须使用 `/superpowers:systematic-debugging` 技能,遵循系统性调试流程:先找到根因再修复,不要凭猜测改代码。要多读相关代码,务必一次性改对,不要偷懒。

**系统性修复原则:** 找到根因后,不要只修复用户描述的单一场景。必须主动排查所有同类场景(相同模式的其他按钮、其他页面、其他流程分支),一次性全部修复,避免用户反复遇到同类问题。

## Git 规则

永远不要回退已经 git commit 提交的代码(包括 `git reset --hard`、`git rebase`、`git commit --amend` 等操作)。已提交的代码代表用户确认过的历史,只能向前推进,不能重写历史。

## 代码引用格式

返回代码文件或方法名时,使用相对路径格式(如 `backend/config.py:22` 或 `frontend/src/App.vue:335`),确保在 VSCode 中点击即可跳转到对应位置。

Auto Memory — 大模型自己写的记忆

大模型在工作过程中会自行判断哪些知识值得跨会话保留(比如调试经验、构建命令、你的偏好),自动写入记忆文件。

存储位置:

~/.claude/projects/<项目路径>/memory/
├── MEMORY.md          # 索引文件
├── debugging.md       # 调试相关笔记
├── api-conventions.md # API 设计决策
└── ...                # 其他主题文件
  • MEMORY.md 是索引文件,每次会话启动时自动加载

  • 主题文件(如 debugging.md)不在启动时加载,大模型需要时会用 Read 工具按需读取

  • 你可以说"记住 XXX"主动触发记忆写入,运行 /memory 可以浏览和编辑所有记忆文件

  • 默认开启,如需关闭可在 settings.json 中设置 autoMemoryEnabled: false,或设置环境变量

CLAUDE_CODE_DISABLE_AUTO_MEMORY=1

上下文窗口与压缩

上下文窗口是大模型一次能处理的信息总量,包括:系统指令、CLAUDE.md、记忆文件、对话历史、文件内容、命令输出等。

自动压缩默认开启,当上下文使用率达到约 95% 时自动触发,压缩后保留以下内容:

  • 你的需求和意图

  • 关键技术概念和决策

  • 已修改的文件和重要代码片段

  • CLAUDE.md(从磁盘重新注入,不会丢失)

  • Auto Memory(从磁盘重新注入,不会丢失)

(原文此处为一幅上下文窗口示意图)

可以通过配置上面的环境变量来修改阈值:环境变量 - Claude Code Docs

自定义压缩行为:

  • /compact:手动触发压缩

  • /context:查看当前上下文使用情况

  • 在 ~/.claude/settings.json 的 env 字段中配置:

    • DISABLE_AUTO_COMPACT:设为 "1" 关闭自动压缩,但保留手动 /compact

    • DISABLE_COMPACT:设为 "1" 关闭所有压缩,包括手动的

    • CLAUDE_AUTOCOMPACT_PCT_OVERRIDE:调整触发阈值(1-100),比如设为 "50" 表示上下文使用 50% 时就触发压缩,高于默认值约 95% 的设置不会生效

    • CLAUDE_CODE_AUTO_COMPACT_WINDOW:设置用于自动压缩计算的上下文容量(token 数),标准模型默认 200K,扩展上下文模型默认 1M,设一个较小的值可以更早触发压缩

配置示例(GLM-5.1 在 80% 时自动压缩):

{
  "env": {
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
    "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000"
  }
}

说明:

  • CLAUDE_CODE_AUTO_COMPACT_WINDOW 设为 "200000" 是因为 GLM-5.1 不是原生 Claude 模型,Claude Code 无法自动识别其上下文窗口大小,需要手动指定(200K token)

  • CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 设为 "80" 表示上下文使用 60% 时触发压缩

完整环境变量参考:环境变量 - Claude Code Docs

状态行(Status Line)

状态行是 Claude Code 底部的可自定义栏,可以实时显示上下文使用情况、会话成本、Git 状态等信息。它通过运行你配置的 shell 脚本工作:Claude Code 把当前会话的 JSON 数据通过 stdin 传给你的脚本,脚本提取需要的信息后输出到 stdout,Claude Code 就会显示你的脚本输出的内容。

最简单的配置方式: 直接在 Claude Code 中运行 /statusline 命令,用自然语言描述你想显示什么,Claude Code 会自动生成脚本并配置好。

/statusline 显示模型名称、上下文使用百分比和进度条

手动配置: 在 ~/.claude/settings.json 中添加 statusLine 字段,指向一个 shell 脚本:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline-command.sh"
  }
}

Claude Code 把当前会话的 JSON 数据通过 stdin 传给脚本,脚本通过 jq 提取需要的字段并格式化输出。

以下是我的状态栏脚本(~/.claude/statusline-command.sh),显示模型名称、工作目录、Git 分支、上下文使用量(带颜色):

注意

记得执行 chmod +x ~/.claude/statusline-command.sh

#!/bin/bash
input=$(cat)

model=$(echo "$input" | jq -r '.model.display_name // .model.id // "unknown"')
# 去掉模型名中的 [variant] 后缀,比如 "GLM-5.1[1m]" → "GLM-5.1"
model_display=$(echo "$model" | sed 's/\[.*//')
cwd=$(echo "$input" | jq -r '.workspace.current_dir // empty')
total_input=$(echo "$input" | jq -r '.context_window.total_input_tokens // empty')
window_size=$(echo "$input" | jq -r '.context_window.context_window_size // empty')

# 非 Anthropic 模型需要手动指定上下文窗口大小
case "$model" in
  GLM-*) window_size=200000 ;;
esac

# 显示最后两级目录
if [ -n "$cwd" ]; then
  dir_display=$(echo "$cwd" | sed 's|.*/\([^/]*/[^/]*\)$|\1|')
else
  dir_display="?"
fi

# 获取 Git 分支
branch=$(echo "$input" | jq -r '.worktree.branch // empty')
if [ -z "$branch" ]; then
  branch=$(git --no-optional-locks -C "$cwd" rev-parse --abbrev-ref HEAD 2>/dev/null || true)
fi

# 格式化 token 数量(1000 → 1.0k, 1000000 → 1.0M)
format_tokens() {
  local n="$1"
  if [ -z "$n" ] || [ "$n" = "null" ]; then echo "?"; return; fi
  if [ "$n" -ge 1000000 ] 2>/dev/null; then
    printf "%.1fM" "$(echo "scale=1; $n / 1000000" | bc)"
  elif [ "$n" -ge 1000 ] 2>/dev/null; then
    printf "%.1fk" "$(echo "scale=1; $n / 1000" | bc)"
  else
    echo "$n"
  fi
}

used_fmt=$(format_tokens "$total_input")
max_fmt=$(format_tokens "$window_size")

# 拼装输出
parts="${model_display} | ${dir_display}"
if [ -n "$branch" ]; then
  parts="${parts} | ${branch}"
fi

# 根据使用率显示颜色:<65% 绿色, 65%-85% 黄色, ≥85% 红色
if [ -n "$total_input" ] && [ "$total_input" != "null" ] && [ -n "$window_size" ] && [ "$window_size" -gt 0 ] 2>/dev/null; then
  used_pct=$(echo "scale=1; $total_input * 100 / $window_size" | bc)
  pct_int="${used_pct%.*}"
  [ -z "$pct_int" ] && pct_int="0"

  if [ "$pct_int" -ge 85 ] 2>/dev/null; then
    color="\033[31m"  # 红色 - 紧急
  elif [ "$pct_int" -ge 65 ] 2>/dev/null; then
    color="\033[33m"  # 黄色 - 警告
  else
    color="\033[32m"  # 绿色 - 正常
  fi
  reset="\033[0m"

  ctx_display="${used_fmt}/${max_fmt}"
  parts="${parts} | ${ctx_display} ${color}${pct_int}%${reset}"
fi

echo -e "$parts"

效果类似:GLM-5.1 | claude-code-demo | main | 45.2k/200.0k 22%(22% 为绿色,超过 65% 变黄,超过 85% 变红)。

JSON 数据中常用字段:

  • model.display_name:当前模型名称

  • context_window.total_input_tokens:已使用的上下文 token 数

  • context_window.context_window_size:上下文窗口总大小

  • context_window.used_percentage:上下文使用百分比

  • workspace.current_dir:当前工作目录

  • worktree.branch:当前 Git 分支

关闭状态行:运行 /statusline delete 或从 settings.json 中删除 statusLine 字段。

完整配置参考:自定义状态行 - Claude Code Docs

扩展机制

Claude Code 提供三种扩展机制,分别解决不同层面的定制需求:

  • Skill:定义可复用的工作流和操作指令。本质是一个 SKILL.md 文件,大模型根据技能名字和描述自动调用,或你用 /skill-name 手动调用,技能名字和描述始终加载到上下文,但完整内容会按需加载,比 CLAUDE.md 更省上下文。

  • Plugin:打包 Skill、Agent、Hook、MCP Server 等组件的容器,通过 Marketplace 安装和管理,插件中的 Skill 使用命名空间(如 /plugin-name:skill-name)避免冲突。

  • Hooks:在特定生命周期事件(如工具调用前、文件编辑后、会话启动时)自动执行脚本,Hooks 配置了就一定会执行。

三者的关系:Plugin 是容器,可以包含 Skill 和 Hook,Skill 和 Hook 也可以独立使用,不依赖 Plugin。


2、Skill 机制

什么是 Skill

Skill 是扩展 Claude Code 能力的核心机制,本质上是一个 目录 + SKILL.md 文件,包含 YAML frontmatter(元数据)+ Markdown 内容(指令)。大模型在需要时自动加载,或你用 /skill-name 手动调用。

与 CLAUDE.md 的区别:

维度

CLAUDE.md

Skill

内容性质

事实性知识:编码规范、项目架构、构建命令

可执行流程:多步骤操作、检查清单、工作流

加载时机

每次会话启动时全量加载

名字和描述始终加载,其他内容按需加载

上下文消耗

始终占用上下文

不用时几乎不消耗

经验法则:

  • 如果内容是"每次会话都该知道的事实",放 CLAUDE.md。

  • 如果是"需要按特定步骤执行的操作流程",放 Skill。

加载机制(两阶段)

Skill 的加载分为两个阶段,这是它比 CLAUDE.md 节省上下文的核心设计:

  1. 会话启动时,Claude Code 扫描所有 Skill 目录,把每个 Skill 的 name(名字)和 description(描述)加载到大模型上下文。这相当于一个"能力清单",让大模型知道有哪些 Skill 可用。描述过长会被截断。

  2. 当 Skill 被实际调用(用户输入 /skill-name 或大模型自动判断需要使用),完整的 SKILL.md 内容才会加载到对话中,加载后内容在本次会话内持续存在。

文件结构

my-skill/
├── SKILL.md          # 主指令文件(必需)
├── template.md       # 模板文件
├── scripts/
│   └── helper.py     # 辅助脚本
└── examples/
    └── sample.md     # 示例输出

SKILL.md 的基本格式:

---
name: my-skill
description: 这个 Skill 做什么,什么时候使用
---

具体指令内容...

存放位置与作用域

位置

路径

作用域

个人级

~/.claude/skills/<name>/SKILL.md

你的所有项目

项目级

.claude/skills/<name>/SKILL.md

仅当前项目

插件级

<plugin>/skills/<name>/SKILL.md

插件启用的范围

调用方式

自动调用

大模型根据 description 判断是否需要使用某个 Skill,当用户的请求匹配 Skill 的描述时,大模型自动调用。

手动调用

在输入框中输入 /skill-name,后面可以跟参数:

/write-article "Claude Code 入门"
/fix-bug 登录页面点击提交按钮后没有反应

实用示例

示例 1:写文章 Skill

~/.claude/skills/write-article/SKILL.md:

---
name: write-article
description: 按照指定风格和结构撰写技术文章
arguments:
  - topic
---

# 撰写技术文章

主题:$topic

## 写作步骤

1. **确定大纲**:先列出文章的章节结构,用编号列出每个章节的标题和要点
2. **撰写正文**:按大纲逐节撰写,每节控制在合理长度
3. **审校优化**:检查逻辑连贯性、表述准确性、格式一致性

## 格式要求

- 一级标题用 `##`,不要用 `#`(留给文件标题)
- 代码块标注语言类型
- 对比内容用表格,说明内容用列表
- 不要使用模糊表述,每个概念都要有明确定义

使用方式:/write-article "Claude Code 入门",参数会替换 $topic。

示例 2:修改 Bug Skill

.claude/skills/fix-bug/SKILL.md:

---
name: fix-bug
description: 系统性修复 Bug,先定位根因再修复,并排查同类问题
---

# 系统性 Bug 修复流程

Bug 描述:$ARGUMENTS

## 步骤

1. **复现问题**:根据上述 Bug 描述,确认复现条件和具体表现
2. **定位根因**:
   - 用 Grep/Glob 搜索相关代码
   - 用 Read 逐层阅读相关文件,理解代码逻辑
   - 不要凭猜测改代码,必须找到确切的根因
3. **修复问题**:针对根因做最小改动,不要顺手重构无关代码
4. **排查同类**:搜索项目中是否存在相同模式的其他位置,一次性全部修复
5. **验证修复**:运行相关测试或手动验证 Bug 已解决

## 原则

- 每次只修一个 Bug,不要混入其他改动
- 改完必须验证,不能假设改了就好了
- 如果发现同类问题,全部列出并修复,不要只修用户报告的那一处

使用方式:/fix-bug 登录页面点击提交按钮后没有反应,Bug 描述会作为 $ARGUMENTS 传入。也可以直接告诉大模型"修复 XXX Bug",大模型根据描述自动调用此 Skill。

完整参考:Skills - Claude Code Docs


3、Hooks 机制

什么是 Hooks

Hooks(钩子)是用户定义的脚本,在 Claude Code 的特定生命周期事件发生时自动执行,Hooks 提供的是确定性控制,你配置了它,它就一定会执行。

配置结构

Hooks 在 settings.json 的 hooks 字段中配置,三层嵌套:

{
  "hooks": {
    "<事件名>": [
      {
        "matcher": "匹配规则",
        "hooks": [
          {
            "type": "command",
            "command": "脚本路径或命令",
            "timeout": 60
          }
        ]
      }
    ]
  }
}

配置位置:

位置

作用域

可共享

~/.claude/settings.json

所有项目

否

.claude/settings.json

当前项目

是(提交到 Git)

.claude/settings.local.json

当前项目

否(加入 .gitignore)

插件 hooks/hooks.json

插件启用范围

是

常用事件

Hooks 支持近 30 个生命周期事件,以下是常用的:

事件

触发时机

可否阻止

SessionStart

会话启动或恢复

否(仅注入上下文)

UserPromptSubmit

用户提交消息,大模型处理前

是

PreToolUse

工具调用执行前

是

PostToolUse

工具调用执行后

否(仅反馈)

PostToolUseFailure

工具调用失败后

否(仅反馈)

Stop

大模型完成响应时

是

PreCompact

上下文压缩前

是

PostCompact

上下文压缩后

否

PermissionRequest

权限对话框出现时

是

匹配规则(matcher)

matcher 字段过滤 Hook 在什么情况下触发:

matcher 值

含义

示例

省略或 ""

匹配所有

每次都触发

纯字母数字

精确匹配工具名

"Bash"

\|

用 \| 分隔

匹配多个工具

含其他字符

JavaScript 正则

"^Notebook"、"mcp__.*"

注

上表第 3 行的竖线字符在原始 PDF 中未正常渲染(字体缺字),此处按「反引号包裹的 | 符号」还原。

对于工具事件(PreToolUse、PostToolUse 等),matcher 匹配的是工具名。

对于 SessionStart,匹配的是会话启动方式(startup、resume、clear、compact)。

实用示例

Hook 脚本通过 stdin 接收 JSON 数据(包含会话信息、工具参数等),通过退出码控制行为。

以下示例由简到复杂,逐步讲解输入输出机制。

示例 1:编辑文件后自动格式化

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
          }
        ]
      }
    ]
  }
}

Claude Code 用 Edit 或 Write 修改文件后触发 PostToolUse 事件,Hook 通过 stdin 收到 JSON 数据,其中 tool_input.file_path 是被修改的文件路径,jq 提取后交给 Prettier 格式化。脚本正常执行完毕(退出码 0),操作继续。

什么是 jq:jqlang.org,一个轻量级且灵活的命令行 JSON 处理器。

stdin JSON 中常用的字段:

字段

说明

session_id

当前会话 ID

cwd

当前工作目录

hook_event_name

事件名

tool_name

工具名(工具事件)

tool_input

工具输入参数(工具事件)

tool_response

工具返回结果(PostToolUse)

prompt

用户输入的内容(UserPromptSubmit)

示例 2:阻止修改受保护文件

脚本 .claude/hooks/protect-files.sh:

#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')

PROTECTED_PATTERNS=(".env" "package-lock.json" ".git/")
for pattern in "${PROTECTED_PATTERNS[@]}"; do
  if [[ "$FILE_PATH" == *"$pattern"* ]]; then
    echo "已阻止:$FILE_PATH 匹配受保护模式 '$pattern'" >&2
    exit 2
  fi
done
exit 0

配置:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/protect-files.sh"
          }
        ]
      }
    ]
  }
}

这个示例演示了退出码 2 的阻止效果。

脚本先用 cat 读取 stdin 的完整 JSON,再从 tool_input.file_path 提取文件路径。如果路径匹配受保护模式(如 .env),就向 stderr(>&2)输出原因并 exit 2,Claude Code 收到退出码 2 后取消操作,并将 stderr 内容反馈给大模型,让它知道为什么被阻止。如果不在保护列表中,exit 0 正常放行。

三个退出码的含义:

退出码

含义

说明

0

成功

stdout 内容会被解析处理

2

阻止

stderr 内容反馈给大模型,操作被取消

其他

非阻塞错误

执行继续,显示 hook 错误提示

示例 3:会话启动时注入提醒

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "echo '提醒:使用 Bun 而不是 npm,提交前运行 bun test'"
          }
        ]
      }
    ]
  }
}

SessionStart 事件的 stdout 内容会注入到大模型上下文,相当于动态的 CLAUDE.md。echo 输出的提醒在每次会话启动时自动注入,让大模型始终知道项目使用 Bun。这个 Hook 不需要处理 stdin,只利用 stdout 的注入能力。

示例 4:桌面通知

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code 完成了任务\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

大模型完成响应后发送 macOS 桌面通知,适合长时间任务完成后提醒。这个 Hook 既不读 stdin 也不写 stdout,只是在 Stop 事件时执行一个系统命令。

示例 5:压缩后重新注入上下文

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "echo '压缩后提醒:当前项目使用 Bun 构建,不要用 npm'"
          }
        ]
      }
    ]
  }
}

SessionStart 的 matcher 设为 compact 表示仅在上下文压缩触发的新会话中执行,用于补充压缩后可能丢失的关键信息。

示例 6:自动批准特定权限请求

{
  "hooks": {
    "PermissionRequest": [
      {
        "matcher": "ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PermissionRequest\", \"decision\": {\"behavior\": \"allow\"}}}'"
          }
        ]
      }
    ]
  }
}

当退出码为 0 时,Hook 的 stdout 如果是合法 JSON,Claude Code 会解析其中的结构化指令:

  • continue: false:停止当前操作

  • stopReason:停止原因

  • systemMessage:给用户的警告信息

  • hookSpecificOutput.permissionDecision:PreToolUse 事件的权限决定(allow/deny/ask)

  • hookSpecificOutput.decision.behavior:PermissionRequest 事件的决定(allow/deny)

本例中,stdout 输出 JSON 指定 decision.behavior: "allow",自动批准 ExitPlanMode 的权限请求,跳过弹窗确认。

完整参考:Hooks - Claude Code Docs


4、Plugin 机制

什么是 Plugin

Plugin(插件)是一个自包含的目录,打包了多种组件来扩展 Claude Code 的功能。一个插件可以包含:

组件

说明

Skills

可复用的指令集,以 /plugin-name:skill-name 形式调用

Agents

专用子 Agent 定义

Hooks

生命周期事件处理器

MCP Servers

外部工具服务连接

LSP Servers

语言服务协议集成(代码智能)

插件通过 Marketplace(市场) 分发和安装,支持版本管理。

目录结构

my-plugin/
├── .claude-plugin/
│   └── plugin.json      # 清单文件(可选)
├── skills/              # Skill(子目录中的 SKILL.md)
├── agents/              # 子 Agent 定义
├── hooks/
│   └── hooks.json       # Hook 配置
├── .mcp.json            # MCP 服务器定义
├── .lsp.json            # LSP 服务器配置
├── settings.json        # 插件默认设置
├── scripts/             # Hook/工具脚本
└── bin/                 # 可执行文件,加入 PATH

注意

只有 plugin.json 放在 .claude-plugin/ 目录内,其他所有目录都在插件根目录下。

清单文件(plugin.json)

.claude-plugin/plugin.json 定义插件的元数据和组件路径:

{
  "name": "my-plugin",
  "version": "1.0.0",
  "description": "插件简介",
  "author": { "name": "作者名" },
  "homepage": "https://github.com/...",
  "license": "MIT",
  "dependencies": ["other-plugin"]
}

主要字段:

  • name(必需):插件唯一标识,kebab-case 格式

  • version:语义版本号

  • dependencies:依赖的其他插件

  • userConfig:用户可配置的值,启用插件时提示输入

Marketplace(市场)

Marketplace 是插件的分发渠道。

三类市场

类型

说明

示例

官方市场

Anthropic 维护,自动可用

claude-plugins-official

社区市场

第三方插件,通过安全审查

claude-plugins-community

自定义市场

团队或个人创建

任何 Git 仓库或本地目录

管理命令

/plugin marketplace add <repo>    # 添加市场
/plugin marketplace list          # 查看所有市场
/plugin install <name>            # 从市场安装插件
/plugin update <name>             # 更新插件
/plugin uninstall <name>          # 卸载插件
/plugin list                      # 查看已安装插件

市场来源类型

  • github:GitHub 仓库

  • directory:本地目录

  • git:Git 仓库

  • npm:npm 包

  • url:远程 URL

配置方式

settings.json 中启用/禁用插件

{
  "enabledPlugins": {
    "code-review@claude-plugins-official": true,
    "superpowers@claude-plugins-official": true,
    "frontend-design@claude-plugins-official": false
  }
}

格式为 plugin-name@marketplace-name,设为 true 启用,false 禁用。

注册市场

{
  "extraKnownMarketplaces": {
    "my-team-plugins": {
      "source": {
        "source": "github",
        "repo": "my-org/claude-plugins"
      }
    },
    "local-plugins": {
      "source": {
        "source": "directory",
        "path": "/path/to/plugins"
      }
    }
  }
}

安装作用域

作用域

配置文件

说明

用户级

~/.claude/settings.json

所有项目(默认)

项目级

.claude/settings.json

团队共享,通过 Git

项目本地

.claude/settings.local.json

仅自己,加入 .gitignore

实际配置示例

以下是一个完整的 settings.json 插件配置示例:

{
  "enabledPlugins": {
    "frontend-design@claude-plugins-official": false,
    "code-review@claude-plugins-official": true,
    "code-simplifier@claude-plugins-official": true,
    "skill-creator@claude-plugins-official": false,
    "playwright@claude-plugins-official": false,
    "security-guidance@claude-plugins-official": false,
    "rust-analyzer-lsp@claude-plugins-official": false,
    "chrome-devtools-mcp@claude-plugins-official": false,
    "superpowers@claude-plugins-official": true
  },
  "extraKnownMarketplaces": {
    "zai-coding-plugins": {
      "source": {
        "source": "directory",
        "path": "/Users/dadudu/.npm/_npx/2f024689b4d0d3b0/node_modules/@z_ai/coding-helper/zai-coding-plugins"
      }
    },
    "claude-plugins-official": {
      "source": {
        "source": "github",
        "repo": "anthropics/claude-plugins-official"
      }
    },
    "langchain-skills": {
      "source": {
        "source": "github",
        "repo": "langchain-ai/langchain-skills"
      }
    }
  }
}

说明:

  • enabledPlugins 中启用了 code-review、code-simplifier、superpowers 三个插件,其余保持禁用

  • extraKnownMarketplaces 注册了三个市场:zai-coding-plugins(智谱本地目录)、claude-plugins-official(官方 GitHub 仓库)、langchain-skills(LangChain 社区仓库)

完整参考:Plugins - Claude Code Docs


5、常用命令

输入 / 即可看到所有可用命令的完整列表。以下按类别整理常用命令。

会话管理

命令

说明

消耗 token

/clear

清空当前对话,从头开始(别名:/reset、/new)

否

/compact [指令]

压缩上下文,释放窗口空间。可附加指令指定压缩重点

是(生成摘要)

/resume [会话]

恢复之前的会话,不传参数打开选择器(别名:/continue)

否

/rewind

回滚对话和/或代码到之前的某个检查点(别名:/undo)

否(纯回滚)/ 是(摘要)

/branch [名称]

从当前位置创建一个对话分支(别名:/fork)

否

/rename [名称]

重命名当前会话,不传参数自动生成

否

/recap

生成一行会话摘要

是

/btw <问题>

快速旁问,不写入对话历史,复用父级缓存,成本低

极少

/exit

退出 CLI(别名:/quit)

否

/background [提示]

将当前会话 detach 为后台 Agent 运行(别名:/bg)

是

/recap 与 /compact 的区别

/recap 只是生成一条摘要让你回顾当前会话做了什么,对话内容原封不动,上下文不会释放。/compact 会把完整对话历史压缩成精简摘要来替换原文,真正释放上下文窗口空间。简单说:想回顾进度用 /recap,对话太长快满了用 /compact。

记忆与上下文

命令

说明

消耗 token

/memory

编辑 CLAUDE.md 文件、开关 Auto Memory、查看记忆条目

否

/context [all]

可视化当前上下文使用情况,传 all 展开详细分类

否

/init

初始化项目 CLAUDE.md,自动分析项目结构生成指引

是

/skills

列出所有可用 Skill,按 t 排序,Space 显隐

否

/reload-skills

重新扫描 Skill 目录,新添加的 Skill 无需重启即可使用

否

权限与安全

命令

说明

消耗 token

/permissions

管理工具的 allow/ask/deny 规则(别名:/allowed-tools)

否

/security-review

分析当前分支的未提交变更是否存在安全漏洞

是

配置与诊断

命令

说明

消耗 token

/config

打开设置界面,调整主题、模型、输出风格等(别名:/settings)

否

/doctor

诊断安装和配置问题,按 f 自动修复

否

/status

查看版本、模型、账号、连接状态

否

/usage

查看当前会话用量和费用(别名:/cost、/stats)

否

/hooks

查看 Hook 配置

否

界面与显示

命令

说明

消耗 token

/theme

切换颜色主题(含无障碍主题)

否

/color [颜色]

设置提示栏颜色:red/blue/green/yellow/purple/orange/pink/cyan

否

/tui [default \| fullscreen]

切换终端 UI 渲染模式(见下方说明)

—

/focus

切换专注模式(仅显示提示、工具摘要和响应)

否

/diff

打开交互式 diff 查看器,查看未提交的变更

否

/statusline

配置状态行,用自然语言描述你想显示什么即可

否

/keybindings

打开快捷键配置文件

否

TUI 是什么?

TUI(Terminal User Interface,终端用户界面)指在终端里绘制完整的图形界面。Claude Code 提供两种模式:

  • default:普通 CLI 模式,文字逐行滚动输出,和传统终端一样

  • fullscreen:TUI 全屏模式,占满终端窗口,有独立的布局区域,不会上下滚动闪烁,适合长时间使用

通过 /tui fullscreen 切换到全屏模式,或在 settings.json 中设置 "tui": "fullscreen"。

开发工作流

命令

说明

消耗 token

/plan [描述]

直接进入 Plan 模式,可选附带任务描述

是

/goal [条件]

设置目标:Claude Code 持续工作直到条件满足(见下方说明)

是

/export [文件名]

导出当前对话为纯文本

否

/copy [N]

复制最近一次(或第 N 次)助手回复到剪贴板

否

/add-dir <路径>

添加额外的工作目录供当前会话访问

否

什么时候用 /goal?

不用 /goal,Claude Code 也是你给一次提示它做一轮,你检查结果后再决定要不要继续。/goal 的作用是把"你检查 → 你再提示"这个循环自动化——设一个终止条件(如 /goal 所有测试通过),Claude Code 会自己改完一轮、跑测试、没过就继续改,直到条件满足才停。适合需要反复迭代、不确定要几轮的场景(修测试、调样式、性能优化)。一轮对话就能搞定的任务不需要用它。

插件与 MCP

命令

说明

消耗 token

/plugin

管理插件(安装、卸载、更新、列表)

否

/reload-plugins

重新加载所有活跃插件,应用变更无需重启

否

/mcp

管理 MCP 服务器连接和 OAuth 认证

否

/agents

管理 Agent 配置

否

代码审查与验证

命令

说明

消耗 token

/code-review [级别]

审查当前 diff 的正确性和改进机会(Skill)

是

/simplify [目标]

审查变更代码的简化机会并应用修复,4 个并行 Agent(Skill)

是

/verify

构建并运行项目,确认代码变更是否正确(Skill)

是

/run

启动项目应用并驱动验证(Skill)

是

任务管理

命令

说明

消耗 token

/tasks

列出和管理后台任务(别名:/bashes)

否

/loop [间隔] [提示]

重复执行提示词,不传间隔为自适应模式(Skill,别名:/proactive)

是

快捷前缀

前缀

说明

/

斜杠命令

!

Shell 模式,直接执行命令并将输出加入上下文

@

文件路径提及,触发路径自动补全

完整命令参考:Commands - Claude Code Docs


6、Claude Code 常用插件和技能

官方推荐:claude.com/plugins

社区 Skill:skills.sh

先安装插件市场:

claude plugin marketplace add anthropics/claude-plugins-official

FrontendDesign

生成独具特色、生产级的前端界面,摆脱千篇一律的 AI 设计风格。该插件让 Claude 能够创建具有大胆美学选择、独特字体与配色方案、高冲击力动画以及情境感知视觉细节的精良代码。插件会在编码前建立设计框架——明确用途、目标受众及特定美学方向(粗野主义、极繁主义、复古未来风、奢华感、趣味性等),刻意规避系统默认字体、程式化紫色渐变和模板化组件等常见模式。

核心设计维度包括:通过非常规字体组合实现的深思熟虑的排版,经过编排的动效与滚动触发交互,采用不对称布局和破格元素的空间构成,以及通过渐变、纹理和分层效果打造的视觉层次。

claude plugin install frontend-design@claude-plugins-official

Superpowers

Superpowers 是一套综合性技能框架,旨在教授 Claude 结构化软件开发方法。该框架提供可组合的技能模块,涵盖测试驱动开发(TDD)、系统化调试、头脑风暴、内置代码审查的代理驱动开发,以及创建新技能的能力。插件强制实施严谨的实践规范:要求测试必须先失败再实现的"红-绿-重构"TDD 循环;包含根本原因调查的四阶段调试方法;以及在编码前通过苏格拉底式研讨完善需求的流程。

claude plugin install superpowers@claude-plugins-official

Context7

Context7 是一款 MCP 服务器,它能将最新、版本专属的文档和代码示例直接注入你的提示词中。它解决了大型语言模型(LLM)的常见问题:训练数据过时导致虚构的 API 接口和已弃用的代码模式。不同于依赖陈旧信息,Context7 直接从源代码仓库获取最新文档。该插件提供两大核心工具:resolve-library-id(用于将库名称匹配至 Context7 兼容标识符)和 query-docs(用于检索特定库的文档)。你甚至可以在提示词中指定版本号来锁定具体版本。使用方法:只需在需要最新文档的任意提示词中添加 "use context7"。例如:"创建一个检查 cookie 中有效 JWT 的 Next.js 中间件。use context7" 或 "配置 Cloudflare Worker 脚本以缓存 JSON API 响应。use context7"。你还可以通过 "use library /supabase/supabase for API and docs" 精确指定库文件。

claude plugin install context7@claude-plugins-official

CLAUDE.md Management

保持项目记忆的新鲜与高效。该插件提供工具来审核 CLAUDE.md 文件质量并捕捉会话学习成果,确保 Claude 始终拥有在代码库中高效工作所需的上下文环境。claude-md-improver 技能会扫描您的代码库中的所有 CLAUDE.md 文件,根据质量标准(命令、架构、注意事项、简洁性)进行评估,并生成包含评分和等级的质量报告。随后,它会根据发现的不足提出针对性的补充建议。

/revise-claude-md 命令帮助您在会话结束时记录学习成果——发现的 bash 命令、遵循的代码模式、遇到的环境异常——并建议更新相应的 CLAUDE.md 或 .claude.local.md 文件。

使用方法:

  • 输入 "audit my CLAUDE.md files" 或 "check if my CLAUDE.md is up to date" 触发审核功能

  • 在富有成效的会话后运行 /revise-claude-md 来记录新见解

  • 插件将以差异对比形式展示建议修改内容,仅在获得您批准后才会应用更改

claude plugin install claude-md-management@claude-plugins-official

Playwright

Playwright MCP 使 Claude 能够通过结构化的无障碍数据而非截图来自动化浏览器交互。这提供了快速、轻量级的浏览器自动化,无需依赖视觉模型——Claude 直接与页面的无障碍树协作,实现确定性和可靠的交互。

主要功能包括:导航到 URL、点击元素、填写表单、处理文件上传、管理浏览器对话框、截图、生成 PDF 以及运行自定义的剧作家脚本。服务器还提供标签页管理、网络请求检查、控制台消息检索以及全面的测试断言工具,用于端到端测试工作流。

使用方法:自然地要求 Claude 执行浏览器任务。可以尝试以下提示,如"导航到 example.com 并截图"、"用用户名 test@email.com 填写登录表单"、"点击提交按钮并等待确认消息"或"运行一个端到端测试,验证结账流程是否正常工作"。Claude 将使用适当的浏览器自动化工具来完成这些任务。

claude plugin install playwright@claude-plugins-official

Skill Creator

Skill Creator 是一套用于开发、测试和迭代 Claude 代码技能的综合工具包。它提供四种操作模式——创建(Create)、评估(Eval)、改进(Improve)和基准测试(Benchmark)——引导您完成从初始概念到优化、生产就绪技能的完整开发生命周期。

底层由四个可组合的智能体处理专项任务:执行器(Executor)根据评估提示运行技能,评分器(Grader)根据预设标准评估输出结果,比较器(Comparator)对技能不同版本进行盲测 A/B 对比,分析器(Analyzer)则基于测试结果提出针对性改进建议。这些智能体共同实现了严谨的数据驱动型技能优化。

该插件还包含实用脚本,用于初始化技能、验证配置、准备评估用例,以及通过方差分析汇总基准测试结果——让您能够以统计学置信度衡量技能表现。

使用方法:输入指令 /skill-creator 并选择模式。可尝试如下提示:"创建一个审查 PR 安全漏洞的新技能"、"对我的代码审查技能运行评估"、"根据这些测试用例改进我的部署技能"或"对我的技能进行 10 次基准测试并显示方差"。交互式工作流将引导您完成需求收集、测试用例创建和迭代优化全过程。

claude plugin install skill-creator@claude-plugins-official

find-skill

这个技能能帮助您发现并安装来自开放智能体技能生态系统的技能。

npx skills add https://github.com/vercel-labs/skills --skill find-skills

7、Codex 常用功能介绍

本文介绍 Codex App 常用功能的作用、适用场景和使用建议。

1. 权限模式

权限模式决定 Codex 能不能直接执行命令、修改文件、访问网络,以及遇到风险操作时由谁来审批。在 Codex App 里,常见选择可以按下面理解:

模式

作用

默认权限

最安全,Codex 可以在项目内读写文件、运行命令,遇到联网、工作区外写入或更高风险动作时会请求你批准

自动审查

最舒服,Codex 需要审批的动作会先交给自动审查器判断,低风险请求可自动放行,高风险请求仍会被拦截或要求更明确授权

完全访问权限

最自由,一律通过

2. 查看额度

Codex App 的额度与上下文、速率限制和你的 ChatGPT 套餐有关。

最常用的查看方式是:

  • 输入 /状态 进行查看

  • 在 设置 > 剩余用量 中查看

3. 计划模式

计划模式用于先理清需求,再动手执行。它适合复杂、不确定或风险较高的任务,例如迁移框架、重构核心模块、排查疑难 bug、设计多阶段实现方案。

使用方式:

  • 输入 /计划

  • 通过输入框附近的模式入口切换到计划模式

计划模式的价值是减少误改。它把"理解问题"和"修改代码"分开,尤其适合你还没有完全确定方案时使用。

4. 目标模式

目标模式让 Codex 围绕一个目标工作,直到完成、暂停或需要更多输入。它适合多步骤、长时间、需要持续检查完成条件的任务。

使用方式:

  • 输入 /目标

  • 通过输入框附近的模式入口切换到追求目标模式

好的目标应该包含明确结果和验收标准,例如:

把这个项目迁移到 TypeScript,要求 strict mode 编译通过,不能留下显式 any。

目标模式启动后,App 通常会在输入框上方显示目标进度,并提供暂停、恢复、编辑、清除等控制。

5. 侧边聊天

输入 /侧边,在当前会话旁边临时开一个聊天窗口,用来提问、确认状态或让 Codex 解释当前思路,侧边聊天会继承原会话的上下文,所以 Codex 知道你们刚才在做什么,常见用途:

  • 询问进度:例如“现在做到哪一步了?”“还剩什么没完成?”

  • 解释当前修改:例如“为什么要改这个文件?”“这个方案有什么风险?”

  • 确认小决策:例如“这里用 A 库还是 B 库更合适?”但不让主任务立刻偏航。

  • 临时追问:例如让 Codex 解释一个术语、总结当前上下文、整理下一步。

侧边聊天不会新开一个对话(不会出现在对话记录里)。

6. 派生功能

输入 /派生,会从当前会话分叉出一个新会话,和侧边聊天一样,派生出来的新会话也会继承原会话里的上下文。

它适合在"已有上下文还想复用,但接下来想换一个方向"时使用。

派生会新开一个对话(会出现在对话记录里)。

7. 批注修改

批注修改是让你把反馈精确绑定到代码行、页面元素或视觉区域,然后让 Codex 按批注修复。

8. 插件机制

一个插件里可以包含三类东西:技能、MCP 服务器、应用,安装一个插件,就相当于把插件里包含的这些能力一起安装到 Codex 里。

比如 Computer Use 就是一个插件,里面包含了技能和 MCP 服务器:

(原文此处为插件组成截图)

安装完之后就会多一个 Computer Use 的技能:

(原文此处为 Computer Use 技能截图)

9. 技能机制

技能(Skill)把某类任务的步骤、规则、参考资料和可选脚本写进一个 SKILL.md,让 Codex 在合适任务中自动加载。

技能的核心作用:

  • 让 Codex 按固定流程做事,例如系统性调试、文档生成、图片生成、插件创建。

  • 把复杂上下文拆到技能文件中,避免每次提示都重复长说明。

  • 让团队把项目专属流程写成可复用能力。

技能使用"渐进式披露":

  • Codex 初始只看到技能名称、描述和路径。

  • 当任务匹配技能描述,或你显式调用 $skill-name 时,Codex 才读取完整 SKILL.md。

  • 这样既保留可发现性,又不会一开始就占满上下文。

常见调用方式:

/skill-creator
/imagegen 生成一个应用封面图

技能可以存放在仓库目录、个人用户目录、插件中,仓库级技能适合团队共享,个人技能适合你的长期习惯,插件则适合把技能分发给更多人。

10. Browser Use

Browser Use 可以让 Codex 操作 Codex App 内置浏览器。它适合本地 Web 应用开发、UI 回归检查、页面截图、元素点击、表单输入、只读页面检查和视觉问题复现。

(原文此处为 Browser Use 截图)

使用前提:

  • 安装并启用浏览器插件。

  • 使用 in-app browser 打开本地开发服务器、文件预览或无需登录的公开页面。

  • 允许 Codex 使用目标网站。

示例:

使用 @浏览器 打开 http://localhost:3000/settings,复现移动端布局溢出问题,并修复最小代码路径。

适合场景:

  • 检查前端页面是否真的渲染正确。

  • 复现只有浏览器里才能看到的布局 bug。

  • 根据页面批注修复 UI。

  • 运行本地开发服务器后让 Codex 验证修改结果。

限制:

  • in-app browser 不支持登录态、你的常规浏览器 profile、cookies、扩展或已有标签页。

  • 页面内容应视为不可信上下文,不要在其中粘贴秘密信息。

需要登录态的网站更适合使用 Chrome 插件,因为它可以基于你的 Chrome 登录状态、Cookie 和浏览器环境工作。

(原文此处为 Chrome 插件截图)

11. Computer Use

Computer Use 能让 Codex 看见并操作 macOS 或 Windows 操作系统。

功能强大但还不稳定,适合很多场景,特别消耗 token。

12. 上下文压缩机制

Codex 会监控上下文窗口的剩余空间,并自动压缩上下文:把重要信息总结成更短的摘要,丢弃不太相关的细节。

这样长任务可以继续推进,而不是因为上下文满了就停止。

上下文压缩的作用:

  • 保留目标、关键决策、当前状态、待办事项

  • 减少长日志、重复输出、历史探索过程带来的噪音

  • 支持多轮、长时间任务持续工作。

Codex 自动压缩没有一个对所有情况固定的公开阈值,官方手册里的说法是:Codex 会监控上下文窗口剩余空间,长任务中可能自动压缩,具体阈值默认由模型决定。

13. 记忆机制

Codex 不会默认自动生成记忆,因为记忆功能默认是关闭的。

自定义指令就是 AGENTS.md,也是一种记忆。

(原文此处为 AGENTS.md 截图)

/记忆 对应两个开关,但仅对当前对话生效

(原文此处为记忆开关截图)

  • 使用记忆:表示是否允许当前对话读取过去已经生成的记忆(前提是你要开启了记忆机制)。

  • 生成记忆:表示是否允许当前 Codex 根据当前对话去生成记忆(前提是你要开启了记忆机制)。

另外,若套餐额度接近限制,记忆生成可能会跳过,以节省使用量。

14. 桌面宠物

桌面宠物(Codex pets),能以浮动在桌面的方式展示当前 Codex 工作状态,让你在使用其他应用时也能快速看到任务是否运行、等待输入或需要审查。

输入框中输入 /宠物 就可以打开宠物。

也可以选择不同的宠物或创建自己的宠物。

(原文此处为桌面宠物截图)

原创

二.Claude Code 基础入门到实战

本文链接: 二.Claude Code 基础入门到实战

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录