本页目录16
- 工具名称即权限规则中的精确字符串,用于 `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 | 是 |
NotebookEdit | 按 cell_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 *) | Skill | Skill 名称匹配 |
Agent(Explore) | Agent | 子智能体类型匹配 |
WebFetch(domain:example.com) | WebFetch | 域名匹配 |
WebSearch | WebSearch | 无 specifier,整体允许/拒绝 |
Edit(...)允许规则同时授予对同路径的读权限,无需额外Read(...)规则。- Hook
matcher字段使用裸工具名(不含括号),与上述格式不同。 ExitPlanMode、ShareOnboardingGuide等未列工具仅接受裸工具名,无 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 命令(单文件、无管道/重定向):cat、head、tail、sed -n 'X,Yp'、grep、egrep、fgrep。
Edit 工具行为
Edit 工具执行精确字符串替换(无正则、无模糊匹配)。
| 要求 | 说明 |
|---|---|
| 先读后写 | Claude 必须在当前对话中读取过该文件,且文件自读取后未在磁盘变化 |
| 精确匹配 | old_string 必须与文件内容完全一致,一个空格/缩进差异即失败 |
| 唯一性 | old_string 在文件中须只出现一次;多次出现时需提供更多上下文,或设 replace_all: true 全部替换 |
Read deny 规则也适用于 Bash 中 Claude Code 识别的文件命令(cat/head/tail/sed/grep),但不适用于间接读写文件的子进程(如 Python/Node 脚本)。
Glob 工具行为
| 特性 | 说明 |
|---|---|
| 语法 | 标准 glob,支持 ** 递归;如 **/*.js、src/**/*.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 参数,如 py、rust |
| 多行匹配 | 默认单行;设 multiline: true 可跨行 |
.gitignore | 遵守;搜索被忽略的文件须直接传入其路径 |
LSP 工具行为
LSP 工具通过运行中的语言服务器提供代码智能;每次文件编辑后自动报告类型错误和警告。需安装对应语言的代码智能插件后才激活。
| 功能 | 说明 |
|---|---|
| 跳转定义 | 找到符号的定义位置 |
| 查找引用 | 找到符号的所有引用 |
| 类型信息 | 获取指定位置的类型信息 |
| 列出符号 | 列出文件内所有符号 |
| 跨工作区搜索 | 按名称搜索符号 |
| 查找实现 | 找到接口的所有实现 |
| 调用层次 | 追踪调用链 |
Monitor 工具
需 Claude Code v2.1.98+。不支持 Amazon Bedrock、Google Vertex AI 和 Microsoft Foundry。设置了
DISABLE_TELEMETRY或CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC时不可用。
| 特性 | 说明 |
|---|---|
| 用途 | 后台监控;Claude 收到输出行时在对话中实时响应,不中断当前交互 |
| 典型场景 | 追踪日志文件错误、轮询 PR/CI 状态、监控目录变更、追踪长运行脚本输出 |
| 权限规则 | 与 Bash 共用(相同的 allow/deny 命令模式适用) |
| 停止方式 | 让 Claude 取消,或结束会话 |
| 插件 Monitor | 插件可声明随插件激活自动启动的 Monitor |
NotebookEdit 工具行为
NotebookEdit 按 cell_id 逐单元格修改 Jupyter Notebook,不执行跨文件字符串替换。
| 参数/模式 | 说明 |
|---|---|
replace(默认) | 覆盖目标单元格内容 |
insert | 在目标单元格之后插入新单元格;无 cell_id 时插到开头;需设 cell_type 为 code 或 markdown |
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.json 的 env 字段中添加键 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: powershell(settings.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 等) | 返回视觉内容(非原始字节);大图先缩放/重压缩再发送 |
短文件整体读取;超 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-Agent | 以 Claude-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 查看。