Claude Code 学习站

Claude Code 内置工具完整参考

Claude Code 所有内置工具的权限要求、规则格式与各工具详细行为,含 Bash/Edit/Grep/WebFetch 等字段说明,适合快速查阅配置。

本页目录16
AI 摘要 · 1 处待复核整理于 2026-06-21原文:Tools reference(Anthropic)Claude Code工具参考权限配置内置工具
要点速览
  • 工具名称即权限规则中的精确字符串,用于 `permissions.allow`/`permissions.deny`、`--allowedTools`/`--disallowedTools`、Hook matcher 等场景
  • 权限规则格式为 `工具名(specifier)`;`Edit(...)` 允许规则同时授予对同路径的读权限,无需额外 `Read(...)` 规则
  • Bash 默认超时 2 分钟/上限 10 分钟,输出限 30,000 字符(硬上限 150,000),可通过 `BASH_DEFAULT_TIMEOUT_MS`/`BASH_MAX_TIMEOUT_MS`/`BASH_MAX_OUTPUT_LENGTH` 调整
  • Edit 工具须先读后写且 `old_string` 精确唯一;Write 工具覆盖已有文件同样须先读;`cat`/`head`/`tail`/`grep` 等 Bash 命令可满足读取要求
  • `TodoWrite` v2.1.142 起默认禁用(由 Task 系列工具替代),`TaskOutput` 已废弃;`Monitor`/`ScheduleWakeup`/`RemoteTrigger` 仅 Anthropic 平台可用
  • Grep 基于 ripgrep 语法且遵守 `.gitignore`;Glob 默认不遵守 `.gitignore`(设 `CLAUDE_CODE_GLOB_NO_IGNORE=false` 启用);WebFetch 对 HTML 有损提取并缓存 15 分钟

本文是对官方参考页的中文整理,完整与最新内容以原文为准:Tools reference

工具总览

Claude Code 内置工具列表。工具名是权限规则、子智能体工具列表和 Hook 匹配器中使用的精确字符串。如需禁用某工具,将其名称加入设置中的 deny 数组。如需添加自定义工具,连接 MCP 服务器。

工具名说明需要权限
Agent派生子智能体(独立上下文窗口)处理任务,返回单个文本结果
Artifact将 HTML 或 Markdown 发布为 claude.ai 私有交互页面;需 Team/Enterprise 计划及 /login 认证
AskUserQuestion通过多选题收集需求或澄清歧义
Bash在当前环境中执行 Shell 命令
CronCreate在当前会话内创建定时或一次性任务;--resume/--continue 时若未过期可恢复
CronDelete按 ID 取消定时任务
CronList列出会话内所有定时任务
Edit对指定文件进行精准字符串替换(先读后写,精确匹配)
EnterPlanMode切换到计划模式,先设计方案再编写代码
EnterWorktree创建隔离 git worktree 并切换进入;传 path 可切换到现有 worktree
ExitPlanMode展示计划供用户确认并退出计划模式
ExitWorktree退出 worktree 会话,回到原目录
Glob按名称模式查找文件(默认不遵守 .gitignore
Grep按内容模式搜索文件(基于 ripgrep,遵守 .gitignore
ListMcpResourcesTool列出已连接 MCP 服务器暴露的资源
LSP语言服务器代码智能:跳转定义、查找引用、类型错误报告等
Monitor后台运行命令并将每行输出实时反馈给 Claude;需 v2.1.98+;不支持 Bedrock/Vertex/Foundry
NotebookEditcell_id 修改 Jupyter Notebook 单元格
PowerShell原生执行 PowerShell 命令
PushNotification发送桌面通知;连接 Remote Control 时也推送手机;仅 Anthropic 托管基础设施可用
Read读取文件内容(带行号),支持图片/PDF/.ipynb
ReadMcpResourceTool按 URI 读取指定 MCP 资源
RemoteTrigger创建/更新/运行/列出 claude.ai Routines;需 Pro/Max/Team/Enterprise 计划;仅 Anthropic 可用
ScheduleWakeup为自定节奏 /loop 安排下次唤醒;由 Claude 自动调用,不直接调用;仅 Anthropic 可用
SendMessage向 Agent Team 队友发消息,或按 Agent ID 恢复已停止的子智能体
ShareOnboardingGuide上传 ONBOARDING.md 并返回分享链接;需 Pro/Max/Team/Enterprise 计划
Skill在主对话中执行 Skill
TaskCreate在任务列表中创建新任务
TaskGet获取指定任务完整详情
TaskList列出所有任务及当前状态
TaskOutput(已废弃) 获取后台任务输出;建议改用 Read 读取任务输出文件
TaskStop按 ID 终止正在运行的后台任务
TaskUpdate更新任务状态/依赖/详情,或删除任务
TodoWrite管理会话任务清单;v2.1.142 起默认禁用,由 Task 系列工具替代;设 CLAUDE_CODE_ENABLE_TASKS=0 可重新启用
ToolSearch在启用工具搜索时搜索并加载延迟工具
WaitForMcpServers等待后台仍在连接的 MCP 服务器;v2.1.142+;仅在工具搜索禁用时出现
WebFetch从指定 URL 抓取内容(HTML 转 Markdown,模型提取,缓存 15 分钟)
WebSearch执行网络搜索,返回标题和 URL
Workflow运行动态 Workflow 脚本,后台编排多个子智能体并返回汇总结果
Write创建或全量覆盖文件(不追加/合并)

权限规则格式

工具名在以下场景中直接引用:permissions.allow/permissions.deny--allowedTools/--disallowedTools CLI 标志、Agent SDK 的 allowedTools/disallowedTools、子智能体 frontmatter 的 tools/disallowedTools、Skill frontmatter 的 allowed-tools、Hook 的 if 条件。

所有场景均接受 工具名(specifier) 格式:

规则格式示例适用工具specifier 类型
Bash(npm run *)Bash、Monitor命令模式匹配
PowerShell(Get-ChildItem *)PowerShell命令模式匹配
Read(~/secrets/**)Read、Grep、Glob、LSP路径模式匹配
Edit(/src/**)Edit、Write、NotebookEdit路径模式匹配
Skill(deploy *)SkillSkill 名称匹配
Agent(Explore)Agent子智能体类型匹配
WebFetch(domain:example.com)WebFetch域名匹配
WebSearchWebSearch无 specifier,整体允许/拒绝
  • Edit(...) 允许规则同时授予对同路径的读权限,无需额外 Read(...) 规则。
  • Hook matcher 字段使用裸工具名(不含括号),与上述格式不同。
  • ExitPlanModeShareOnboardingGuide 等未列工具仅接受裸工具名,无 specifier。

Agent 工具行为

特性说明
上下文隔离子智能体在独立上下文窗口运行;父对话仅看到最终文本结果,不看中间步骤
工具继承(均未设置)子智能体继承父级所有可用工具
工具继承(仅设置 tools子智能体仅获得列出的工具
工具继承(仅设置 disallowedTools子智能体获得父级所有工具,减去列出的
工具继承(两者均设置)disallowedTools 优先;同时出现在两个列表的工具被移除
前台子智能体权限与主对话相同的权限提示,在发生时展示
后台权限(v2.1.186+)提示在主会话中显示,注明请求来源;按 Esc 拒绝该次调用但不停止子智能体
后台权限(v2.1.186 前)会引起提示的工具调用自动拒绝,子智能体继续运行
圈次上限在子智能体定义中设置 maxTurns
Fork 模式继承父对话完整历史;始终后台运行

Bash 工具行为

行为/特性说明
工作目录持久化主会话中 cd 的新目录延续到后续命令,须在项目目录或 additionalDirectories 范围内
子智能体工作目录子智能体会话延续工作目录变更
超出范围重置cd 超出允许范围时重置到项目目录,结果中追加 Shell cwd was reset to <dir>
禁用持久化设置 CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1 让每条命令从项目目录开始
环境变量持久;export 设置的变量不延续到下一条命令
Shell 别名/函数可用;启动时从 ~/.zshrc/~/.bashrc/~/.profile 读取并应用
默认超时2 分钟;Claude 可请求最长 10 分钟
超时配置BASH_DEFAULT_TIMEOUT_MS(默认值)/BASH_MAX_TIMEOUT_MS(上限)
默认输出上限30,000 字符;超出时保存全文到文件,给 Claude 文件路径和预览
输出上限配置BASH_MAX_OUTPUT_LENGTH,硬上限 150,000 字符
后台长任务可设 run_in_background: true;用 /tasks 查看和停止
持久环境变量启动前设 CLAUDE_ENV_FILE 指向 Shell 脚本,或使用 SessionStart Hook

满足「先读后写」要求的 Bash 命令(单文件、无管道/重定向):catheadtailsed -n 'X,Yp'grepegrepfgrep

Edit 工具行为

Edit 工具执行精确字符串替换(无正则、无模糊匹配)。

要求说明
先读后写Claude 必须在当前对话中读取过该文件,且文件自读取后未在磁盘变化
精确匹配old_string 必须与文件内容完全一致,一个空格/缩进差异即失败
唯一性old_string 在文件中须只出现一次;多次出现时需提供更多上下文,或设 replace_all: true 全部替换

Read deny 规则也适用于 Bash 中 Claude Code 识别的文件命令(cat/head/tail/sed/grep),但不适用于间接读写文件的子进程(如 Python/Node 脚本)。

Glob 工具行为

特性说明
语法标准 glob,支持 ** 递归;如 **/*.jssrc/**/*.ts*.{json,yaml}
结果排序按修改时间排序
结果上限最多 100 个文件;达上限时 Claude 收到截断标志,可缩小模式
.gitignore 默认遵守;设 CLAUDE_CODE_GLOB_NO_IGNORE=false 可启用遵守
与 Grep 区别Grep 遵守 .gitignore;Glob 默认不遵守

Grep 工具行为

Grep 基于 ripgrep,使用 ripgrep 正则语法(非 POSIX grep)。

特性说明
正则语法ripgrep 正则;正则元字符需用反斜杠转义(例如在 Go 代码中搜索 interface{} 需写作 interface\{\}
输出模式 files_with_matches仅返回文件路径(默认
输出模式 content返回匹配行(含文件名和行号)
输出模式 count返回每个文件的匹配次数
按文件过滤glob 参数,如 **/*.tsx
按语言过滤type 参数,如 pyrust
多行匹配默认单行;设 multiline: true 可跨行
.gitignore遵守;搜索被忽略的文件须直接传入其路径

LSP 工具行为

LSP 工具通过运行中的语言服务器提供代码智能;每次文件编辑后自动报告类型错误和警告。需安装对应语言的代码智能插件后才激活。

功能说明
跳转定义找到符号的定义位置
查找引用找到符号的所有引用
类型信息获取指定位置的类型信息
列出符号列出文件内所有符号
跨工作区搜索按名称搜索符号
查找实现找到接口的所有实现
调用层次追踪调用链

Monitor 工具

需 Claude Code v2.1.98+。不支持 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry。设置了 DISABLE_TELEMETRYCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 时不可用。

特性说明
用途后台监控;Claude 收到输出行时在对话中实时响应,不中断当前交互
典型场景追踪日志文件错误、轮询 PR/CI 状态、监控目录变更、追踪长运行脚本输出
权限规则与 Bash 共用(相同的 allow/deny 命令模式适用)
停止方式让 Claude 取消,或结束会话
插件 Monitor插件可声明随插件激活自动启动的 Monitor

NotebookEdit 工具行为

NotebookEdit 按 cell_id 逐单元格修改 Jupyter Notebook,不执行跨文件字符串替换。

参数/模式说明
replace(默认)覆盖目标单元格内容
insert在目标单元格之后插入新单元格;无 cell_id 时插到开头;需设 cell_typecodemarkdown
delete删除目标单元格
权限规则格式使用 Edit(...) 路径格式,如 Edit(notebooks/**) 覆盖该目录下的所有 NotebookEdit 调用

PowerShell 工具

平台默认状态
Windows(无 Git Bash)自动启用
Windows(有 Git Bash)逐步推出(可设 CLAUDE_CODE_USE_POWERSHELL_TOOL=0 退出)
Linux / macOS / WSL需手动启用(需 PowerShell 7+,pwsh 在 PATH)

启用方式:设环境变量 CLAUDE_CODE_USE_POWERSHELL_TOOL=1,或在 settings.jsonenv 字段中添加键 CLAUDE_CODE_USE_POWERSHELL_TOOL 值为 1

执行策略:默认以 -ExecutionPolicy Bypass(进程级)启动,不改变机器策略,但企业级 Group Policy 仍生效。设 CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1 可遵守机器生效策略。

Windows 上自动检测 pwsh.exe(PowerShell 7+),可降级到 powershell.exe(5.1)。启用后 Claude 以 PowerShell 为主 Shell,Git Bash 安装时 Bash 工具仍可用于 POSIX 脚本。

附加配置项说明依赖条件
defaultShell: powershellsettings.json将交互式 ! 命令路由到 PowerShell需启用 PowerShell 工具
shell: powershell(Hook 字段)该 Hook 在 PowerShell 中运行无需启用 PowerShell 工具
shell: powershell(Skill frontmatter)Skill 中的命令块在 PowerShell 中运行需启用 PowerShell 工具

预览期已知限制:PowerShell profiles 不加载;Windows 上不支持沙箱。

工作目录重置行为与 Bash 工具相同,CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR 同样适用。

Read 工具行为

特性说明
返回格式带行号的文件内容
超出 Token 限制返回首页并附 PARTIAL view 提示;Claude 可用 offset/limit 参数继续读取
显式 offset/limit 超限返回错误(而非截断)
图片(PNG、JPG 等)返回视觉内容(非原始字节);大图先缩放/重压缩再发送
PDF短文件整体读取;超 10 页时按 pages 参数分段读(如 '1-5'),每次最多 20 页
.ipynb返回所有单元格及其输出(代码、Markdown、可视化)
目录不支持;目录列表通过 Bash ls 实现

WebFetch 工具行为

特性说明
处理方式HTML 转 Markdown,再用小型快速模型按提示词提取;Claude 收到模型回答(有损设计)
HTTP 自动升级HTTP URL 自动升级为 HTTPS
大页面截断超固定字符上限时先截断再处理
缓存相同 URL 缓存 15 分钟
跨主机重定向不自动跟随;返回原 URL 和目标 URL,Claude 再发起第二次请求
默认权限提示default/acceptEdits 模式下首次访问新域名时提示;内置预批准文档域名无需提示
预批准域名覆盖deny/ask/allow 中显式 WebFetch(domain:...) 规则优先于预批准集合(可用于封锁预批准域名)
User-AgentClaude-User 开头
Accept 头优先接受 Markdown(支持内容协商的服务器可直接返回 Markdown)
沙箱网络规则与 WebFetch 域名权限规则分开配置

WebSearch 工具行为

特性说明
搜索后端Anthropic 的 web search 后端,不可更换(如需其他提供商,连接 MCP 服务器)
返回内容结果标题和 URL(不抓取页面;读页面需后续调用 WebFetch
后端搜索次数每次调用最多 8 次后端搜索(内部精炼后返回)
allowed_domains仅返回指定主机的结果
blocked_domains排除指定主机(不可与 allowed_domains 在同一次调用中组合)
权限规则无 specifier;仅以裸 WebSearch 出现在 allow/deny
平台可用性Claude API、Microsoft Foundry 可用;Google Cloud Vertex AI 仅 Claude 4 系列可用;Amazon Bedrock 不支持

Write 工具行为

特性说明
写入方式全量创建或覆盖,不追加/合并
覆盖已有文件Claude 必须在当前对话中读取过该文件;否则写入失败报错
新文件无读取要求
部分修改应使用 Edit 工具而非 Write

满足覆盖已有文件「先读」要求的 Bash 命令规则与 Edit 工具相同。

查看当前可用工具

实际工具集取决于平台、提供商和设置。在运行中的会话内直接询问 Claude 「你有哪些工具?」可获得摘要;精确 MCP 工具名可运行 /mcp 查看。